From 37f65b6e65ee375020b4f7cbd4f75c384683a72c Mon Sep 17 00:00:00 2001 From: Fred <64914727+fgibelin@users.noreply.github.com> Date: Thu, 28 Mar 2024 08:45:17 +0100 Subject: [PATCH 01/56] Bump JFrog CLI Version to 2.54.0 (#139) --- action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/action.yml b/action.yml index a93e6c1d3..fb62c0a22 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: "JFrog" inputs: version: description: "JFrog CLI Version" - default: "2.53.2" + default: "2.54.0" required: false download-repository: description: "Remote repository in Artifactory pointing to 'https://releases.jfrog.io/artifactory/jfrog-cli'. Use this parameter in case you don't have an Internet access." From 7970d71c0b81880e8d1ac4a167cacbcd033442bb Mon Sep 17 00:00:00 2001 From: Yahav Itzhak Date: Tue, 30 Apr 2024 11:31:20 +0300 Subject: [PATCH 02/56] Bump undici from 5.28.3 to 5.28.4 (#143) --- .github/workflows/test.yml | 2 +- node_modules/undici/lib/core/constants.js | 118 +++++++++++++++ node_modules/undici/lib/core/util.js | 11 ++ node_modules/undici/lib/fetch/util.js | 143 +++++++++++++----- .../undici/lib/handler/RedirectHandler.js | 17 ++- node_modules/undici/package.json | 4 +- package-lock.json | 12 +- 7 files changed, 257 insertions(+), 50 deletions(-) create mode 100644 node_modules/undici/lib/core/constants.js diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fe957a6c7..fa844d974 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: - os: [ubuntu-latest, windows-latest, macOS-latest] + os: [ubuntu-latest, windows-latest, macOS-latest-large] version: ["", "latest", "1.46.4"] fail-fast: false steps: diff --git a/node_modules/undici/lib/core/constants.js b/node_modules/undici/lib/core/constants.js new file mode 100644 index 000000000..6ec770dd5 --- /dev/null +++ b/node_modules/undici/lib/core/constants.js @@ -0,0 +1,118 @@ +'use strict' + +/** @type {Record} */ +const headerNameLowerCasedRecord = {} + +// https://developer.mozilla.org/docs/Web/HTTP/Headers +const wellknownHeaderNames = [ + 'Accept', + 'Accept-Encoding', + 'Accept-Language', + 'Accept-Ranges', + 'Access-Control-Allow-Credentials', + 'Access-Control-Allow-Headers', + 'Access-Control-Allow-Methods', + 'Access-Control-Allow-Origin', + 'Access-Control-Expose-Headers', + 'Access-Control-Max-Age', + 'Access-Control-Request-Headers', + 'Access-Control-Request-Method', + 'Age', + 'Allow', + 'Alt-Svc', + 'Alt-Used', + 'Authorization', + 'Cache-Control', + 'Clear-Site-Data', + 'Connection', + 'Content-Disposition', + 'Content-Encoding', + 'Content-Language', + 'Content-Length', + 'Content-Location', + 'Content-Range', + 'Content-Security-Policy', + 'Content-Security-Policy-Report-Only', + 'Content-Type', + 'Cookie', + 'Cross-Origin-Embedder-Policy', + 'Cross-Origin-Opener-Policy', + 'Cross-Origin-Resource-Policy', + 'Date', + 'Device-Memory', + 'Downlink', + 'ECT', + 'ETag', + 'Expect', + 'Expect-CT', + 'Expires', + 'Forwarded', + 'From', + 'Host', + 'If-Match', + 'If-Modified-Since', + 'If-None-Match', + 'If-Range', + 'If-Unmodified-Since', + 'Keep-Alive', + 'Last-Modified', + 'Link', + 'Location', + 'Max-Forwards', + 'Origin', + 'Permissions-Policy', + 'Pragma', + 'Proxy-Authenticate', + 'Proxy-Authorization', + 'RTT', + 'Range', + 'Referer', + 'Referrer-Policy', + 'Refresh', + 'Retry-After', + 'Sec-WebSocket-Accept', + 'Sec-WebSocket-Extensions', + 'Sec-WebSocket-Key', + 'Sec-WebSocket-Protocol', + 'Sec-WebSocket-Version', + 'Server', + 'Server-Timing', + 'Service-Worker-Allowed', + 'Service-Worker-Navigation-Preload', + 'Set-Cookie', + 'SourceMap', + 'Strict-Transport-Security', + 'Supports-Loading-Mode', + 'TE', + 'Timing-Allow-Origin', + 'Trailer', + 'Transfer-Encoding', + 'Upgrade', + 'Upgrade-Insecure-Requests', + 'User-Agent', + 'Vary', + 'Via', + 'WWW-Authenticate', + 'X-Content-Type-Options', + 'X-DNS-Prefetch-Control', + 'X-Frame-Options', + 'X-Permitted-Cross-Domain-Policies', + 'X-Powered-By', + 'X-Requested-With', + 'X-XSS-Protection' +] + +for (let i = 0; i < wellknownHeaderNames.length; ++i) { + const key = wellknownHeaderNames[i] + const lowerCasedKey = key.toLowerCase() + headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = + lowerCasedKey +} + +// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`. +Object.setPrototypeOf(headerNameLowerCasedRecord, null) + +module.exports = { + wellknownHeaderNames, + headerNameLowerCasedRecord +} diff --git a/node_modules/undici/lib/core/util.js b/node_modules/undici/lib/core/util.js index 8d5450ba0..5741650ea 100644 --- a/node_modules/undici/lib/core/util.js +++ b/node_modules/undici/lib/core/util.js @@ -9,6 +9,7 @@ const { InvalidArgumentError } = require('./errors') const { Blob } = require('buffer') const nodeUtil = require('util') const { stringify } = require('querystring') +const { headerNameLowerCasedRecord } = require('./constants') const [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v)) @@ -218,6 +219,15 @@ function parseKeepAliveTimeout (val) { return m ? parseInt(m[1], 10) * 1000 : null } +/** + * Retrieves a header name and returns its lowercase value. + * @param {string | Buffer} value Header name + * @returns {string} + */ +function headerNameToString (value) { + return headerNameLowerCasedRecord[value] || value.toLowerCase() +} + function parseHeaders (headers, obj = {}) { // For H2 support if (!Array.isArray(headers)) return headers @@ -489,6 +499,7 @@ module.exports = { isIterable, isAsyncIterable, isDestroyed, + headerNameToString, parseRawHeaders, parseHeaders, parseKeepAliveTimeout, diff --git a/node_modules/undici/lib/fetch/util.js b/node_modules/undici/lib/fetch/util.js index b12142c7f..ede4ec489 100644 --- a/node_modules/undici/lib/fetch/util.js +++ b/node_modules/undici/lib/fetch/util.js @@ -7,14 +7,18 @@ const { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util') const assert = require('assert') const { isUint8Array } = require('util/types') +let supportedHashes = [] + // https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable /** @type {import('crypto')|undefined} */ let crypto try { crypto = require('crypto') + const possibleRelevantHashes = ['sha256', 'sha384', 'sha512'] + supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash)) +/* c8 ignore next 3 */ } catch { - } function responseURL (response) { @@ -542,66 +546,56 @@ function bytesMatch (bytes, metadataList) { return true } - // 3. If parsedMetadata is the empty set, return true. + // 3. If response is not eligible for integrity validation, return false. + // TODO + + // 4. If parsedMetadata is the empty set, return true. if (parsedMetadata.length === 0) { return true } - // 4. Let metadata be the result of getting the strongest + // 5. Let metadata be the result of getting the strongest // metadata from parsedMetadata. - const list = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo)) - // get the strongest algorithm - const strongest = list[0].algo - // get all entries that use the strongest algorithm; ignore weaker - const metadata = list.filter((item) => item.algo === strongest) + const strongest = getStrongestMetadata(parsedMetadata) + const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest) - // 5. For each item in metadata: + // 6. For each item in metadata: for (const item of metadata) { // 1. Let algorithm be the alg component of item. const algorithm = item.algo // 2. Let expectedValue be the val component of item. - let expectedValue = item.hash + const expectedValue = item.hash // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e // "be liberal with padding". This is annoying, and it's not even in the spec. - if (expectedValue.endsWith('==')) { - expectedValue = expectedValue.slice(0, -2) - } - // 3. Let actualValue be the result of applying algorithm to bytes. let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64') - if (actualValue.endsWith('==')) { - actualValue = actualValue.slice(0, -2) + if (actualValue[actualValue.length - 1] === '=') { + if (actualValue[actualValue.length - 2] === '=') { + actualValue = actualValue.slice(0, -2) + } else { + actualValue = actualValue.slice(0, -1) + } } // 4. If actualValue is a case-sensitive match for expectedValue, // return true. - if (actualValue === expectedValue) { - return true - } - - let actualBase64URL = crypto.createHash(algorithm).update(bytes).digest('base64url') - - if (actualBase64URL.endsWith('==')) { - actualBase64URL = actualBase64URL.slice(0, -2) - } - - if (actualBase64URL === expectedValue) { + if (compareBase64Mixed(actualValue, expectedValue)) { return true } } - // 6. Return false. + // 7. Return false. return false } // https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options // https://www.w3.org/TR/CSP2/#source-list-syntax // https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1 -const parseHashWithOptions = /((?sha256|sha384|sha512)-(?[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i +const parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i /** * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata @@ -615,8 +609,6 @@ function parseMetadata (metadata) { // 2. Let empty be equal to true. let empty = true - const supportedHashes = crypto.getHashes() - // 3. For each token returned by splitting metadata on spaces: for (const token of metadata.split(' ')) { // 1. Set empty to false. @@ -626,7 +618,11 @@ function parseMetadata (metadata) { const parsedToken = parseHashWithOptions.exec(token) // 3. If token does not parse, continue to the next token. - if (parsedToken === null || parsedToken.groups === undefined) { + if ( + parsedToken === null || + parsedToken.groups === undefined || + parsedToken.groups.algo === undefined + ) { // Note: Chromium blocks the request at this point, but Firefox // gives a warning that an invalid integrity was given. The // correct behavior is to ignore these, and subsequently not @@ -635,11 +631,11 @@ function parseMetadata (metadata) { } // 4. Let algorithm be the hash-algo component of token. - const algorithm = parsedToken.groups.algo + const algorithm = parsedToken.groups.algo.toLowerCase() // 5. If algorithm is a hash function recognized by the user // agent, add the parsed token to result. - if (supportedHashes.includes(algorithm.toLowerCase())) { + if (supportedHashes.includes(algorithm)) { result.push(parsedToken.groups) } } @@ -652,6 +648,82 @@ function parseMetadata (metadata) { return result } +/** + * @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList + */ +function getStrongestMetadata (metadataList) { + // Let algorithm be the algo component of the first item in metadataList. + // Can be sha256 + let algorithm = metadataList[0].algo + // If the algorithm is sha512, then it is the strongest + // and we can return immediately + if (algorithm[3] === '5') { + return algorithm + } + + for (let i = 1; i < metadataList.length; ++i) { + const metadata = metadataList[i] + // If the algorithm is sha512, then it is the strongest + // and we can break the loop immediately + if (metadata.algo[3] === '5') { + algorithm = 'sha512' + break + // If the algorithm is sha384, then a potential sha256 or sha384 is ignored + } else if (algorithm[3] === '3') { + continue + // algorithm is sha256, check if algorithm is sha384 and if so, set it as + // the strongest + } else if (metadata.algo[3] === '3') { + algorithm = 'sha384' + } + } + return algorithm +} + +function filterMetadataListByAlgorithm (metadataList, algorithm) { + if (metadataList.length === 1) { + return metadataList + } + + let pos = 0 + for (let i = 0; i < metadataList.length; ++i) { + if (metadataList[i].algo === algorithm) { + metadataList[pos++] = metadataList[i] + } + } + + metadataList.length = pos + + return metadataList +} + +/** + * Compares two base64 strings, allowing for base64url + * in the second string. + * +* @param {string} actualValue always base64 + * @param {string} expectedValue base64 or base64url + * @returns {boolean} + */ +function compareBase64Mixed (actualValue, expectedValue) { + if (actualValue.length !== expectedValue.length) { + return false + } + for (let i = 0; i < actualValue.length; ++i) { + if (actualValue[i] !== expectedValue[i]) { + if ( + (actualValue[i] === '+' && expectedValue[i] === '-') || + (actualValue[i] === '/' && expectedValue[i] === '_') + ) { + continue + } + return false + } + } + + return true +} + // https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request function tryUpgradeRequestToAPotentiallyTrustworthyURL (request) { // TODO @@ -1067,5 +1139,6 @@ module.exports = { urlHasHttpsScheme, urlIsHttpHttpsScheme, readAllBytes, - normalizeMethodRecord + normalizeMethodRecord, + parseMetadata } diff --git a/node_modules/undici/lib/handler/RedirectHandler.js b/node_modules/undici/lib/handler/RedirectHandler.js index baca27ed1..933725fbd 100644 --- a/node_modules/undici/lib/handler/RedirectHandler.js +++ b/node_modules/undici/lib/handler/RedirectHandler.js @@ -184,12 +184,17 @@ function parseLocation (statusCode, headers) { // https://tools.ietf.org/html/rfc7231#section-6.4.4 function shouldRemoveHeader (header, removeContent, unknownOrigin) { - return ( - (header.length === 4 && header.toString().toLowerCase() === 'host') || - (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) || - (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') || - (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie') - ) + if (header.length === 4) { + return util.headerNameToString(header) === 'host' + } + if (removeContent && util.headerNameToString(header).startsWith('content-')) { + return true + } + if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) { + const name = util.headerNameToString(header) + return name === 'authorization' || name === 'cookie' || name === 'proxy-authorization' + } + return false } // https://tools.ietf.org/html/rfc7231#section-6.4 diff --git a/node_modules/undici/package.json b/node_modules/undici/package.json index 15a94360d..65a2d9833 100644 --- a/node_modules/undici/package.json +++ b/node_modules/undici/package.json @@ -1,6 +1,6 @@ { "name": "undici", - "version": "5.28.3", + "version": "5.28.4", "description": "An HTTP/1.1 client, written from scratch for Node.js", "homepage": "https://undici.nodejs.org", "bugs": { @@ -110,7 +110,7 @@ "dns-packet": "^5.4.0", "docsify-cli": "^4.4.3", "form-data": "^4.0.0", - "formdata-node": "^6.0.3", + "formdata-node": "^4.3.1", "https-pem": "^3.0.0", "husky": "^8.0.1", "import-fresh": "^3.3.0", diff --git a/package-lock.json b/package-lock.json index 4bcceda5e..826a7a0dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4430,9 +4430,9 @@ } }, "node_modules/undici": { - "version": "5.28.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", - "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", "dependencies": { "@fastify/busboy": "^2.0.0" }, @@ -7391,9 +7391,9 @@ "dev": true }, "undici": { - "version": "5.28.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", - "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", "requires": { "@fastify/busboy": "^2.0.0" } From 50c51e2ba72cfc594c6658eed7c6b5fbf3793ae6 Mon Sep 17 00:00:00 2001 From: Yahav Itzhak Date: Tue, 30 Apr 2024 12:50:00 +0300 Subject: [PATCH 03/56] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fa844d974..d630690f1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: - os: [ubuntu-latest, windows-latest, macOS-latest-large] + os: [ubuntu-latest, windows-latest, macos-13] version: ["", "latest", "1.46.4"] fail-fast: false steps: From 6b20aa04035c88e6e40d6a5b1da2c75c3e9cc433 Mon Sep 17 00:00:00 2001 From: Yahav Itschak Date: Thu, 9 May 2024 21:20:46 +0300 Subject: [PATCH 04/56] Update JFrog CLI to 2.56.1 (#147) --- action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/action.yml b/action.yml index fb62c0a22..78e5b24b8 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: "JFrog" inputs: version: description: "JFrog CLI Version" - default: "2.54.0" + default: "2.56.1" required: false download-repository: description: "Remote repository in Artifactory pointing to 'https://releases.jfrog.io/artifactory/jfrog-cli'. Use this parameter in case you don't have an Internet access." From 727b480bafd0d8adbdfdb2257a7d7c2e08eb1779 Mon Sep 17 00:00:00 2001 From: yahavi Date: Thu, 9 May 2024 21:23:11 +0300 Subject: [PATCH 05/56] Update version to 4.0.2 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 826a7a0dc..fddc529d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.0.0", + "version": "4.0.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@jfrog/setup-jfrog-cli", - "version": "4.0.0", + "version": "4.0.2", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 9b9970789..e4627dc92 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.0.0", + "version": "4.0.2", "private": true, "description": "Setup JFrog CLI in GitHub Actions", "main": "lib/main.js", From 425e54a44c6e59587d4c35b43d8643135905574e Mon Sep 17 00:00:00 2001 From: carmit hershman <78722358+carmithersh@users.noreply.github.com> Date: Mon, 20 May 2024 15:10:14 +0300 Subject: [PATCH 06/56] Adding OIDC token & parsed OIDC user as Action outputs (#151) --- .github/workflows/oidc-test.yml | 13 ++++-- README.md | 2 + action.yml | 6 ++- lib/utils.js | 57 +++++++++++++++++++++++++- src/utils.ts | 71 ++++++++++++++++++++++++++++++++- test/main.spec.ts | 50 +++++++++++++++++++++++ 6 files changed, 193 insertions(+), 6 deletions(-) diff --git a/.github/workflows/oidc-test.yml b/.github/workflows/oidc-test.yml index 3928fa183..1239149e9 100644 --- a/.github/workflows/oidc-test.yml +++ b/.github/workflows/oidc-test.yml @@ -3,9 +3,7 @@ name: OpenID Connect Test on: push: branches: - - '**' - tags-ignore: - - '**' + - master # Triggers the workflow on labeled PRs only. pull_request_target: types: [ labeled ] @@ -63,6 +61,7 @@ jobs: }' - name: Setup JFrog CLI + id: setup-jfrog-cli uses: ./ env: JF_URL: ${{ secrets.JFROG_PLATFORM_URL }} @@ -73,6 +72,14 @@ jobs: run: | jf rt s "some-repo/" + - name: Test User Output + shell: bash + run: test -n "${{ steps.setup-jfrog-cli.outputs.oidc-user }}" + + - name: Test Token Output + shell: bash + run: test -n "${{ steps.setup-jfrog-cli.outputs.oidc-token }}" + # Removing the OIDC integration will remove the Identity Mapping as well - name: Delete OIDC integration shell: bash diff --git a/README.md b/README.md index cb0a56eef..7e8c865a0 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,8 @@ Example step utilizing OpenID Connect: oidc-provider-name: setup-jfrog-cli ``` +**Notice:** When using OIDC authentication, this action outputs both the OIDC token and the OIDC token username. These can be utilized within the current workflow to log into the JFrog platform through other actions or clients (e.g., for use with `docker login`). The added outputs are `oidc-token` and `oidc-user`, respectively. + ## Setting the build name and build number when publishing build-info to Artifactory diff --git a/action.yml b/action.yml index 78e5b24b8..64d6f7ba0 100644 --- a/action.yml +++ b/action.yml @@ -15,7 +15,11 @@ inputs: oidc-audience: description: "By default, this is the URL of the GitHub repository owner, such as the organization that owns the repository." required: false - +outputs: + oidc-token: + description: "JFrog OIDC token generated by the Setup JFrog CLI when setting oidc-provider-name." + oidc-user: + description: "JFrog OIDC username from the OIDC token generated by the Setup JFrog CLI when setting oidc-provider-name." runs: using: "node20" main: "lib/main.js" diff --git a/lib/utils.js b/lib/utils.js index c9b7c323a..77d882625 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -124,7 +124,7 @@ class Utils { const responseJson = JSON.parse(responseString); jfrogCredentials.accessToken = responseJson.access_token; if (jfrogCredentials.accessToken) { - core.setSecret(jfrogCredentials.accessToken); + this.outputOidcTokenAndUsername(jfrogCredentials.accessToken); } if (responseJson.errors) { throw new Error(`${JSON.stringify(responseJson.errors)}`); @@ -132,6 +132,61 @@ class Utils { return jfrogCredentials; }); } + /** + * Output the OIDC access token as a secret and the user from the OIDC access token subject as a secret. + * Both are set as secrets to prevent them from being printed in the logs or exported to other workflows. + * @param oidcToken access token received from the JFrog platform during OIDC token exchange + */ + static outputOidcTokenAndUsername(oidcToken) { + // Making sure the token is treated as a secret + core.setSecret(oidcToken); + // Output the oidc access token as a secret + core.setOutput('oidc-token', oidcToken); + // Output the user from the oidc access token subject as a secret + let payload = this.decodeOidcToken(oidcToken); + let tokenUser = this.extractTokenUser(payload.sub); + // Mark the user as a secret + core.setSecret(tokenUser); + // Output the user from the oidc access token subject extracted from the last section of the subject + core.setOutput('oidc-user', tokenUser); + } + /** + * Extract the username from the OIDC access token subject. + * @param subject OIDC token subject + * @returns the username + */ + static extractTokenUser(subject) { + // Main OIDC user parsing logic + if (subject.startsWith('jfrt@') || subject.includes('/users/')) { + let lastSlashIndex = subject.lastIndexOf('/'); + let userSubstring = subject.substring(lastSlashIndex + 1); + // Return the user extracted from the token + return userSubstring; + } + // No parsing was needed, returning original sub from the token as the user + return subject; + } + /** + * Decode the OIDC access token and return the payload. + * @param oidcToken access token received from the JFrog platform during OIDC token exchange + * @returns the payload of the OIDC access token + */ + static decodeOidcToken(oidcToken) { + // Split jfrogCredentials.accessToken into 3 parts divided by . + let tokenParts = oidcToken.split('.'); + if (tokenParts.length != 3) { + // this error should not happen since access only generates valid JWT tokens + throw new Error(`OIDC invalid access token format`); + } + // Decode the second part of the token + let base64Payload = tokenParts[1]; + let utf8Payload = Buffer.from(base64Payload, 'base64').toString('utf8'); + let payload = JSON.parse(utf8Payload); + if (!payload || !payload.sub) { + throw new Error(`OIDC invalid access token format`); + } + return payload; + } static getAndAddCliToPath(jfrogCredentials) { return __awaiter(this, void 0, void 0, function* () { let version = core.getInput(Utils.CLI_VERSION_ARG); diff --git a/src/utils.ts b/src/utils.ts index 346f34c2e..03cadea91 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -127,7 +127,7 @@ export class Utils { const responseJson: TokenExchangeResponseData = JSON.parse(responseString); jfrogCredentials.accessToken = responseJson.access_token; if (jfrogCredentials.accessToken) { - core.setSecret(jfrogCredentials.accessToken); + this.outputOidcTokenAndUsername(jfrogCredentials.accessToken); } if (responseJson.errors) { throw new Error(`${JSON.stringify(responseJson.errors)}`); @@ -135,6 +135,65 @@ export class Utils { return jfrogCredentials; } + /** + * Output the OIDC access token as a secret and the user from the OIDC access token subject as a secret. + * Both are set as secrets to prevent them from being printed in the logs or exported to other workflows. + * @param oidcToken access token received from the JFrog platform during OIDC token exchange + */ + private static outputOidcTokenAndUsername(oidcToken: string): void { + // Making sure the token is treated as a secret + core.setSecret(oidcToken); + // Output the oidc access token as a secret + core.setOutput('oidc-token', oidcToken); + + // Output the user from the oidc access token subject as a secret + let payload: JWTTokenData = this.decodeOidcToken(oidcToken); + let tokenUser: string = this.extractTokenUser(payload.sub); + // Mark the user as a secret + core.setSecret(tokenUser); + // Output the user from the oidc access token subject extracted from the last section of the subject + core.setOutput('oidc-user', tokenUser); + } + + /** + * Extract the username from the OIDC access token subject. + * @param subject OIDC token subject + * @returns the username + */ + public static extractTokenUser(subject: string): string { + // Main OIDC user parsing logic + if (subject.startsWith('jfrt@') || subject.includes('/users/')) { + let lastSlashIndex: number = subject.lastIndexOf('/'); + let userSubstring: string = subject.substring(lastSlashIndex + 1); + // Return the user extracted from the token + return userSubstring; + } + // No parsing was needed, returning original sub from the token as the user + return subject; + } + + /** + * Decode the OIDC access token and return the payload. + * @param oidcToken access token received from the JFrog platform during OIDC token exchange + * @returns the payload of the OIDC access token + */ + public static decodeOidcToken(oidcToken: string): JWTTokenData { + // Split jfrogCredentials.accessToken into 3 parts divided by . + let tokenParts: string[] = oidcToken.split('.'); + if (tokenParts.length != 3) { + // this error should not happen since access only generates valid JWT tokens + throw new Error(`OIDC invalid access token format`); + } + // Decode the second part of the token + let base64Payload: string = tokenParts[1]; + let utf8Payload: string = Buffer.from(base64Payload, 'base64').toString('utf8'); + let payload: JWTTokenData = JSON.parse(utf8Payload); + if (!payload || !payload.sub) { + throw new Error(`OIDC invalid access token format`); + } + return payload; + } + public static async getAndAddCliToPath(jfrogCredentials: JfrogCredentials) { let version: string = core.getInput(Utils.CLI_VERSION_ARG); let cliRemote: string = core.getInput(Utils.CLI_REMOTE_ARG); @@ -411,3 +470,13 @@ export interface TokenExchangeResponseData { access_token: string; errors: string; } + +export interface JWTTokenData { + sub: string; + scp: string; + aud: string; + iss: string; + exp: bigint; + iat: bigint; + jti: string; +} diff --git a/test/main.spec.ts b/test/main.spec.ts index 10fd16aa2..5c25d9ca1 100644 --- a/test/main.spec.ts +++ b/test/main.spec.ts @@ -241,3 +241,53 @@ test('User agent', () => { expect(split[0]).toBe('setup-jfrog-cli-github-action'); expect(split[1]).toMatch(/\d*.\d*.\d*/); }); + +describe('extractTokenUser', () => { + it('should extract user from subject starting with jfrt@', () => { + const subject = 'jfrt@/users/johndoe'; + const result = Utils.extractTokenUser(subject); + expect(result).toBe('johndoe'); + }); + + it('should extract user from subject containing /users/', () => { + const subject = '/users/johndoe'; + const result = Utils.extractTokenUser(subject); + expect(result).toBe('johndoe'); + }); + + it('should return original subject when it does not start with jfrt@ or contain /users/', () => { + const subject = 'johndoe'; + const result = Utils.extractTokenUser(subject); + expect(result).toBe(subject); + }); + + it('should handle empty subject', () => { + const subject = ''; + const result = Utils.extractTokenUser(subject); + expect(result).toBe(subject); + }); +}); + +describe('decodeOidcToken', () => { + it('should decode valid OIDC token', () => { + const oidcToken = + Buffer.from(JSON.stringify({ sub: 'test' })).toString('base64') + + '.eyJzdWIiOiJ0ZXN0In0.' + + Buffer.from(JSON.stringify({ sub: 'test' })).toString('base64'); + const result = Utils.decodeOidcToken(oidcToken); + expect(result).toEqual({ sub: 'test' }); + }); + + it('should throw error for OIDC token with invalid format', () => { + const oidcToken = 'invalid.token.format'; + expect(() => Utils.decodeOidcToken(oidcToken)).toThrow(SyntaxError); + }); + + it('should throw error for OIDC token without subject', () => { + const oidcToken = + Buffer.from(JSON.stringify({ notSub: 'test' })).toString('base64') + + '.eyJub3RTdWIiOiJ0ZXN0In0.' + + Buffer.from(JSON.stringify({ notSub: 'test' })).toString('base64'); + expect(() => Utils.decodeOidcToken(oidcToken)).toThrowError('OIDC invalid access token format'); + }); +}); From c2349e98bb612c8c936d48243f6029f002334fbe Mon Sep 17 00:00:00 2001 From: Yahav Itschak Date: Mon, 20 May 2024 17:31:17 +0300 Subject: [PATCH 07/56] Revert "Adding OIDC token & parsed OIDC user as Action outputs (#151)" (#152) This reverts commit 425e54a44c6e59587d4c35b43d8643135905574e. --- .github/workflows/oidc-test.yml | 13 ++---- README.md | 2 - action.yml | 6 +-- lib/utils.js | 57 +------------------------- src/utils.ts | 71 +-------------------------------- test/main.spec.ts | 50 ----------------------- 6 files changed, 6 insertions(+), 193 deletions(-) diff --git a/.github/workflows/oidc-test.yml b/.github/workflows/oidc-test.yml index 1239149e9..3928fa183 100644 --- a/.github/workflows/oidc-test.yml +++ b/.github/workflows/oidc-test.yml @@ -3,7 +3,9 @@ name: OpenID Connect Test on: push: branches: - - master + - '**' + tags-ignore: + - '**' # Triggers the workflow on labeled PRs only. pull_request_target: types: [ labeled ] @@ -61,7 +63,6 @@ jobs: }' - name: Setup JFrog CLI - id: setup-jfrog-cli uses: ./ env: JF_URL: ${{ secrets.JFROG_PLATFORM_URL }} @@ -72,14 +73,6 @@ jobs: run: | jf rt s "some-repo/" - - name: Test User Output - shell: bash - run: test -n "${{ steps.setup-jfrog-cli.outputs.oidc-user }}" - - - name: Test Token Output - shell: bash - run: test -n "${{ steps.setup-jfrog-cli.outputs.oidc-token }}" - # Removing the OIDC integration will remove the Identity Mapping as well - name: Delete OIDC integration shell: bash diff --git a/README.md b/README.md index 7e8c865a0..cb0a56eef 100644 --- a/README.md +++ b/README.md @@ -196,8 +196,6 @@ Example step utilizing OpenID Connect: oidc-provider-name: setup-jfrog-cli ``` -**Notice:** When using OIDC authentication, this action outputs both the OIDC token and the OIDC token username. These can be utilized within the current workflow to log into the JFrog platform through other actions or clients (e.g., for use with `docker login`). The added outputs are `oidc-token` and `oidc-user`, respectively. - ## Setting the build name and build number when publishing build-info to Artifactory diff --git a/action.yml b/action.yml index 64d6f7ba0..78e5b24b8 100644 --- a/action.yml +++ b/action.yml @@ -15,11 +15,7 @@ inputs: oidc-audience: description: "By default, this is the URL of the GitHub repository owner, such as the organization that owns the repository." required: false -outputs: - oidc-token: - description: "JFrog OIDC token generated by the Setup JFrog CLI when setting oidc-provider-name." - oidc-user: - description: "JFrog OIDC username from the OIDC token generated by the Setup JFrog CLI when setting oidc-provider-name." + runs: using: "node20" main: "lib/main.js" diff --git a/lib/utils.js b/lib/utils.js index 77d882625..c9b7c323a 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -124,7 +124,7 @@ class Utils { const responseJson = JSON.parse(responseString); jfrogCredentials.accessToken = responseJson.access_token; if (jfrogCredentials.accessToken) { - this.outputOidcTokenAndUsername(jfrogCredentials.accessToken); + core.setSecret(jfrogCredentials.accessToken); } if (responseJson.errors) { throw new Error(`${JSON.stringify(responseJson.errors)}`); @@ -132,61 +132,6 @@ class Utils { return jfrogCredentials; }); } - /** - * Output the OIDC access token as a secret and the user from the OIDC access token subject as a secret. - * Both are set as secrets to prevent them from being printed in the logs or exported to other workflows. - * @param oidcToken access token received from the JFrog platform during OIDC token exchange - */ - static outputOidcTokenAndUsername(oidcToken) { - // Making sure the token is treated as a secret - core.setSecret(oidcToken); - // Output the oidc access token as a secret - core.setOutput('oidc-token', oidcToken); - // Output the user from the oidc access token subject as a secret - let payload = this.decodeOidcToken(oidcToken); - let tokenUser = this.extractTokenUser(payload.sub); - // Mark the user as a secret - core.setSecret(tokenUser); - // Output the user from the oidc access token subject extracted from the last section of the subject - core.setOutput('oidc-user', tokenUser); - } - /** - * Extract the username from the OIDC access token subject. - * @param subject OIDC token subject - * @returns the username - */ - static extractTokenUser(subject) { - // Main OIDC user parsing logic - if (subject.startsWith('jfrt@') || subject.includes('/users/')) { - let lastSlashIndex = subject.lastIndexOf('/'); - let userSubstring = subject.substring(lastSlashIndex + 1); - // Return the user extracted from the token - return userSubstring; - } - // No parsing was needed, returning original sub from the token as the user - return subject; - } - /** - * Decode the OIDC access token and return the payload. - * @param oidcToken access token received from the JFrog platform during OIDC token exchange - * @returns the payload of the OIDC access token - */ - static decodeOidcToken(oidcToken) { - // Split jfrogCredentials.accessToken into 3 parts divided by . - let tokenParts = oidcToken.split('.'); - if (tokenParts.length != 3) { - // this error should not happen since access only generates valid JWT tokens - throw new Error(`OIDC invalid access token format`); - } - // Decode the second part of the token - let base64Payload = tokenParts[1]; - let utf8Payload = Buffer.from(base64Payload, 'base64').toString('utf8'); - let payload = JSON.parse(utf8Payload); - if (!payload || !payload.sub) { - throw new Error(`OIDC invalid access token format`); - } - return payload; - } static getAndAddCliToPath(jfrogCredentials) { return __awaiter(this, void 0, void 0, function* () { let version = core.getInput(Utils.CLI_VERSION_ARG); diff --git a/src/utils.ts b/src/utils.ts index 03cadea91..346f34c2e 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -127,7 +127,7 @@ export class Utils { const responseJson: TokenExchangeResponseData = JSON.parse(responseString); jfrogCredentials.accessToken = responseJson.access_token; if (jfrogCredentials.accessToken) { - this.outputOidcTokenAndUsername(jfrogCredentials.accessToken); + core.setSecret(jfrogCredentials.accessToken); } if (responseJson.errors) { throw new Error(`${JSON.stringify(responseJson.errors)}`); @@ -135,65 +135,6 @@ export class Utils { return jfrogCredentials; } - /** - * Output the OIDC access token as a secret and the user from the OIDC access token subject as a secret. - * Both are set as secrets to prevent them from being printed in the logs or exported to other workflows. - * @param oidcToken access token received from the JFrog platform during OIDC token exchange - */ - private static outputOidcTokenAndUsername(oidcToken: string): void { - // Making sure the token is treated as a secret - core.setSecret(oidcToken); - // Output the oidc access token as a secret - core.setOutput('oidc-token', oidcToken); - - // Output the user from the oidc access token subject as a secret - let payload: JWTTokenData = this.decodeOidcToken(oidcToken); - let tokenUser: string = this.extractTokenUser(payload.sub); - // Mark the user as a secret - core.setSecret(tokenUser); - // Output the user from the oidc access token subject extracted from the last section of the subject - core.setOutput('oidc-user', tokenUser); - } - - /** - * Extract the username from the OIDC access token subject. - * @param subject OIDC token subject - * @returns the username - */ - public static extractTokenUser(subject: string): string { - // Main OIDC user parsing logic - if (subject.startsWith('jfrt@') || subject.includes('/users/')) { - let lastSlashIndex: number = subject.lastIndexOf('/'); - let userSubstring: string = subject.substring(lastSlashIndex + 1); - // Return the user extracted from the token - return userSubstring; - } - // No parsing was needed, returning original sub from the token as the user - return subject; - } - - /** - * Decode the OIDC access token and return the payload. - * @param oidcToken access token received from the JFrog platform during OIDC token exchange - * @returns the payload of the OIDC access token - */ - public static decodeOidcToken(oidcToken: string): JWTTokenData { - // Split jfrogCredentials.accessToken into 3 parts divided by . - let tokenParts: string[] = oidcToken.split('.'); - if (tokenParts.length != 3) { - // this error should not happen since access only generates valid JWT tokens - throw new Error(`OIDC invalid access token format`); - } - // Decode the second part of the token - let base64Payload: string = tokenParts[1]; - let utf8Payload: string = Buffer.from(base64Payload, 'base64').toString('utf8'); - let payload: JWTTokenData = JSON.parse(utf8Payload); - if (!payload || !payload.sub) { - throw new Error(`OIDC invalid access token format`); - } - return payload; - } - public static async getAndAddCliToPath(jfrogCredentials: JfrogCredentials) { let version: string = core.getInput(Utils.CLI_VERSION_ARG); let cliRemote: string = core.getInput(Utils.CLI_REMOTE_ARG); @@ -470,13 +411,3 @@ export interface TokenExchangeResponseData { access_token: string; errors: string; } - -export interface JWTTokenData { - sub: string; - scp: string; - aud: string; - iss: string; - exp: bigint; - iat: bigint; - jti: string; -} diff --git a/test/main.spec.ts b/test/main.spec.ts index 5c25d9ca1..10fd16aa2 100644 --- a/test/main.spec.ts +++ b/test/main.spec.ts @@ -241,53 +241,3 @@ test('User agent', () => { expect(split[0]).toBe('setup-jfrog-cli-github-action'); expect(split[1]).toMatch(/\d*.\d*.\d*/); }); - -describe('extractTokenUser', () => { - it('should extract user from subject starting with jfrt@', () => { - const subject = 'jfrt@/users/johndoe'; - const result = Utils.extractTokenUser(subject); - expect(result).toBe('johndoe'); - }); - - it('should extract user from subject containing /users/', () => { - const subject = '/users/johndoe'; - const result = Utils.extractTokenUser(subject); - expect(result).toBe('johndoe'); - }); - - it('should return original subject when it does not start with jfrt@ or contain /users/', () => { - const subject = 'johndoe'; - const result = Utils.extractTokenUser(subject); - expect(result).toBe(subject); - }); - - it('should handle empty subject', () => { - const subject = ''; - const result = Utils.extractTokenUser(subject); - expect(result).toBe(subject); - }); -}); - -describe('decodeOidcToken', () => { - it('should decode valid OIDC token', () => { - const oidcToken = - Buffer.from(JSON.stringify({ sub: 'test' })).toString('base64') + - '.eyJzdWIiOiJ0ZXN0In0.' + - Buffer.from(JSON.stringify({ sub: 'test' })).toString('base64'); - const result = Utils.decodeOidcToken(oidcToken); - expect(result).toEqual({ sub: 'test' }); - }); - - it('should throw error for OIDC token with invalid format', () => { - const oidcToken = 'invalid.token.format'; - expect(() => Utils.decodeOidcToken(oidcToken)).toThrow(SyntaxError); - }); - - it('should throw error for OIDC token without subject', () => { - const oidcToken = - Buffer.from(JSON.stringify({ notSub: 'test' })).toString('base64') + - '.eyJub3RTdWIiOiJ0ZXN0In0.' + - Buffer.from(JSON.stringify({ notSub: 'test' })).toString('base64'); - expect(() => Utils.decodeOidcToken(oidcToken)).toThrowError('OIDC invalid access token format'); - }); -}); From ca5ea1de4c8d76f91904a403c003f22df6048a7b Mon Sep 17 00:00:00 2001 From: Yahav Itschak Date: Tue, 21 May 2024 17:00:15 +0300 Subject: [PATCH 08/56] Restore "Adding OIDC token & parsed OIDC user as Action outputs (#151)" (#153) --- .github/workflows/oidc-test.yml | 13 ++++-- README.md | 2 + action.yml | 6 ++- lib/utils.js | 57 +++++++++++++++++++++++++- src/utils.ts | 71 ++++++++++++++++++++++++++++++++- test/main.spec.ts | 50 +++++++++++++++++++++++ 6 files changed, 193 insertions(+), 6 deletions(-) diff --git a/.github/workflows/oidc-test.yml b/.github/workflows/oidc-test.yml index 3928fa183..1239149e9 100644 --- a/.github/workflows/oidc-test.yml +++ b/.github/workflows/oidc-test.yml @@ -3,9 +3,7 @@ name: OpenID Connect Test on: push: branches: - - '**' - tags-ignore: - - '**' + - master # Triggers the workflow on labeled PRs only. pull_request_target: types: [ labeled ] @@ -63,6 +61,7 @@ jobs: }' - name: Setup JFrog CLI + id: setup-jfrog-cli uses: ./ env: JF_URL: ${{ secrets.JFROG_PLATFORM_URL }} @@ -73,6 +72,14 @@ jobs: run: | jf rt s "some-repo/" + - name: Test User Output + shell: bash + run: test -n "${{ steps.setup-jfrog-cli.outputs.oidc-user }}" + + - name: Test Token Output + shell: bash + run: test -n "${{ steps.setup-jfrog-cli.outputs.oidc-token }}" + # Removing the OIDC integration will remove the Identity Mapping as well - name: Delete OIDC integration shell: bash diff --git a/README.md b/README.md index cb0a56eef..7e8c865a0 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,8 @@ Example step utilizing OpenID Connect: oidc-provider-name: setup-jfrog-cli ``` +**Notice:** When using OIDC authentication, this action outputs both the OIDC token and the OIDC token username. These can be utilized within the current workflow to log into the JFrog platform through other actions or clients (e.g., for use with `docker login`). The added outputs are `oidc-token` and `oidc-user`, respectively. + ## Setting the build name and build number when publishing build-info to Artifactory diff --git a/action.yml b/action.yml index 78e5b24b8..64d6f7ba0 100644 --- a/action.yml +++ b/action.yml @@ -15,7 +15,11 @@ inputs: oidc-audience: description: "By default, this is the URL of the GitHub repository owner, such as the organization that owns the repository." required: false - +outputs: + oidc-token: + description: "JFrog OIDC token generated by the Setup JFrog CLI when setting oidc-provider-name." + oidc-user: + description: "JFrog OIDC username from the OIDC token generated by the Setup JFrog CLI when setting oidc-provider-name." runs: using: "node20" main: "lib/main.js" diff --git a/lib/utils.js b/lib/utils.js index c9b7c323a..77d882625 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -124,7 +124,7 @@ class Utils { const responseJson = JSON.parse(responseString); jfrogCredentials.accessToken = responseJson.access_token; if (jfrogCredentials.accessToken) { - core.setSecret(jfrogCredentials.accessToken); + this.outputOidcTokenAndUsername(jfrogCredentials.accessToken); } if (responseJson.errors) { throw new Error(`${JSON.stringify(responseJson.errors)}`); @@ -132,6 +132,61 @@ class Utils { return jfrogCredentials; }); } + /** + * Output the OIDC access token as a secret and the user from the OIDC access token subject as a secret. + * Both are set as secrets to prevent them from being printed in the logs or exported to other workflows. + * @param oidcToken access token received from the JFrog platform during OIDC token exchange + */ + static outputOidcTokenAndUsername(oidcToken) { + // Making sure the token is treated as a secret + core.setSecret(oidcToken); + // Output the oidc access token as a secret + core.setOutput('oidc-token', oidcToken); + // Output the user from the oidc access token subject as a secret + let payload = this.decodeOidcToken(oidcToken); + let tokenUser = this.extractTokenUser(payload.sub); + // Mark the user as a secret + core.setSecret(tokenUser); + // Output the user from the oidc access token subject extracted from the last section of the subject + core.setOutput('oidc-user', tokenUser); + } + /** + * Extract the username from the OIDC access token subject. + * @param subject OIDC token subject + * @returns the username + */ + static extractTokenUser(subject) { + // Main OIDC user parsing logic + if (subject.startsWith('jfrt@') || subject.includes('/users/')) { + let lastSlashIndex = subject.lastIndexOf('/'); + let userSubstring = subject.substring(lastSlashIndex + 1); + // Return the user extracted from the token + return userSubstring; + } + // No parsing was needed, returning original sub from the token as the user + return subject; + } + /** + * Decode the OIDC access token and return the payload. + * @param oidcToken access token received from the JFrog platform during OIDC token exchange + * @returns the payload of the OIDC access token + */ + static decodeOidcToken(oidcToken) { + // Split jfrogCredentials.accessToken into 3 parts divided by . + let tokenParts = oidcToken.split('.'); + if (tokenParts.length != 3) { + // this error should not happen since access only generates valid JWT tokens + throw new Error(`OIDC invalid access token format`); + } + // Decode the second part of the token + let base64Payload = tokenParts[1]; + let utf8Payload = Buffer.from(base64Payload, 'base64').toString('utf8'); + let payload = JSON.parse(utf8Payload); + if (!payload || !payload.sub) { + throw new Error(`OIDC invalid access token format`); + } + return payload; + } static getAndAddCliToPath(jfrogCredentials) { return __awaiter(this, void 0, void 0, function* () { let version = core.getInput(Utils.CLI_VERSION_ARG); diff --git a/src/utils.ts b/src/utils.ts index 346f34c2e..03cadea91 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -127,7 +127,7 @@ export class Utils { const responseJson: TokenExchangeResponseData = JSON.parse(responseString); jfrogCredentials.accessToken = responseJson.access_token; if (jfrogCredentials.accessToken) { - core.setSecret(jfrogCredentials.accessToken); + this.outputOidcTokenAndUsername(jfrogCredentials.accessToken); } if (responseJson.errors) { throw new Error(`${JSON.stringify(responseJson.errors)}`); @@ -135,6 +135,65 @@ export class Utils { return jfrogCredentials; } + /** + * Output the OIDC access token as a secret and the user from the OIDC access token subject as a secret. + * Both are set as secrets to prevent them from being printed in the logs or exported to other workflows. + * @param oidcToken access token received from the JFrog platform during OIDC token exchange + */ + private static outputOidcTokenAndUsername(oidcToken: string): void { + // Making sure the token is treated as a secret + core.setSecret(oidcToken); + // Output the oidc access token as a secret + core.setOutput('oidc-token', oidcToken); + + // Output the user from the oidc access token subject as a secret + let payload: JWTTokenData = this.decodeOidcToken(oidcToken); + let tokenUser: string = this.extractTokenUser(payload.sub); + // Mark the user as a secret + core.setSecret(tokenUser); + // Output the user from the oidc access token subject extracted from the last section of the subject + core.setOutput('oidc-user', tokenUser); + } + + /** + * Extract the username from the OIDC access token subject. + * @param subject OIDC token subject + * @returns the username + */ + public static extractTokenUser(subject: string): string { + // Main OIDC user parsing logic + if (subject.startsWith('jfrt@') || subject.includes('/users/')) { + let lastSlashIndex: number = subject.lastIndexOf('/'); + let userSubstring: string = subject.substring(lastSlashIndex + 1); + // Return the user extracted from the token + return userSubstring; + } + // No parsing was needed, returning original sub from the token as the user + return subject; + } + + /** + * Decode the OIDC access token and return the payload. + * @param oidcToken access token received from the JFrog platform during OIDC token exchange + * @returns the payload of the OIDC access token + */ + public static decodeOidcToken(oidcToken: string): JWTTokenData { + // Split jfrogCredentials.accessToken into 3 parts divided by . + let tokenParts: string[] = oidcToken.split('.'); + if (tokenParts.length != 3) { + // this error should not happen since access only generates valid JWT tokens + throw new Error(`OIDC invalid access token format`); + } + // Decode the second part of the token + let base64Payload: string = tokenParts[1]; + let utf8Payload: string = Buffer.from(base64Payload, 'base64').toString('utf8'); + let payload: JWTTokenData = JSON.parse(utf8Payload); + if (!payload || !payload.sub) { + throw new Error(`OIDC invalid access token format`); + } + return payload; + } + public static async getAndAddCliToPath(jfrogCredentials: JfrogCredentials) { let version: string = core.getInput(Utils.CLI_VERSION_ARG); let cliRemote: string = core.getInput(Utils.CLI_REMOTE_ARG); @@ -411,3 +470,13 @@ export interface TokenExchangeResponseData { access_token: string; errors: string; } + +export interface JWTTokenData { + sub: string; + scp: string; + aud: string; + iss: string; + exp: bigint; + iat: bigint; + jti: string; +} diff --git a/test/main.spec.ts b/test/main.spec.ts index 10fd16aa2..5c25d9ca1 100644 --- a/test/main.spec.ts +++ b/test/main.spec.ts @@ -241,3 +241,53 @@ test('User agent', () => { expect(split[0]).toBe('setup-jfrog-cli-github-action'); expect(split[1]).toMatch(/\d*.\d*.\d*/); }); + +describe('extractTokenUser', () => { + it('should extract user from subject starting with jfrt@', () => { + const subject = 'jfrt@/users/johndoe'; + const result = Utils.extractTokenUser(subject); + expect(result).toBe('johndoe'); + }); + + it('should extract user from subject containing /users/', () => { + const subject = '/users/johndoe'; + const result = Utils.extractTokenUser(subject); + expect(result).toBe('johndoe'); + }); + + it('should return original subject when it does not start with jfrt@ or contain /users/', () => { + const subject = 'johndoe'; + const result = Utils.extractTokenUser(subject); + expect(result).toBe(subject); + }); + + it('should handle empty subject', () => { + const subject = ''; + const result = Utils.extractTokenUser(subject); + expect(result).toBe(subject); + }); +}); + +describe('decodeOidcToken', () => { + it('should decode valid OIDC token', () => { + const oidcToken = + Buffer.from(JSON.stringify({ sub: 'test' })).toString('base64') + + '.eyJzdWIiOiJ0ZXN0In0.' + + Buffer.from(JSON.stringify({ sub: 'test' })).toString('base64'); + const result = Utils.decodeOidcToken(oidcToken); + expect(result).toEqual({ sub: 'test' }); + }); + + it('should throw error for OIDC token with invalid format', () => { + const oidcToken = 'invalid.token.format'; + expect(() => Utils.decodeOidcToken(oidcToken)).toThrow(SyntaxError); + }); + + it('should throw error for OIDC token without subject', () => { + const oidcToken = + Buffer.from(JSON.stringify({ notSub: 'test' })).toString('base64') + + '.eyJub3RTdWIiOiJ0ZXN0In0.' + + Buffer.from(JSON.stringify({ notSub: 'test' })).toString('base64'); + expect(() => Utils.decodeOidcToken(oidcToken)).toThrowError('OIDC invalid access token format'); + }); +}); From d3972748306665ecc2479d3e02dc8c0050c1267f Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Wed, 29 May 2024 10:27:36 +0300 Subject: [PATCH 09/56] Github Job Summaries (#145) --- action.yml | 2 +- lib/cleanup.js | 1 + lib/utils.js | 146 +++++++++++++++++++++++++++++++++++++++++++- src/cleanup.ts | 1 + src/utils.ts | 151 +++++++++++++++++++++++++++++++++++++++++++++- test/main.spec.ts | 8 +++ 6 files changed, 306 insertions(+), 3 deletions(-) diff --git a/action.yml b/action.yml index 64d6f7ba0..7ea5ac09b 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: "JFrog" inputs: version: description: "JFrog CLI Version" - default: "2.56.1" + default: "2.57.0" required: false download-repository: description: "Remote repository in Artifactory pointing to 'https://releases.jfrog.io/artifactory/jfrog-cli'. Use this parameter in case you don't have an Internet access." diff --git a/lib/cleanup.js b/lib/cleanup.js index 12761e797..0c43fdf90 100644 --- a/lib/cleanup.js +++ b/lib/cleanup.js @@ -42,6 +42,7 @@ function cleanup() { return; } yield utils_1.Utils.removeJFrogServers(); + yield utils_1.Utils.generateWorkflowSummaryMarkdown(); } catch (error) { core.setFailed(error.message); diff --git a/lib/utils.js b/lib/utils.js index 77d882625..bdff237f3 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -32,7 +32,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.Utils = void 0; +exports.Utils = exports.MarkdownSection = void 0; const core = __importStar(require("@actions/core")); const exec_1 = require("@actions/exec"); const http_client_1 = require("@actions/http-client"); @@ -41,6 +41,13 @@ const fs_1 = require("fs"); const os_1 = require("os"); const path_1 = require("path"); const semver_1 = require("semver"); +const path = __importStar(require("path")); +var MarkdownSection; +(function (MarkdownSection) { + MarkdownSection["Upload"] = "upload"; + MarkdownSection["BuildInfo"] = "build-info"; + MarkdownSection["Security"] = "security"; +})(MarkdownSection || (exports.MarkdownSection = MarkdownSection = {})); class Utils { /** * Retrieves server credentials for accessing JFrog's server @@ -319,6 +326,15 @@ class Utils { } Utils.exportVariableIfNotSet('JFROG_CLI_BUILD_URL', process.env.GITHUB_SERVER_URL + '/' + process.env.GITHUB_REPOSITORY + '/actions/runs/' + process.env.GITHUB_RUN_ID); Utils.exportVariableIfNotSet('JFROG_CLI_USER_AGENT', Utils.USER_AGENT); + // Set JF_PROJECT as JFROG_CLI_BUILD_PROJECT to allow the JFrog CLI to use it as the project key + let projectKey = process.env.JF_PROJECT; + if (projectKey) { + Utils.exportVariableIfNotSet('JFROG_CLI_BUILD_PROJECT', projectKey); + } + let jobSummariesOutputDir = process.env.RUNNER_TEMP; + if (jobSummariesOutputDir) { + Utils.exportVariableIfNotSet('JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR', jobSummariesOutputDir); + } } static exportVariableIfNotSet(key, value) { if (!process.env[key]) { @@ -424,6 +440,126 @@ class Utils { } return; } + /** + * Generates GitHub workflow Summary Markdown. + * This function runs as part of post-workflow cleanup function, + * collects existing section markdown files generated by the CLI, + * and constructs a single markdown file, to be displayed in the GitHub UI. + */ + static generateWorkflowSummaryMarkdown() { + return __awaiter(this, void 0, void 0, function* () { + try { + // Read all sections and construct the final markdown file + const markdownContent = yield this.readCLIMarkdownSections(); + if (markdownContent.length == 0) { + core.debug('No job summaries sections found. Workflow summary will not be generated.'); + return; + } + // Write to GitHub's job summary + core.summary.addRaw(markdownContent, true); + yield core.summary.write({ overwrite: true }); + // Clear files + yield this.clearJobSummaryDir(); + } + catch (error) { + core.warning(`Failed to generate Workflow summary: ${error}`); + } + }); + } + /** + * Each section should prepare a file called markdown.md. + * This function reads each section file and wraps it with a markdown header + * @returns the content of the markdown file as string, warped in a collapsable section. + */ + static readCLIMarkdownSections() { + return __awaiter(this, void 0, void 0, function* () { + const outputDir = Utils.getJobOutputDirectoryPath(); + let markdownContent = ''; + for (const sectionName of Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES) { + const fullPath = path.join(outputDir, sectionName, 'markdown.md'); + // Check file exists + if (!(0, fs_1.existsSync)(fullPath)) { + continue; + } + markdownContent += yield Utils.readSummarySection(fullPath, sectionName); + } + // No section was added, return empty string + if (markdownContent == '') { + return ''; + } + return Utils.wrapContent(markdownContent); + }); + } + static readSummarySection(fullPath, section) { + return __awaiter(this, void 0, void 0, function* () { + let content = ''; + try { + content = yield fs_1.promises.readFile(fullPath, 'utf-8'); + return Utils.wrapCollapsableSection(section, content); + } + catch (error) { + throw new Error('failed to read section file: ' + fullPath + ' ' + error); + } + }); + } + static getMarkdownHeader() { + let mainTitle = `# $\\textcolor{green}{\\textsf{ 🐸 JFrog Job Summary}}$` + '\n\n'; + return mainTitle + Utils.getProjectPackagesLink(); + } + /** + * Gets the project packages link to be displayed in the summary + * If the project is undefined, it will resolve to 'all' section in the UI. + * @return https://platformUrl/ui/packages?projectKey=projectKey + */ + static getProjectPackagesLink() { + let platformUrl = process.env.JF_URL; + if (!platformUrl) { + return ''; + } + if (!platformUrl.endsWith('/')) { + platformUrl = platformUrl + '/'; + } + let projectKey = process.env.JF_PROJECT ? process.env.JF_PROJECT : ''; + let projectPackagesUrl = platformUrl + 'ui/packages' + '?projectKey=' + projectKey; + return `📦 Project ${projectKey} packages ` + '\n\n'; + } + static getJobOutputDirectoryPath() { + const outputDir = process.env.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR; + if (!outputDir) { + throw new Error('Jobs home directory is undefined, JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR is not set.'); + } + return path.join(outputDir, Utils.JOB_SUMMARY_DIR_NAME); + } + static clearJobSummaryDir() { + return __awaiter(this, void 0, void 0, function* () { + const outputDir = Utils.getJobOutputDirectoryPath(); + core.debug('Removing Workflow summary directory: ' + outputDir); + yield fs_1.promises.rm(outputDir, { recursive: true }); + }); + } + static wrapCollapsableSection(section, markdown) { + let sectionTitle; + switch (section) { + case MarkdownSection.Upload: + sectionTitle = `📁 Files uploaded to Artifactory by this workflow`; + break; + case MarkdownSection.BuildInfo: + sectionTitle = `📦 Build info published to Artifactory by this workflow`; + break; + case MarkdownSection.Security: + sectionTitle = `🔒 Security Status`; + break; + default: + throw new Error(`Failed to get unknown section: ${section}, title.`); + } + return `\n\n\n
\n\n ${sectionTitle}

\n\n ${markdown} \n\n
\n\n\n`; + } + static wrapContent(fileContent) { + return Utils.getMarkdownHeader() + fileContent + Utils.getMarkdownFooter(); + } + static getMarkdownFooter() { + return '\n\n # \n\n The above Job Summary was generated by the Setup JFrog CLI GitHub Action '; + } } exports.Utils = Utils; // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -443,6 +579,14 @@ Utils.LATEST_CLI_VERSION = 'latest'; Utils.LATEST_RELEASE_VERSION = '[RELEASE]'; // The default server id name for separate env config Utils.SETUP_JFROG_CLI_SERVER_ID = 'setup-jfrog-cli-server'; +// Directory name which holds markdown files for the Workflow summary +Utils.JOB_SUMMARY_DIR_NAME = 'jfrog-command-summary'; +// Workflow summary section files +Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES = [ + MarkdownSection.Upload, + MarkdownSection.BuildInfo, + MarkdownSection.Security, +]; // Inputs // Version input Utils.CLI_VERSION_ARG = 'version'; diff --git a/src/cleanup.ts b/src/cleanup.ts index d6c794b69..3ccdc4d40 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -8,6 +8,7 @@ async function cleanup() { return; } await Utils.removeJFrogServers(); + await Utils.generateWorkflowSummaryMarkdown(); } catch (error) { core.setFailed((error).message); } finally { diff --git a/src/utils.ts b/src/utils.ts index 03cadea91..27e334f94 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -2,11 +2,18 @@ import * as core from '@actions/core'; import { exec } from '@actions/exec'; import { HttpClient, HttpClientResponse } from '@actions/http-client'; import * as toolCache from '@actions/tool-cache'; -import { chmodSync } from 'fs'; +import { chmodSync, existsSync, promises as fs } from 'fs'; import { OutgoingHttpHeaders } from 'http'; import { arch, platform } from 'os'; import { join } from 'path'; import { lt } from 'semver'; +import * as path from 'path'; + +export enum MarkdownSection { + Upload = 'upload', + BuildInfo = 'build-info', + Security = 'security', +} export class Utils { // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -27,6 +34,14 @@ export class Utils { private static readonly LATEST_RELEASE_VERSION: string = '[RELEASE]'; // The default server id name for separate env config public static readonly SETUP_JFROG_CLI_SERVER_ID: string = 'setup-jfrog-cli-server'; + // Directory name which holds markdown files for the Workflow summary + private static readonly JOB_SUMMARY_DIR_NAME: string = 'jfrog-command-summary'; + // Workflow summary section files + public static JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES: MarkdownSection[] = [ + MarkdownSection.Upload, + MarkdownSection.BuildInfo, + MarkdownSection.Security, + ]; // Inputs // Version input @@ -339,6 +354,16 @@ export class Utils { process.env.GITHUB_SERVER_URL + '/' + process.env.GITHUB_REPOSITORY + '/actions/runs/' + process.env.GITHUB_RUN_ID, ); Utils.exportVariableIfNotSet('JFROG_CLI_USER_AGENT', Utils.USER_AGENT); + + // Set JF_PROJECT as JFROG_CLI_BUILD_PROJECT to allow the JFrog CLI to use it as the project key + let projectKey: string | undefined = process.env.JF_PROJECT; + if (projectKey) { + Utils.exportVariableIfNotSet('JFROG_CLI_BUILD_PROJECT', projectKey); + } + let jobSummariesOutputDir: string | undefined = process.env.RUNNER_TEMP; + if (jobSummariesOutputDir) { + Utils.exportVariableIfNotSet('JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR', jobSummariesOutputDir); + } } private static exportVariableIfNotSet(key: string, value: string) { @@ -452,6 +477,129 @@ export class Utils { } return; } + + /** + * Generates GitHub workflow Summary Markdown. + * This function runs as part of post-workflow cleanup function, + * collects existing section markdown files generated by the CLI, + * and constructs a single markdown file, to be displayed in the GitHub UI. + */ + public static async generateWorkflowSummaryMarkdown() { + try { + // Read all sections and construct the final markdown file + const markdownContent: string = await this.readCLIMarkdownSections(); + if (markdownContent.length == 0) { + core.debug('No job summaries sections found. Workflow summary will not be generated.'); + return; + } + // Write to GitHub's job summary + core.summary.addRaw(markdownContent, true); + await core.summary.write({ overwrite: true }); + // Clear files + await this.clearJobSummaryDir(); + } catch (error) { + core.warning(`Failed to generate Workflow summary: ${error}`); + } + } + + /** + * Each section should prepare a file called markdown.md. + * This function reads each section file and wraps it with a markdown header + * @returns the content of the markdown file as string, warped in a collapsable section. + */ + private static async readCLIMarkdownSections(): Promise { + const outputDir: string = Utils.getJobOutputDirectoryPath(); + let markdownContent: string = ''; + + for (const sectionName of Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES) { + const fullPath: string = path.join(outputDir, sectionName, 'markdown.md'); + // Check file exists + if (!existsSync(fullPath)) { + continue; + } + markdownContent += await Utils.readSummarySection(fullPath, sectionName); + } + + // No section was added, return empty string + if (markdownContent == '') { + return ''; + } + + return Utils.wrapContent(markdownContent); + } + + private static async readSummarySection(fullPath: string, section: MarkdownSection) { + let content: string = ''; + try { + content = await fs.readFile(fullPath, 'utf-8'); + return Utils.wrapCollapsableSection(section, content); + } catch (error) { + throw new Error('failed to read section file: ' + fullPath + ' ' + error); + } + } + + private static getMarkdownHeader(): string { + let mainTitle: string = `# $\\textcolor{green}{\\textsf{ 🐸 JFrog Job Summary}}$` + '\n\n'; + return mainTitle + Utils.getProjectPackagesLink(); + } + + /** + * Gets the project packages link to be displayed in the summary + * If the project is undefined, it will resolve to 'all' section in the UI. + * @return https://platformUrl/ui/packages?projectKey=projectKey + */ + private static getProjectPackagesLink(): string { + let platformUrl: string | undefined = process.env.JF_URL; + if (!platformUrl) { + return ''; + } + if (!platformUrl.endsWith('/')) { + platformUrl = platformUrl + '/'; + } + let projectKey: string = process.env.JF_PROJECT ? process.env.JF_PROJECT : ''; + let projectPackagesUrl: string = platformUrl + 'ui/packages' + '?projectKey=' + projectKey; + return `📦 Project ${projectKey} packages ` + '\n\n'; + } + + private static getJobOutputDirectoryPath(): string { + const outputDir: string | undefined = process.env.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR; + if (!outputDir) { + throw new Error('Jobs home directory is undefined, JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR is not set.'); + } + return path.join(outputDir, Utils.JOB_SUMMARY_DIR_NAME); + } + + private static async clearJobSummaryDir() { + const outputDir: string = Utils.getJobOutputDirectoryPath(); + core.debug('Removing Workflow summary directory: ' + outputDir); + await fs.rm(outputDir, { recursive: true }); + } + + private static wrapCollapsableSection(section: MarkdownSection, markdown: string): string { + let sectionTitle: string; + switch (section) { + case MarkdownSection.Upload: + sectionTitle = `📁 Files uploaded to Artifactory by this workflow`; + break; + case MarkdownSection.BuildInfo: + sectionTitle = `📦 Build info published to Artifactory by this workflow`; + break; + case MarkdownSection.Security: + sectionTitle = `🔒 Security Status`; + break; + default: + throw new Error(`Failed to get unknown section: ${section}, title.`); + } + return `\n\n\n
\n\n ${sectionTitle}

\n\n ${markdown} \n\n
\n\n\n`; + } + + private static wrapContent(fileContent: string) { + return Utils.getMarkdownHeader() + fileContent + Utils.getMarkdownFooter(); + } + + private static getMarkdownFooter() { + return '\n\n # \n\n The above Job Summary was generated by the Setup JFrog CLI GitHub Action '; + } } export interface DownloadDetails { @@ -459,6 +607,7 @@ export interface DownloadDetails { repository: string; auth: string; } + export interface JfrogCredentials { jfrogUrl: string | undefined; username: string | undefined; diff --git a/test/main.spec.ts b/test/main.spec.ts index 5c25d9ca1..c008cd56f 100644 --- a/test/main.spec.ts +++ b/test/main.spec.ts @@ -291,3 +291,11 @@ describe('decodeOidcToken', () => { expect(() => Utils.decodeOidcToken(oidcToken)).toThrowError('OIDC invalid access token format'); }); }); + +describe('Job Summaries', () => { + describe('Job summaries sanity', () => { + it('should not crash if no files were found', async () => { + expect(async () => await Utils.generateWorkflowSummaryMarkdown()).not.toThrow(); + }); + }); +}); From 55688f00ddbf66fd6ac586b2f5ab2658f9cc1f57 Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Wed, 29 May 2024 10:28:20 +0300 Subject: [PATCH 10/56] Add Job Summaries documentation (#154) --- README.md | 43 +++++++++++++++++++++++------------ images/JFrog-Job-Summary.png | Bin 0 -> 90082 bytes 2 files changed, 29 insertions(+), 14 deletions(-) create mode 100644 images/JFrog-Job-Summary.png diff --git a/README.md b/README.md index 7e8c865a0..67aa07607 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,9 @@ - [Authorization](#authorization) - [Setting the build name and build number when publishing build-info to Artifactory](#setting-the-build-name-and-build-number-when-publishing-build-info-to-artifactory) - [Setting JFrog CLI version](#setting-jfrog-cli-version) +- [Setting JFrog CLI project key](#Setting-JFrog-CLI-project-Key) - [Downloading JFrog CLI from Artifactory](#downloading-jfrog-cli-from-artifactory) -- [Set up a FREE JFrog Environment in the Cloud](#set-up-a-free-jfrog-environment-in-the-cloud) +- [GitHub Job Summaries](#JFrog-Job-Summary) - [Example projects](#example-projects) - [Contributions](#contributions) - [References](#references) @@ -237,6 +238,20 @@ It is also possible to set the latest JFrog CLI version by adding the _version_ | Important: Only JFrog CLI versions 1.46.4 or above are supported. | | ----------------------------------------------------------------- | +## Setting JFrog CLI project key + +[JFrog Projects](https://jfrog.com/help/r/jfrog-platform-administration-documentation/projects) are a management entity that hosts all your resources related to a specific project, +such as repositories, builds and Release Bundles. + +By default, the JFrog CLI accepts a project flag in some of its commands. +You can set the project key in the environment variable ```JF_PROJECT``` to avoid passing it in each command. + +```yml +- uses: jfrog/setup-jfrog-cli@v4 + env: + JF_PROJECT: "project-key" +``` + ## Downloading JFrog CLI from Artifactory If your agent has no Internet access, you can configure the workflow to download JFrog CLI from a [remote repository](https://www.jfrog.com/confluence/display/JFROG/Remote+Repositories) in your JFrog Artifactory, which is configured to proxy the official download URL. @@ -250,7 +265,7 @@ Here's how you do this: - uses: jfrog/setup-jfrog-cli@v4 env: # JFrog platform url (for example: https://acme.jfrog.io) - JF_URL: ${{ secrets.JF_URL }} + JF_URL: ${{ vars.JF_URL }} # Basic authentication credentials JF_USER: ${{ secrets.JF_USER }} @@ -267,24 +282,24 @@ Here's how you do this: - See instructions for configuring the JFrog connection details under [Storing JFrog connection details as secrets](#storing-jfrog-connection-details-as-secrets). -## Set up a FREE JFrog Environment in the Cloud +## JFrog Job Summary -Need a FREE JFrog environment in the cloud to use with this GitHub Action? Just run one of the following commands in your terminal. The commands will do the following: +The **setup-jfrog-cli GitHub Action** leverages the **Command Summaries** feature of the JFrog CLI +to generate a detailed summary of the entire workflow. -1. Install JFrog CLI on your machine. -2. Create a FREE JFrog environment in the cloud for you. +The summary can be viewed from the GitHub Actions run page. -**MacOS and Linux using cUrl** +A list of supported commands and more information can be found here +[JFrog CLI Command Summaries Documentation](https://github.com/jfrog/documentation/blob/main/jfrog-applications/jfrog-cli/cli-command-summaries.md) -``` -curl -fL "https://getcli.jfrog.io?setup" | sh -``` +The Job Summary UI includes direct links to the JFrog Platform UI. +It's important to note that for the platform links to function correctly, +`JF_URL` should be set as a variable rather than a secret. +This is to prevent GitHub from masking the URL. -**Windows using PowerShell** +Example JFrog Job Summary: -``` -powershell "Start-Process -Wait -Verb RunAs powershell '-NoProfile iwr https://releases.jfrog.io/artifactory/jfrog-cli/v2-jf/[RELEASE]/jfrog-cli-windows-amd64/jf.exe -OutFile $env:SYSTEMROOT\system32\jf.exe'" ; jf setup -``` +![JFrog-Job-Summary](images/JFrog-Job-Summary.png) ## Example projects diff --git a/images/JFrog-Job-Summary.png b/images/JFrog-Job-Summary.png new file mode 100644 index 0000000000000000000000000000000000000000..62b000bfa77c5f7943dd5995046beb58162e8145 GIT binary patch literal 90082 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�w6>`cbcr^lG8JSa`11uO{Ahit2~%{q38jYdL-af-hzcq^ z7FX8BfMk2t1C^Cu(N%wEqK|dKHR>5@b4p*C>c`Z2oH}+KVPY7(+gW+ffZormHg`jG zE_$Qf)=_%{Ty%Us9aY=%7X?J~s_CiBA?V3^mSKTYometF4!ATMvl9D)3*T*ROF3xC z70;;mFdZZj(j;W#zqH3eQIU*2*}|^mbAMV_XbQcy%WgM?E{5eGjY`NNdD$ddv5|Gh z+(-cJ%FLJVcSI_GeSuoS87oF-n*+En>bi)00T9Lw6sR`QH@U|KK0vVa1o0WPT9H_P z+4JPZ1V?D8>_E62oAsjcT3bXqeHO`4-N@v`eHRgI{4WluP>!5T!qGiX2bfSzXFXQm zY3=CB3;i$(sw>U#_94W3+N@QJ_ak|ttjWtz#C|L8o!4;^K60^m(OdFWV!RjixwA5! z#(}57b@TRe1MkW7*LS{uA&J7rL+g&vt&i1KdN=O>EHu(P{rP%D8>x$Em;D!@6*(e?H4ZqD$YqkFTZfK)0rlA3M}|->s&&||G_#F(;K=AP=-P*o{4qBx zmqbUJXdh>d>A@}md#JCv-6dy3JdIvk%=v9+Xr4;B z+5_t-P2RBaF_BRAq~gW+$rhpGok;>{#X&S$EIl69<^EW#Lr32`)kH!%wuPDPIGB~f zH!rLAs=f5U5f(2MP+FwkvUdeK@c66>K;X(%IsmxHz%us0>R*SPdSG3XhyO3yj1N?- zz|bi1{{!`|0;*qeCFa9;f8fi1r~tYU4E}%f!-Wl}xjG;N;~fSmwYGBTMkm602ey|z zU+^(XBc=ob#!+CH;@B7G=n*$8pmm!~R?bABD31=-4fs_J33@41of6*mD$!>~(_?dW`=v&704)gg~|F;&5|n z#=woY9Y|w64x_koOpDd!f3kl9@@hGc&6=4FEt}*uo`4TuB!-5{o7b+RNER_MFv!mL zW|G%>BE0PJ{}eV%sGxkGu`=vdLCDt()GQaFq#Gebc3-FB)6zf^XrxKDdQF4bLGU)a zqw?T}OMN>71To>oaHMBxa&`3jjy zV<9LX2qyB0#9X=yl=4~t>Xn6K7pkN2M4r~TAj9t>nY|p@{o`O`YcdbyUdP(NhM*Hs zA6*H+vAI2XJKayzJFvNRK<5mA7)fK6+;g zR#_futGMol<3iW58YDrH`qC;~f*HFem7(S;d|MjCwa-%6Ll)kx_;GnyaU304Oqe`$ z23Of^%WKt}gnezhwbg2~i2uQJebfdA)`;CI>IUgIPUdtW{ruL2p6YxnWNY)iQ`h&4 z6PM+Nqz5>~+~nXRYn6T?Mg5*nf)P(sxe84Rk5?@n@+Irn(2F;8`_nB=Qb(6tsatad z51Ywb*K<`qO=sh*vLCs>pS=mv)-7r1<<2WQWp^4SUU2e%Q2xF2Jpif0z@yeN1RRe* zG|ZmWSt?uYgd@lwd`d}6E7>`&2>XXlu$B2Xhn)s+9q0+zz5!dw~~VwC5Xz`I(#%TRjo@ zGH(uNXl~3}KedMCbJIMjebW=3BAXU86^x7@srJQWATES-Yaf_M$}QrkyYr=~2~2w0 zt*Q(XO6ka&0?^Pfx#jdIs6?EyQ~lwaLnG%A%q^6PwAqU&ge<}teivGEb#|Etin-9x zG9$!lB&)5Lug5a5h_H=IxH~#JPPYJ4!0Ybj^@bp$O4kv>0JzeaY2@Vg^CJJOg9V^7 z#a27xQJOug9p`;eu`fDC&^`_>3m+} z2@1&qehBQU$ zSLYhoM1eg1FQ7It@Ypm3vLYj|!F(z-Tj=3~Of}()b9qr;-!3n9KYu>kwlb+BVJrtC zxI5_^7h^PePY}p|^X*lhpOTVN;Kvs-SlHN`(*S&1=FKpr{M2;ohFY$~8WR0V0(D6M zEx(rVedgelXNdani3aNzlGjv>X%-i{=#tq3%v==XC^XV zXv8C*h*qy6lBV_fhX1jdqeMetd2dF6vycHVgH%%>tp}l_>Zwd`_*8LJlUk2-qHIe= zyJnT!k-n3s2qR}K4BgnPNNu$Ps=Y}%9pVWjHAym;Dd<QQn6B?gcW>@5xzk9DP-=&ft5{PbyK|lIU#p6r#u>!m0 z1_AU~LAel~!+TU=VJ}h9zysB~Pk`)@t_*oFd(TxZ&suAtb8M*{a{>zPO{ZPkz+!`w z%?TwKe8OS36-i*mFlRs`8!P1ORtTmGm{xiDEH%ypwnB{A$R$H&?&B)8OOz#0)T1_h zE*(x~U)m-AHooQ#c4;2J%m%jrB2LF@`YzsPtW;0Wlq}$Z{ z`X3GGw?uAk$+)oVVn+sEZ3br&h6yNX6J()_gR1aHc%TxuD+k>J6JPjI&$ zDOgUW2Ds>lqh`bekouTp{6JYAHTt!kY$IObA~Cq^wxM|V77&vGQHMB!Y9StZldJB$ z11-ho^C8{c`{;Ai4MJP)_sEsrSL}}HgYQB@K5++Dn~#~D;l&JfsKF-@F@U?*k;WUy zY25QCa*2nS%E1m-wTLAoWw1>;Q+D5kF&=~D5Q%%jWkkt%bKZf$!Ot)>H<%WUt^aatOX=0Tg}zM9z>G0D~3CC`9W^ zeks2H{a@_@5OTo(1BcrumxA666-l*gAg;c$OgNwrUY_gw#Q6LAO$33zk}{U?GR}Vt zyFQM&<(8ix9qO22o&?(1AqG+L$N4h?NIm#C7NG6$!}hNIUfKWt{!cdJ-#395BoOKy zISbw&+kt=hH~st&UQP^^)r)`L0nYvV^Z+j>pzZcngSo<2*oGe^m>ABGym{ zF9#vA=YM1*viL zW->)-{oAZ7_)Rx$=0Ug+9G6eq^sE3s9FZOa%)v)i?+?4dyura-M}2d9D^sdnL&?Fx zF@mwUnM-G#tXQc`MWw7Y1Q>(~I6Zv9tcz0*=0kb%J<#~~ff z^xc*euJSH8z|rJ~WEfA4LT6E3!uzt7d9Z@KbnMSiuEA;2Mj0d7uZ&A4-D5(+^fix? zXpGOO`;vU@_V}y!4Z;L``YQ`m!N-->f(|Pi}iR)G6N_~A-@K9qfl$YB@ry+F)79DxKCV4r@?wQdjMsgN~f2f3_sdNPR-6t z&w8#^4+{$`r;Hvcx(WyuS;Ixo_oB5(41~`5DaPvzgq$*g|3G(_1|D~neZw_P{2HiJ z#RdkxSGzO=nL=$@trQZ`lA*4L8)v%{d1ER-A)w-IC^5gg;(V5bu8dDjzVJtpa>+vqbBSr$>l0&w3}ZWXV;KUDeTQ}Vjrni7 zLfC9OVWp&{TukxqE3E{w~x&`Tba?5HmW^YRG!R>(}I7MFp1XlMpRKQpxsE#CPvB;+FiH zU%+ppeSoPJ`ha`n)k+rflA>+e_%(h>>{L+MhbdA6h9>HZ4}qI|15>3dEW2e7lJe3C zxJP3B*&dlq^lO|g!YRDt$GN#{q_NCu4VLJUamYm0BD3*4n+4UW<=hBJWs}DbtXp(8)X@I<*@Jx}3h>xmp9z>oIo#mFpv1buqu24eH~m43GC!g<-&wI{q$|OThi0Re6feQ{TJF zc1LKq%~4L9NI27-iZ|5dKnf>L5Wx1XbvTtvL4W!|_@rv1gGn#PY~&LbDXCq;a|Qv5 zK7-zvWb;ff`S$a1mCMJbZ@mTOZJdKJ3A8dK``=&TF>1Z22(RBa`2JaJb7D*=`Fwv` zibBmAY_XzGuUbNDmqY8RXySW!ZCdgYs;;eE%X%e`a0PlQq;BSv>rTf zwfXtNZT3B8t(V6yN*9mZ>fk7%9`;%))=c0lw=8G|FsQa{ZxNzl zqDQM+b&WY567AJ67j-SM>*)QoNFQ0bOE7v#;zF^>yS{sv) zzH5lbYIswn&4X5in-^JFw?(nOQKVkJps8UgB>W98Mt*bHElz+nO@I^HU`T$Z8R%g)&pBF=nG*Bu&i3X*)}HRIvGi zl~u`*ire?DUbRejE}`*!TF10eTe7ww*nE35{qz=yhETbd-=1c9%K?RM<7|;myCPv> zrFJ7yXtyd~ZDw#omO6|ATzKzN5yGM3Q2dwXskSyq#vKAQs4N1}zPQRJ1>ej(fScq} zXjB6Nj4IXUxGWYm4Sxi@E1H7EqmZmL>KS&}499g8og-Fez{KH3xOpPBl`H78(f)7` zWEm8UQ$~|wjFi9Vr^k4}Cedt4J&TTYECQ|5x^FGs;@2xtWvA`uVntt2Ns#Ql3G=Ee zM>5fDPw=IB?fqFrLhBD!I^7e`xw}K3s{Kp+oO*h+{*^T4z5uPDjrL)vWZEJtRrjR} z@s7fIkNPlVp627YDlE+`%_1=&BN1p7BR*)+a7kgsy^o=vr#{IvY>f?7;tCa>9)H9s zPMmKvlv^kqd3?qYQ`TBa>9qKBX5aClU)(99{4Eavdy0Lo9cG*Pu>Tl0TL6<+u2Bar zHr}(J!~3Kf)!3k!Z?|YwklUf1V9ct+_(C++7O@0P6V#Sv_n2S6H_`H(PdZyPc;jHM zdR%U$^Hprjvk!CZ=Gt{B6uNmNd((12Ie6rpB1X^>gwCF?zy($IU^b~^{A;_LpO4%8(|p&a{56}QDsTC-u$e!p*~VbSFz86 z?BV`(5Nwc*my zbX#27T#e)?skWW%tLCR5@+7j+FKg*X((dW5Sml)j?=c&Q5jCjDw>E6&gzjN@T6{7N zp7~j1Z(Hd3LWwBL7)u$wxU`HMhFv&Ba4w(p%}TJCRx$c~F%GR+* z5xTAKE`p&_;jvDYix`&flD)9exNp*Ncg+Ss2P$Yx8Wpc~S8~D{z_W$%T08PU>gaTM zfKCf42Z&gA>^7ec7V4PQFx@-~k>>TWd4B;bA}EKhIh^e%>Cg?aVSq7K z(KHHsXAJBjFblP7iWaAx>^UyrVzHJX1R$@ws|)z1v5c zo7mfX=2~H!4L;p;p?F#|eRsLyCr+SS?OD@&H^@L8+tx^*+27SHa5>CAuCTpcR9v3K zDs&h7!L||wk{X#H15w>vU`iD5S{E(gs=Cj*?z#4HFw=CMR1K$+Q1Ny)GxYK)~ue5li8ikGDKYK+3cCKEH4IgQVyCkN53 z1_opH3L>;}8q0tpy$}PF;kmyI25jHJo~J2uMc}F&-}116LZ!dq4Vqgd} z3TPL=WvhB|sl7e>eHUMi3DysDd%T3#$aq zUax8+X=`LtttR2_Gb{eIrjW{hkFU#{sxl=!<7Q*L~JIi3EYuV{M(4mqb-+eF`EmrASFxv(;$U35wWX0;OP3GC&VA_MN? zgs<96&3uhjs`JAy(ZjOv>fqz~d5BU4IuOlzWIS=roxf7!tF{+namso((+Z$rxqS9| zX&LipF}6R5jMfwlKUA*xa*_GHsZ(purPr*3u7%aX_M%VZ^EQIs=ZbDr!KeqOKDYgk zK+4{*~a%Ew~j4zZA-_<3MYAXY$r*F_X**wv~l{i;q5m#-l{;~CTV`Ct` z_Juu#RY@go(qdK;@vUBgAtJ%`ltz{N_ZJ=->%5@C&$|_())V#Ecj0e!rSeD9<=RTw zlAW3v#I!`MQTKedTP`C%2RWU=&Dgim>*l;KTvmH5smEbpc^-@jV`8JnZ#)gs$}$e* zP_|MJ^-^YNRGbWSCgCg?N2qlB4o#{l_d8}{gaqnCvK0{ige{_>)e3J*ehM26*PUr# zHzqBblze1z#iu$0W$xH4R?68CB%y9o-Kjmbj-*B@#7ak{rE(+ zNTwy+uLo3 z&t#1ssfl;cnrMF#N!BjF00(}pc`R61Nq~?P9Ud+{MZDZBu`enl4wD7%b1GHTQ;e$; zNc5nd+m!;qfJ))XwB&X>@|v1gGle=D7#dIxiSWe(sdjBP4CV&Ri!ruS!Uqa2$cs;w zdXUe_ZK0u&;ayJxm6Z+Z;9CKl*i=1S4c>vRqR0?=HM_|9hu~e-I~Si-sP*M{AMx%g zB>OJ9eI|oPlmHHFkE(QxaqIod#jhp24)2O_ad^{?)T}UZ1gtS5pN}k_A9<-=ROlV= z*tNYBId&_qfvFTko+O0Us&UM1e~Ap8i!z9VBR0JBldwIS)yNl(nA@;~@_yNSq9Pc2 zGS^CDE*A;wmvpN+*dN&s-foxV_Sd7Hj6kfzt8OXC*>O-GjME*RrulN&gv8)FBEfQT z$@<>wtj$hN`yQW(anTSnOu$K#({E)Yhjg+uI6{1p{yZZkR|^pfzw`uNyEidSmrE*K z-Hu!hd_PIco9{O4rZ#Eed7V`L@oezY+h`~>b$VVQb+DF{G*MfCy8mT)8JmZqcx|-L zH+3ck1q@x(y4(-)wSGO9+!b&2ay!;4-W$HL9^kSpbiWIu84jG4t`>U13A?Z(D!$-z zWDHK@q3&N$TW)S}$_1*p1i4+Uf@u`bo*UVmM>y4UEETYl+lyJwm!#Yk=q!k0sG^G@ zjNk6&%N+yuBq~$`aT-%>XET|8+R0nb%B7J(!m~X?`WSVA^{Dk37A7q|NfS=>;d4z9 zz!? z`_j&tj_lZ36zIZ+ZokUoag@lP-FRbVITzH z4I97~YUA*Fb4QYF4AcI)#>IyL&{xO)I9cPP%6PBjPn<}mKyR;tcS5mDt@(|Yo?_PZ zLO<$d?$DUp8+MR!1aP!?jkQrlg0sGRjDJx=_e> z>&?lz@)hQ4;QwmwM#cw0N#y6PBYtU`?R%*A0yjN}G<8Hs`8(jTxT3(TE)=BfW|4QC zZvq{j4<3xRWH%Y6yS_IaIN)T;Zw+f?m=d}X!2VUjjuoDU;0i9*5Z?fQBIxg4$%9pO z0xOk+a*4x(M$prv3R>TX^-<4&c=73z=}?@ONfv=C}V%=L2|MCZ2#(&As-Re2joMP|I3rR%?gPu5>z(eu z!pGki4kWX{!rTS=wY~j&ajRc|x3B&;I2zi=d65{nS%4BhmYG`pB8Tm7^Exs}3>&9o7Jg3&MM{BzvC2Hd(IEE1a{5Cc9Fp`|gHx5w&!=-0M%mpo zl=E*D2`aN!|8W}HkOqvh1`{WG<>Q5ysbhrm>yjsI|QogX(qP~tBlkT&P zk!pe`NxrjuIq)7*wJB0B{q*5;ih7=5N8st&5HmpM>&Kl*!M<->ldt~A$QwZ9{(;Pd zr?KC9zf#$qE&Kxdcv>Av%B62M_K890@i?d?O+ZAuu1#a_Wn+g84I!5;$coE477nOF zPVP>a0>S#J;Y^wB(Ll+t717H$pqY`>JrKty8blLPO}%)*UnJP_VE%QqiO)G!L*HxU zORd&Fo;Ovg{s!3<%4hEVwtLnwu+1O;D2y+Lz(4d3=NnoskLXkuw2{e+pF?b)cfq~J-Ywc#|LI_7lz-@(*6`y&q|NEECULw1M zr!M=_*48DZttGsOfEc5@TgKLO!4;g4d~^08GIC*0!SjCXZ91UsP$uNGrj@g^FK^d6 zJpIR=2w+g)#ieD9a!Qe*V;2A=1(fRp_WZWbVi9Is=^NMccu#ZGe3>EDMGDC=Kw7oKt~TlQ`)$VQfVF+Rf#0KE zt@VnnuU}DT=vQ=jl-Q(FZK)G1s>t91qg?5{m{Pm8B}?%wW?foHO}?R5lgnnwvRBY+ znV$}TwMvO0BJE#*GXrEPm2L#gu)Sm3E3#j00y(&acq`Cx2aZRtxSYE25M3wP*JPJ~cKAv1mai;6P$ZPSeDUo|EXt-WwBP4t#P>tnOT-(E)O2(9DPzA$BZAqY_xp~q@ z!d~Znd02P4%y-n^8%2~0NT<|aLR*a|;pFxt70`fhjx^1g)oS;OHsO(Ggw;eXCkx2O zisDWH(meFm_wV0NO=3tKkK3UjpyaidP40k+RNO+hEvpiiySREk2z_vo$7zE%ii+TFH^0hvf*Sj6bd_GCOMHL7 z8n>_R+N7Axhu(2YN=j}{<0dqXAq-d_ofgYPNKp||T>RHKCN>e+ zCrqgHrsbdorJqa(itVA94B)s}IO>+@cw9)-zv;0&knr}7WXfTF+uR2i785aL7uzi( z>K)jx}XCQ{I*I_uLAwOB;IQCMW zxWB)b-ro2IPG-Y88Ns-mgtt zmlH^vlcS=!fH0??!qARt;Jpj1OG*rJk$PN0f(alrX~1m;Z*MdE`qBn>()Gz`)CyrX z1(01R=Sru1-5g3Dg4t_@v&e#4CUWj*(P1Q zRZZzWW2vn4wQ-0K~D+xpRDoa$)?l0EqdfzPZ`?LQog4V z8J5CFuf^!K)p<`;*(w78Q|Js@n|EPGpHsCwd};Pcw|9CKIn3(9_^LwS#(W?QnF&TmsoRzcIiMk z*AOum6yxVova#Jcul3w%p5d2L3Rs3vuKP*t%>+L-X|Wim>K&W~AH@nA5^ z6|G^mLAL;_VMvFNCU7>K>-OU1W~1P-f8>OrYduJ0x@ZbQ9ieuAU`0iFbU!wXN5g0F ze!@z@X0;`2j7d;_zFaCj%Bg1ijT)yks*xd?9hhDTb>&X)FLv3Z#S_ zvz6jd*Ix4+4JxH;@b}a1TN(w?|$BkJF9;cfU_0lrku$wJG z9{G!-7P1xD*}{lzC#KZb!;)_Upv``ui}mSeVYI(QWRi~#T(t!aRvOmf=TNl5M0hB` z+WdeQgT;$dE7~EmClUDxrfhl8arumH(BZVO)>kM^ZpDn}(9VuRU}gMT#nCJ6SpALyy@t)Y%;QJ4igLh(=1V{sc9@Di~8 zd17MyAGlfpE0p^&-e1`-6J|eM@VmRel|%3NCvJ16BOcoYf8T=alI;u-&11NQAzE!IPzHT~@aI~*E)oDu zbV}<~ftJcspil~^XFphCVp1P|kRW|I1JRdTm9?mwjiu7uulR6{XzmqmntYF=s&eT= z(<05~Nmf=i0g$CG?A;txk41`}0vyI(7pukcHbR-m(kK7K)POZj5|ECSrxUtH z!a8yVY~)Y|tl7(!;SkB>y}$F~_JUoElZk?o(#xM? z$_D$so4Ls*)!?1r)oUQO7iRr;`AP;_v?nDiU^GcUHzYnW;$PmGQIJlcC5Lc{P>g}p zfI10w#%IM_g;3uqYSHPaWf#pM-OSXteHrlV$x zV)Zf{Yf|q|OgeZZzgTOKC9fDTUt61+=o?Wudew<6PG|A`bFdP3G^vnn)6qmnkQ@Lvs~xrVKT*yH^B6Ppal zt%jUtMbejuCcI=qygU7qTNFNPiGgooDNw3+#M4k zsIq5OnLIj_0sL}Lk}&BhJUqjBxc^C@R3S(eE)4_V$Kjv)uaOwws3Q$9*~O(Qi2+C^ z1cAkj^3_Mp_y0UOWWm6n6-4^av4C8rIPj6^Y;#E4g8%$cmApdvd;5OB*mwrqTb_^% z)c?ZUo&fji2m612m@?KFxUn10JUM^0iujN72EQBo{rvs?4VXf$;txBb2oM48Xe_XI zaa3EMVCfv4>fhlp0jP$QMf=t5_0VU#sW$l8J0%ImPqZkaS)*~r9Ie?u+TB}=XQ9!JD$=FC!* ze^(wyE&$=%1Ya8;Ns-N9OImI+4^Uxkw(UG_tgt^0wtYud@r^KU8nvn7OHn z#U9D|6s^bM`OHL)4&w8pCI#Qrt0ot^-SZmB@1Lujui11w_F>NfBA<40Ve}&)a~`p4 zd8wwY-_Xwf)npgKA#VmfAOE`h*nenaJ2uX#`D;D{HjOinrkB0TRSLjRdqfLczl{XN z=+i}vf#OZgH3rxO`s^&u9JTOjB*FBH+F&}bWDxIVIY_8l*XWgzF5BCs#u_c0mB)6N zJlP4eksP&sb*3S6v)+LF+s&JO!l8~J_*}yd=oBrNMwj4V+<0KOYXa5T?5n4+`h+kF zwY2v3cK4t8sC^8R`9$L_cH>4~%T>yAFH zA>%c&<^;}fD@wRq6yqjc80b1`M4^)^D=Wuu3zsb_)XS8$#G?sKmmM!XDq~>b;q&Q? zsQ?saaMCYNDi{e@7He>=(R!}RQKP9zS?f*S*hjD{rdIQ72OzUhCEz_kzIOXAy8AfF zr_QciWg97ug>UTd+w9R1w%B8_Lu=AIPj zHt{T;3YCzP#T1bFdljk{#wCKf+K9TLC{Z4aKM2)IS_KXhZ)I@Y7_X8N(J;yu>A zZoLM4vA4tP4#h*`>sEH{wwA`m6rQ3JfP`Xhd(_u{NRVI-55)*QQW~N=oLkp>J+(*Q zx+$lNhZ}qTE8O?~0IVGbX)e(zu+3q@jwM%AJyN)j;mTU{;gm(4A8;tH;{!Ka!tYJH zdd}Ir9~Ck6aKe+Y8IRkr@CrJq1s4C@HCtdQGH& z&C#^`7&A^`W#<)QC8k z`Bkrxmot(Lj++}nm&?hC3>u$`mQGx)iDtgE5i$k|J#0A zyq1bqNZ=c){ZLm9W=6O3)XWo?PwX2!PssbhCEet5NW}||M0lu?mRHQBY_~ZA8rnKT zJtns!Re8@js^B5djhjjj$pBIWO<{`ZY}28n)AOD0O#3$~j2IOt!eEu;bU;zj2ul4B zIrFlWij7TK-*cDB0;n^oUDDZ0i1Ln*~^PEYNIxT$~9Iu2$Kt2txd!YOBEV(Ih-CP8^D^ z=A=|r6IS7aO+u&Z)b!dx0FSS^WE{@#Gri;mgakQ7ejl0GEkq`4NaY{AyBYw4g+=%x zhX11A4p1DGXts7f)T(ax#gKC0G1ESQd5W4aS8YaM2FOg}FWl;qpOn@qeX$xr_t^&s z4)il$B}jZVzX>7WJ?@^!Pu1)D_i!FEm~@4pZoL=cU7QfP0M7xXgS+axhub4+*ZyT~ zQ-&S;wJQ{0RT=77aiXbjpqk`=E8+4EeY0}w|g)$Zy(NKl){@#6q#v|(> z==9AL`lj$1lt)>o6WdAm>l8P~G6ZLg5;vd$)U`9L-3i~KQw)%MEG2+c3u3j1NrfC1 zbu)QwfUwq_CWh5)kxM8uOD zYW`W!HwV<*9e_o}{W3zuDekmyk%!ln@7i|wSvA6=@37`NwR0-HT2fk6t7;#hX_o~k zH@@IS9)^YU@7d*L$eu|-7XTHGq1tTp>k`6K&2FG)cJcW(;IDr^!v;=vI6cV{sb!0% z@wzzp;KjRam5@!%wMh1U_v*fGB~nK_jb0v@{dG%@8^@Rn*B&*^nu7>f*%%^=C!BC> z$M7H^W7Jzi#TTLV1s=Bv!A4)sGy#~N@L-}~WVz31za8XOBVc!`HY2J>S>ye=Fxv@b z@g0>|l}-lQypn#l;(IEyr-ak*vOovkYXl@-dqXcG3jZzMQ4sob<>1V3z=xYFZO z*v+MC-Xj>hSmYAX2`7Q{OVn{L$3l#2{O-^5J(5<9o+b-udjF=HL_kWHYb8#@l&f;E z6^P%M?)HAv9?Q%pEgXIxE9=DVrGMGh+iJp5}ywAk;(uPNLjst@;Ysk11cUmQx-Y^-IPzjH}L#kj}W}8aG zgGa>0-kmO7an+~Ztsrp!H7uaxx;^I6F3SFZ0W5-XBSct$E^>wH_no*AMj3 zWMWV+yh!i>x?iozz}_JRCraNN z@EZ^c^g(=?L;fiOa_kbwAt0Vx4=wa3U&Q(=GZ&arj zpdsoSWW!pcCLDKY=+KdnzA+WH?o32lBgfdtAP8(M5p(rC@4!Wh@Ed{~ZuJH%lw^4W zPg}&oEm>|J=bO-v>BDOR*6j$TcF50eq>erZLI*16Xkn-x)8nbCRzyJSBh#ygdx|M4 zsn);ngv<4SYH^NTww63<2@w|cZ1sR2B}d%07UiKi6dH4KbTv0Kck@eyzZe-l*n9QV zxh#^wLO-k@>oeCz@(YXA8n-e1F!mURQE6UMyZnnY5qRD@YGX2o);6N~=!>@&=vatQ zuo(R@(6E%(Cq+)92;2x)d}LuZF0%5=Bve?IpE2)$zTf{c!7?u2^KG;K2_47x#Z{*F z_S`Vx7(nj=SPWq@E<~0>0WLkpXxspPT19&i2O{@0OIKy(S8`lo7YQb^dFGU4Op2XJ zI7xvKvOZYQ2xR_Gpb<6*prGUUo#=QlVI2#FrTuZzh~5Y_oS|@A1LuUCxE=wDy2b#O zB=rU4@L!)H^Kb7##E8{RBh{h!&o{*ofH(iYdZh5vfXT^86rPg5-(wjLL9%&4G4KgA zK3Qy9f-{s(CE`D$q5+J`o#!Tx9jrHH?8lE}bOUsPmg#1gf5y5T`1%_)41?EXu`qxa zsDhNT(PtKK26$Z*G$_c;coIO&gpt-26VvtTNq{bWmH^caIr%?BB@cZT%e|`@^6zjy zffmFiBRipEj{48>^pAf66&8l_r%pK^4X6|2FVL#}_GxY#aO1WCtPxF7Zy z{W8#2k5{iat(QT}=)@m)Em}_ZirG%%6&BBVoeyYHncH*;^&EmnZY^${J@$6 zq%}1^HZ5O+CIRVAukSq|QlF69t|oB#Gl|+mfyGX+JJ$mCv|1QQzbX0o7qOfHC8-J$ zD#!d+oBguOHDu=gb4Klcg^9em=D1wx0YJB(JCLX``2CB-()p-)HXtPV+&6VMZ#8Dl zzV~Nh`=bN%+WWoC1j2@SfIhmAwSwPz2Y#NZs{Y)2nZF2Z#@D4+s|v?`;E)ChbjS< zd2FY#mdnNlmxZaed$S>cqrrFxuw01dYk)MV1`j*cEh1M8*PW^bj?+`&-_(p4w)qKCM@$L#~>$%Gl3FSYCBH zw+@DOg)Z>k{a)stKs^F0`c+>_3t4PA>{pFfUaUY~OV4gT4D@})v6yM~;e|mJ{={kV zLXXcai985?VO4DZoHd}=!0#cYtZd6-Tv#-j>r?w0HG5x=hTqff(s7op<$9bP`Cf8a+xb#=)ZaKQwr>=T1`5#DqC>cL- zB};goS9$y|uaCrghuo``QM>kQSLN3_(NGh$Lgk)A`>W$OK)P*To;emMZ%O*bQ{S0; znmI3j{gJ6@*p>u`7?dc>EMaL`#8;5QYZ|`jb-7eaL%lA@@sS6pYddo|=|1o|mr;G#XF28qe5gO2^+R;xXWqu-nhbz}x3-hIW^W-qC*p|B&-78(-Pcxvp_C(9NEy9>BIs(V#?=Fn-^e4fO( z4*zF)zmo9x?-m+8fD7=Z_;wLObb$H@2s932LC=$>u7 zuYK)n?{nZaCGDCHH>42ps*>2*n|3;B8Q{{jjwPl=X3LT6pS1fs5q-YRt!M83Y)UDF z01HR3tKf(g3Z0U&+VO|hTrUTQgPR}JzU-OJ)Nay67x_% z-{@&?$GlRYjeS4I$H&+6L*n)x!De9tqv>9Bx`x1I%ybx|2}oJ(yw~%jaaRIoIGB_Z z*lj(nuZ?Ae+lY|O2E{>VDSE9o20lMAbLH%I&`OWI& zdR4ZVON(yGa(Ae}I8UbLKO5GCdu@0_;6C!v-|wIK{vu%5%($NaH|E*EQiNb9Q6!B0 z4+Vh5RHqG4M$v7~e?Rj{2G;B7TIcHDr#%~YBIg25i#B1@zn|50fvb4on>qgr4_-a< z@tMiFr1_jrnE(CkPZ7Wy$@Rn3|6+>-08B)!>i>g_ zXU1z!8?4H%iDlxyYvgRm&Z~II`Y`OWDR%&g&Pz;eKp2UO%dMYM?Ee?(xT^U0Fm>sx zsa)}0Cci>N7+zQRd0Fau@PBh>S9Rf0sofFt)P)<(`nV$k4|x&DJPNs>v#&#)u3is? zWk?>%(ve)9=jHm}9ffLwSw~ezs1`L%-5gn|8UpYqztn_p$MC; zMn~5o?B?|G@13806_4qN_^M;JboW_fjuIWF8}TjBSh&s>GhkiT1WlO61^o0PdI!3R?g@P+ro<%RZn{d_6It9 zKEJpq>hkAvnKD+1W2YS6`{2R%ow_}~TkLAm4}U(aUVVMAwNPk3N9^os+Ei(Df~#HV z@*Y{k-It}Wi(ezg3m(Db=fU>IW_z-JcJz@rC#RBa?X=Uvu{pfri!w@a+-n3s=oSad zCBoZE@s6DvBIw{~N+GM(*2wIcmW-qbT`_0L3}TA2m2*N4(0#3_yYvO$Yq(Okxmmi% zIp~{|Lmq!=kX~>$%CCxdY4uvFoVBVLuvd^$jyDz4!cEmKGA-4ivL~x@?KMS8*dB>s z!*b+NL%8bWTAbs=ID{`awPs|R*J{T)cBfa+!a;`7`8Xb4p`9LA)uNv9cuCl1bYE3! zv-p~uap;QUo@2{P``*I{E~?Y9vad^<9 zJUc#cCwSCl`jcADw@pzb<>A`Lg`Nym+KL=YO|7VF)WRC?u2FDOnjiBodGAQ*y=9c7 zv1kn#_UVYsKwEBMV)9`F3Bx^0lL2Eg`jt)vC@Xk?j%ie%YKVM()A!wX@9{6j6%Q)7 zzwUeat%XND{bPq#ueawO4>Cu}^hBZ;{|=>~hwy>@{_7qlR9g>db?;0)CfjAzTAaCa zckB|)?bc`>xO)(dz&N~mKYhP?h{<`(Gdds+c4kNSbb)a~Pb~v;AaPYmpuVw4MzML^ z2g;rhL+8ATvN>Bb5=9Y4ZfZNLV;pWNS(&!gl^aDB1^pT+vPA6Kpe#R6KO?x0k2WI} z0}A&MVT^K*)$9tlJXb|^_5I#HfLGB^*HZ9EDIdy@3p@x~;@KRb`tmcS6prT3uRe&o z3%bA976Af!!PwRx)O&bVAe+W|zM3fR=5ajBp?ic+619|9t8%a_Ma`6}TLv1I?3=vj zq+rKzL^uyR>bQVZJ~Q`fM4!Oivck^*Z>D5#NgYJTy40?6 zhP5@~s_s#ZNA5Y+!&NepE~lQZGu?8dKR-Ln_XAm2+MMTZ+t;^2qbL{MJ?lO*e(UBZ z0@Q5%tA{08h9#Ppt9YR!C2$@ioF(JX(*7R-V- z!(t*9`YX?6{{|TuBW=iC3-{3CCh7d_ouP)t#@38vkCy@Sj{Mc~D)Kgc#>=&*TtJ-@ zsSwH023B5z@Rw_67Eu-J?%$Y-0E_tEr=p^kRY+c}DIo$+U8vn-szYwD>^3LoG{2;0 zo1#7F$el=Zz0z@wC4huBYMKT5D($m?z2ZYcmlG>DBcp>RVp@Kb)rU`?UUw<7YgR_A zyrtlK>7T8=zm)H|is6b^CAnd5qSsrTNgXHXb>xD@#Z@*en&iCR`_5^`av{UNQf75e zEtC5r)}I$uCaPD1K=Q*5e;T9=h;)XPZH4Mvi_)Vp;F!tq0Hs&`%W>%l7>(eo8un2< z_NL&wCGi%}>!hSFqm`G91DqE=5HBgj3(|F``o^)Wh`#^G$-cgRK=rl2^271atpM6G zr<(pwi%iYz(y_Hzm!21d=Y-c0eO)M*H(L={Wv_1YI=_P`@opr<)){b0sszVwhbUeD zimuGt*I8W*du6F~dNt2mv=((_;@vX!Yc&gS#gW-IONcS8F)9i7={w>LZid9#1sx3>}lZ14gmZk%{MtQ9;5jXA45?L&|0%*E^*FTzxAqeilXVl5{4A>DK zvam@?k1S=SS0uT4L^ju*@keENr7E zh-bu=i&DA|{>tf_mg!15*J-KAn$`pAUgp zu~}-qYcc$RfG=bur`B}#qsR59BWKRW^_d?6TZ1Ng32Y39HJ6Q6I27rpFP z*k9i4S|+MFkwHf~NCrvTJ$E;dJl-RVhb$I7-FezDV!UwxVEwSrq&^2s;u$q@dI-0z z%Ra_wD4H8dvz={kc_L`fX&NuTC`PZZ-fyXCbKC@uM!=`kIn@`~*AIxdAnBdwsl5&n z@zhu=;nEqhsX1O1j~B7p;napFb(T1F=)`;1NJ;WN$`Ry!Uf~ugC`3a0YP<2Ma$c)D zDHOw@)ePC)`rff9q+m}mitIVc)h%r;Oj9(ejJ2Wn#a>`Y&UOGTQ8brs zX<(=QId2E6g+jvu`OQuTJ5Hu2uK>C={!&)|H+EfNo2rSFDI+kRl z6vhU82SPl~v1?1>ygRY3w~}lVN~}R!5(?+A+$GB5dA*?fo2%r?Vw2Tbu5Siwjt@s4 zWpK}4*j~`N42m@~2oeud9%wuZ-x;0Xb|6BxS|fo)Lp4Fo65!#(P7!Ck;vT@?4bG*- zAE9|S|2RW?w)*5tuiUBI3OFs@*tDlPLS<+)b)?4X)h?w5Vo%# z4*=XtJoKzS&{gv1I=>H5gZgH>XoegAe-uSWf~BrW^p#XD`HpgahLd&e;bo0_NZu9y z8;QV_eP|FlqE88N@H{wwdqcf5H@r_-LnMy^Lv|xJ<9KY}W$PzL&?)~Ud`uyred6Ov z-rS>3z%NzqBOUv~lId()fYZV*oc3Zc*=-f{p>24$?Wx;GQE`pQh>Uv?VJw5f;eXn= z!#{t2A}>8zKXBx| zie5lUHGZV#03|JsbD~^=0`<+vehzt5o`~Y4r6v=d=mUhREDEka=)pDUrm|3TxE8*~ z>cJzW632948}|E27yPSp$(P%Z_8><61t2^O<;btRH z-`NZFkprPg2q%oe2WmiiM*k>C(lfUL$_soBgH8pgu+^pi7SO1k1$i^wO zI1n-9=?*%54Zl2UBtjUCZEBkt{JT@WA03%-FQ?a5a-OiLCOjw1my?%&#C%3#XKHYhWI^a^anc@`al z#<`fXlG>IgM!69&=QtzPwyl-9F3HWDyCQH8*7K+zM6Yg-3-8H5K=!8um%tR^62_20 z%a!vplixjVuuH)EHj$)5^Ro<<#L+oV&FMxb*On>fRf)legDBe~xX|fTQ1{NKS+U|a zc75uYdo53!Ff%)eq*mjBG)UCXrWp`X^d6`zoFqY3zUNxyRme7eq?p#|kJ7hs^E?r8 zk2?1E_b*>kO_I*AgqQ0rd>%~yW`HudXD{?YWZHCE!G=H<@vQyfd0frfHN!3=&+0=FC8(*Wwu`* zZiUaxz~mLgocH>;65(M|r+eyx&*g=9+^W{osW2H9Qmzs-9h^}K3eQ7*3wB!Li7>}4FV2KzBAg7A zYUh%p*?JFO16ntoE2@CyLL8rG<*4bKLKZENmSShNvBsRU*nh?yXHIGo<4$t{M5%_j zZP8rO;M@v%*!$+*3sg*!XQF z99wTLxLJ`e4AuBWaA^&Uo5N9+ns45`NmawNE@WB31Bo$}S?ijGz@h49C`RWkEW-3e zt>1ifAuDf)f1@Ooo;2XBfc5?)qiA)k@5MJ%aV)XUCy;QUI!;ZEF>0c(U|DF2tzeFu zBHIe=O4mm^p>B1kqEL3F_m4M-wpkWrHJ1(D`^FOM(=Mn)4%Yoy)$Z~A@f zt+_(4W4ETUVk`9cz;KCu1~|5Jh$fOrpzD#lPO&p=qRw}tT|hNxXUhDQTI&{_`IDYZ zV^(=S2pcvS+bW--F9nGBxYQ3JQqoQ6wz z7mH1ZD1mmEn`eu5!iDAF4vPL!z|h2_i=RNh)3!Jvt7T!H>bN$QKxcwG`+Y7=!%9=;;I!bbX(<@i)VrGy=%2_<-*d6C3BfQ zLbEH&A?Xc4H6_xAf;}h3IXEBQ(RI%X+~d`ViY+S@XNC;iB!iW|VaTW?S4&?Le!X4Q zuFGrqE{3kzBDnqSvY*WvW3`cS0Z0C%YBfO!*Wl8IC3I@rzo=ruk}SeOF*v$#;YV2S zpnx@i``}x8FNW#f_Bh0{g6B#FbWJfUYV3Y zgiFo^2*+;!xiM%<-%X3Cn>>!{;c4HrgNd(1IGP5xASRvrv@+@%BZunii6?@Dq4 zxs2$VJ?!GS`>q0Hn@c!75Dwo1fI^i=BI6vGK!pirK1x-a^tKe~p8w`K`_^oLlT;X4 zeX@*QFrf->$g3}>FQ$bxIpSTkA$N&YKLYK2xRPM}C*sD9 zrw_3u@wb#kY*t1q81-p5&S`0w44{F}odzCv0d!8M+fIA<2dTSx^uqP-K?XN3E%%pC z0yD{3bWW!=!$2&R;u?#g^20Y-7^6G*+B9_|{cAZsmi`u@dS|BM}n zo&fT`rFJk$K<0 z;F@Fm#!Vk1f&FZqkq;kpO@yy-g6f=}@^#IgY%LynW#vd3h})2G&~2`J7Y|5yaax|s ziw`n2-bH0aa*RFrgaj*nWHyzSb@)J?MKvrY<_-W_Ing7qvpq6%8RwlfCLp_A6actj zvioaKF0!`s&a@x+n)il{yCC9=NE$RErt5*i#WO0)&&%H;+7biE~aMJ>=+I|y4m zZZlF^;QPL;(qdDJMwEZ-C=57`@KAwGanL5g#!d3s@CBKR)I=J#D?Ks{3=FBDoZcdS zy}Zh1Nmu}uoz7)Xbhz<6ObKh7d_Azi(3c_JbJ}iX&iBMziZ@=+g3=($S#sgc}FyS{F z*Q+R%A=LG3*D{_-<~iw|wa9eL%7}aqV=6( zbMwL%^yN{HAw@|DyHbdjDEfSr%h7#)EKPC3+AK8~FCasw?rSMz*&3xxC6GIp`>;HE zQgnQAZtjTcUP7psGO^<1Zw-0D-9?L2zJaHD^s}n6tkV}^^B)lWRw295jEk_XEY0jz zzRhwpqa61UHNQpvTa}M!q#3-DCgS^dUUrRdPoj3eG^LSEkkClPlv@0CjgLXn5fSWn z3-3DM&DYj^@R>;lAS`z);zKW7Ahnj4exQN*z|=B)a!~-@aJR9BtbPMid8Nsyp;oSK z{M`DNZ{fBxRc)mg2ZG=SrVVwM9H1r)-@&9{KB#4+J~uDC8$yB*3iyGEu9h)@TR)CM zePuX@v=vXm+8A}|zi*1?!3HIHPx9J=@+^|Y!Rx$Xq;@FE1p7A$T9=W{(!1^!}kJi zh5F}B4C~DPv+Q=?pH{<#XIO$NWb&E#ij1OdE%ct>N;>&==?s- zKpg6Lp24fj$1M{UqxUoX5UN9M8}YeWf%LjdYgO^_x8s4cR8O?FCCCm??6)-aq*+C` zXDJ*XY-3Uc;l^DK7w?@v&BP-Rhn%S<0BGomY{ zm}7UY@O~cF);zYZpJfJKm|GRc!6+F+i91wO9O10Wl4ZGqqMF&7;j@Fns^LHXPU$c! zltg}KxX29bwkBL>!H}p$q8~C-PVXDwy!lpWw^g}K<@0q9*yYqm$elv7E*iLIVFETD zmaY=ZkYBSC z7r|p_@R0CkDCo>?uczcHE$t8a0J2>A2v0Xr=E5`Bwh;y(jb!Ce!ad;N@A@LbOaq^7 z$dmcU?9e$`D<2Qve#9tpA>0HtwM=>nWxH@IQ;Q!xBpnIZu?B<5DZ=XvYZB zVc1-oA`V$9r{4FvCOPTN^BwpAxJM~Hlg=ABcy<2AB7A{ew=_p7mR}o?-t;XkEo#}%xc064 z*ep<`xktylXh})RxHClF%mZe8AERKO1Q_WQypy8u-8HXp0TY)3ojdJ+0 zKZ5oSZ;j+oL^`c37k2LciBeNnXJ%t-9_U@!64q&>{67oD^PCY2o5zJ~ zZCvCw!}*KX=-Ho-9tq?yruCdy-8CBMQ1>!U!A(UUropDBet1n25E6zz+3ddX_B=uD zlYhxWifwq%40;Hz1LeN;n~sr}PV->Qy?x6T78CN~O?YCwpUM0n^AY7oHWNL)gyR{t zXT(%k>p&NcRRk6iHckS!Hcq;CGRRP9XB=~sqFG#Q?Vz9_!_@Z0_(9<-n{p44{BPEf znSGN$S4H0<5IBQPfmIQ-c4;Ns%hmaT6u89a(6`{hup3j7?2qJ9w;3|^#lP4VI#GN9 zhoF|=d^*lIaHtJoH%->*WUKi2+U@BCv} zJXqwV-9^U#UX+e*()r&+H(sGKSg5G^VLn_}bvhv-A$Zaqv;W=q4PdzmI6g6idS60> zBR1Ar>}UU8^3^!F(K+Qtd=Pt{Yb)7XR5aQCr=S=GKeoMk`#N+&ji90F*SWNEN$q_P z@%favYSGv{fFlThvh$qAZ zX3Bk?#(;NI!OXJQ(%!ExM^n7_z%3WBIQ+TJUvB;Q@q?L;uFiJ+@O?(w^Ytn6k(;P9 zzHf#e>^}(yKG9ovc5%?4C0)hmF6B)>uU@-`*tm7im6Neon@&(rQL=hz+g6OrAS5Ulq`*G$DSs#I4<@_<421iD0y-x{?H|I`ikzqq zqfdAwso5j5G{SBVmPFysvKXL73p}&+o|RNKB#JT9dh%*yY39@GBaeR$pes#^JVb1B z9BL0~fSakp9+YevPc^3yncduQ`Z3xL!_jOrwi*#eTeBwF*^}1Rd|XX)3qlSl11aj( zhP6h;04jJCN1i1Ea7-K1{%bQ6C!QH00`w2A-o6Jz>6gxEW$KqDIjp(`V5=W{49Q!o zM2mV>PFDsE!vbhLl@y}cIWjXdH@3A>Fz<*HrQKtSqbGZB&?Xh-bHxiQq;TXTR7B90 zyU7U=Om4Oo>Zl!Rn?GL;`|bOtpP?6pEL$?w3ksdK@996RjXf9FL?oS+RWHf`SRcURho+b0q#Q2v(mA^5;;wF<-qE3g?PoE0Uf8f;a!NdDxG9(TM2eyY4JoreHF&-L1DXQ1_ zk%oD&#MTP6U|D+lvhT5d61=Tsutd!4)NPy+wy@4+Pz-grlYp-b1hB$)){A*;_R>4` zWiA%(j(e)VQT~JA`;{QUzDDAuD0#ZaXfd4iiHKM5N{sjtxijxq)cou0re<%Vq8dsE zym$#^N~5fNFTo-8X-$r(VdFliTtMW4Tv@XCp*JZNm6czZG0Ur78yQ^dSbW6; zXTsU`(v`kUUG(bD@DQ$vGhrq)2}^r-=_#n-`6h6D_WgxkIw`(f{^A(DlfPT}Riyti z@p9R|yYm|Vqw;&r;}GOZ$0WmcE8A>0w0pRbJNX<$RQmK>9e+et3c7u`Z8pFx>-Ih{2A#e05_iN` zLIBCorrxz34LD48n45J1;-Imi;lAc;Ly@sT6U}US>Gz}?(EM>Hsxe8Me6_}RJIf;` z?%q>VDlI3+?#%UD3>NUvHnxQP;8imUwnKJ}RHb3q0eG=ZVsY zKlOZ35>r~74`bZ$j@FFyyR3p{TOx8<54_Ty^tKSw)^=1;G&ZMMY|htB{}Amh-bwtz zayYAmfO99_AiP&(IZYwjX|OuxEtS|P+jOJHi(re|Bl`)u5M?gIgKUc1j^PcB2@#;Q zDm6RBS0kQEtocZ^XeMr!YgyD%moGh!n4njFYMaU+$(CwR!Na49sI`V4BG}#CgxTQ8 z6Rhu|*D5&98~psm#yDnS!5qE7!fxyqtfr>6e4QtE!oqMQZ|C_po2~U}wN5-Y$}5!! z{Ku3tRr`yI!Y+%iPyI?C`;lq!PG`lh>-xP#mr@iA{I-_2zfotU z*+XPM-LdVGozs%oYBny-c)6COUufUtw5x5o_MSLEK@hdX`vuQJJA(jTB7Z#ZmPC3LQA@HAMUK)TABPk-S#*TWBN5Biw zl2_`Y4$e-I77epQfIjU{^nCvi&uG~Ie-F;W=qn2@Ky5ydTxGgaNwhi53} zucF>4mRCtpJD9J_TJ0uf`))9C#YDk9uk?h%T`NAxgTJ&*42vY8tGCYx_@Ca@6^H)! z-GFfQzOSVz&0Ce{H8HR`cYnO(-uTZD21@f(Ww)Z7M``@C$i;cRi`2o9!mh1~x?VMH z2j#j%R|Eq$A{^8Xt4X#B?Wy=_GKkae*|MxG>4nFOIrBa0Jwb?`9u5nq%%zD8P`ZdR z3q7GCqN!qDsrXIfS1j*GJ;>)i61{YzW_)L@Z>7koIB5ZdeG?|VMO7z;qywVnU`Rj>Upf+cfj+Ye^r3ZWrO5deB2kd9K-&G3)3u^|too7kh^EkryE|w0P=DBeh%hH^OF(7)vl9tH9D1rY) z1R%U>0`lpZJ;er`|5a~+d2j~vu(4W#X+Mu`&J?`O>mYm(Jt2MV^WT7A=ox+R4F8AQ vJh}B4H0r^ Date: Wed, 29 May 2024 10:43:48 +0300 Subject: [PATCH 11/56] Update version to 4.1.0 (#156) --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index fddc529d3..5e030788b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.0.2", + "version": "4.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@jfrog/setup-jfrog-cli", - "version": "4.0.2", + "version": "4.1.0", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index e4627dc92..cb1782c1d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.0.2", + "version": "4.1.0", "private": true, "description": "Setup JFrog CLI in GitHub Actions", "main": "lib/main.js", From ac320860ee08886f9762fc8eb4186f994deadecb Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Wed, 29 May 2024 18:16:15 +0300 Subject: [PATCH 12/56] Update documentation (#157) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 67aa07607..7bf34a515 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ - [Setting JFrog CLI version](#setting-jfrog-cli-version) - [Setting JFrog CLI project key](#Setting-JFrog-CLI-project-Key) - [Downloading JFrog CLI from Artifactory](#downloading-jfrog-cli-from-artifactory) -- [GitHub Job Summaries](#JFrog-Job-Summary) +- [GitHub Job Summaries](#jfrog-job-summary) - [Example projects](#example-projects) - [Contributions](#contributions) - [References](#references) @@ -290,7 +290,7 @@ to generate a detailed summary of the entire workflow. The summary can be viewed from the GitHub Actions run page. A list of supported commands and more information can be found here -[JFrog CLI Command Summaries Documentation](https://github.com/jfrog/documentation/blob/main/jfrog-applications/jfrog-cli/cli-command-summaries.md) +[JFrog CLI Command Summaries Documentation](https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-command-summaries) The Job Summary UI includes direct links to the JFrog Platform UI. It's important to note that for the platform links to function correctly, From 1405ca8c4227d79f4c8303964f757a4e4e2369c2 Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Thu, 30 May 2024 11:57:02 +0300 Subject: [PATCH 13/56] Update documentation (#158) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7bf34a515..05051cdc5 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ - [Authorization](#authorization) - [Setting the build name and build number when publishing build-info to Artifactory](#setting-the-build-name-and-build-number-when-publishing-build-info-to-artifactory) - [Setting JFrog CLI version](#setting-jfrog-cli-version) -- [Setting JFrog CLI project key](#Setting-JFrog-CLI-project-Key) +- [Setting the JFrog project key](#setting-the-jfrog-project-key) - [Downloading JFrog CLI from Artifactory](#downloading-jfrog-cli-from-artifactory) - [GitHub Job Summaries](#jfrog-job-summary) - [Example projects](#example-projects) @@ -238,7 +238,7 @@ It is also possible to set the latest JFrog CLI version by adding the _version_ | Important: Only JFrog CLI versions 1.46.4 or above are supported. | | ----------------------------------------------------------------- | -## Setting JFrog CLI project key +## Setting the JFrog project key [JFrog Projects](https://jfrog.com/help/r/jfrog-platform-administration-documentation/projects) are a management entity that hosts all your resources related to a specific project, such as repositories, builds and Release Bundles. From 7c95feb32008765e1b4e626b078dfd897c4340ad Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Thu, 30 May 2024 14:36:06 +0300 Subject: [PATCH 14/56] Fix job summary footer docs anchor (#161) --- README.md | 2 +- lib/utils.js | 2 +- src/utils.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 05051cdc5..ccce1a0e5 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ - [Setting JFrog CLI version](#setting-jfrog-cli-version) - [Setting the JFrog project key](#setting-the-jfrog-project-key) - [Downloading JFrog CLI from Artifactory](#downloading-jfrog-cli-from-artifactory) -- [GitHub Job Summaries](#jfrog-job-summary) +- [JFrog Job Summary](#jfrog-job-summary) - [Example projects](#example-projects) - [Contributions](#contributions) - [References](#references) diff --git a/lib/utils.js b/lib/utils.js index bdff237f3..d61f08eab 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -558,7 +558,7 @@ class Utils { return Utils.getMarkdownHeader() + fileContent + Utils.getMarkdownFooter(); } static getMarkdownFooter() { - return '\n\n # \n\n The above Job Summary was generated by the Setup JFrog CLI GitHub Action '; + return '\n\n # \n\n The above Job Summary was generated by the Setup JFrog CLI GitHub Action '; } } exports.Utils = Utils; diff --git a/src/utils.ts b/src/utils.ts index 27e334f94..257da3e32 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -598,7 +598,7 @@ export class Utils { } private static getMarkdownFooter() { - return '\n\n # \n\n The above Job Summary was generated by the Setup JFrog CLI GitHub Action '; + return '\n\n # \n\n The above Job Summary was generated by the Setup JFrog CLI GitHub Action '; } } From 365964f813689af7972f7864b53e407699360532 Mon Sep 17 00:00:00 2001 From: Eran Turgeman <81029514+eranturgeman@users.noreply.github.com> Date: Tue, 4 Jun 2024 14:36:26 +0300 Subject: [PATCH 15/56] Fix broken URL in OIDC tests (#163) --- .github/workflows/oidc-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/oidc-test.yml b/.github/workflows/oidc-test.yml index 1239149e9..b328cc035 100644 --- a/.github/workflows/oidc-test.yml +++ b/.github/workflows/oidc-test.yml @@ -38,7 +38,7 @@ jobs: run: | curl -X POST "${{ secrets.JFROG_PLATFORM_URL }}/access/api/v1/oidc" -H "Content-Type: application/json" -H "Authorization: Bearer ${{ secrets.JFROG_PLATFORM_RT_TOKEN }}" -d '{ "name": "${{ env.OIDC_PROVIDER_NAME }}", - "issuer_url": "https://token.actions.githubusercontent.com/", + "issuer_url": "https://token.actions.githubusercontent.com", "provider_type": "GitHub", "description": "This is a test configuration created for OIDC-Access integration test" }' From c3a873ede24c313fd5a879228db011c49cf81088 Mon Sep 17 00:00:00 2001 From: Michael Sverdlov Date: Sat, 22 Jun 2024 12:25:44 +0300 Subject: [PATCH 16/56] Update dependencies and Update JFrog CLI to 2.58.2 (#166) --- action.yml | 2 +- lib/utils.js | 2 +- node_modules/@actions/core/README.md | 4 +- node_modules/@actions/core/lib/core.d.ts | 4 +- node_modules/@actions/core/lib/oidc-utils.js | 2 +- .../@actions/core/lib/oidc-utils.js.map | 2 +- node_modules/@actions/core/package.json | 6 +- .../@actions/http-client/lib/index.js | 10 +- .../@actions/http-client/lib/index.js.map | 2 +- .../@actions/http-client/package.json | 4 +- node_modules/lru-cache/LICENSE | 15 - node_modules/lru-cache/README.md | 166 - node_modules/lru-cache/index.js | 334 -- node_modules/lru-cache/package.json | 34 - node_modules/semver/README.md | 81 +- node_modules/semver/bin/semver.js | 19 +- node_modules/semver/classes/range.js | 7 +- node_modules/semver/classes/semver.js | 2 +- node_modules/semver/functions/coerce.js | 18 +- node_modules/semver/internal/lrucache.js | 40 + node_modules/semver/internal/re.js | 9 +- node_modules/semver/package.json | 26 +- node_modules/yallist/LICENSE | 15 - node_modules/yallist/README.md | 204 - node_modules/yallist/iterator.js | 8 - node_modules/yallist/package.json | 29 - node_modules/yallist/yallist.js | 426 --- package-lock.json | 3355 ++++++++++------- package.json | 26 +- src/utils.ts | 2 +- 30 files changed, 2063 insertions(+), 2791 deletions(-) delete mode 100644 node_modules/lru-cache/LICENSE delete mode 100644 node_modules/lru-cache/README.md delete mode 100644 node_modules/lru-cache/index.js delete mode 100644 node_modules/lru-cache/package.json create mode 100644 node_modules/semver/internal/lrucache.js delete mode 100644 node_modules/yallist/LICENSE delete mode 100644 node_modules/yallist/README.md delete mode 100644 node_modules/yallist/iterator.js delete mode 100644 node_modules/yallist/package.json delete mode 100644 node_modules/yallist/yallist.js diff --git a/action.yml b/action.yml index 7ea5ac09b..da16ed6fc 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: "JFrog" inputs: version: description: "JFrog CLI Version" - default: "2.57.0" + default: "2.58.2" required: false download-repository: description: "Remote repository in Artifactory pointing to 'https://releases.jfrog.io/artifactory/jfrog-cli'. Use this parameter in case you don't have an Internet access." diff --git a/lib/utils.js b/lib/utils.js index d61f08eab..81015b9d5 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -382,7 +382,7 @@ class Utils { /** * Execute JFrog CLI command. * This GitHub Action downloads the requested 'jfrog' executable and stores it as 'jfrog' and 'jf'. - * Therefore the 'jf' executable is expected to be in the path also for older CLI versions. + * Therefore, the 'jf' executable is expected to be in the path also for older CLI versions. * @param args - CLI arguments */ static runCli(args) { diff --git a/node_modules/@actions/core/README.md b/node_modules/@actions/core/README.md index 3c20c8ea5..8a471430a 100644 --- a/node_modules/@actions/core/README.md +++ b/node_modules/@actions/core/README.md @@ -121,7 +121,7 @@ const result = await core.group('Do something async', async () => { This library has 3 methods that will produce [annotations](https://docs.github.com/en/rest/reference/checks#create-a-check-run). ```js -core.error('This is a bad error. This will also fail the build.') +core.error('This is a bad error, action may still succeed though.') core.warning('Something went wrong, but it\'s not bad enough to fail the build.') @@ -163,7 +163,7 @@ export interface AnnotationProperties { startColumn?: number /** - * The start column for the annotation. Cannot be sent when `startLine` and `endLine` are different values. + * The end column for the annotation. Cannot be sent when `startLine` and `endLine` are different values. * Defaults to `startColumn` when `startColumn` is provided. */ endColumn?: number diff --git a/node_modules/@actions/core/lib/core.d.ts b/node_modules/@actions/core/lib/core.d.ts index 1defb5722..ceecdd326 100644 --- a/node_modules/@actions/core/lib/core.d.ts +++ b/node_modules/@actions/core/lib/core.d.ts @@ -21,7 +21,7 @@ export declare enum ExitCode { Failure = 1 } /** - * Optional properties that can be sent with annotatation commands (notice, error, and warning) + * Optional properties that can be sent with annotation commands (notice, error, and warning) * See: https://docs.github.com/en/rest/reference/checks#create-a-check-run for more information about annotations. */ export interface AnnotationProperties { @@ -46,7 +46,7 @@ export interface AnnotationProperties { */ startColumn?: number; /** - * The start column for the annotation. Cannot be sent when `startLine` and `endLine` are different values. + * The end column for the annotation. Cannot be sent when `startLine` and `endLine` are different values. * Defaults to `startColumn` when `startColumn` is provided. */ endColumn?: number; diff --git a/node_modules/@actions/core/lib/oidc-utils.js b/node_modules/@actions/core/lib/oidc-utils.js index f70127708..092e93d7e 100644 --- a/node_modules/@actions/core/lib/oidc-utils.js +++ b/node_modules/@actions/core/lib/oidc-utils.js @@ -44,7 +44,7 @@ class OidcClient { .catch(error => { throw new Error(`Failed to get ID Token. \n Error Code : ${error.statusCode}\n - Error Message: ${error.result.message}`); + Error Message: ${error.message}`); }); const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; if (!id_token) { diff --git a/node_modules/@actions/core/lib/oidc-utils.js.map b/node_modules/@actions/core/lib/oidc-utils.js.map index 284fa1d39..22506b807 100644 --- a/node_modules/@actions/core/lib/oidc-utils.js.map +++ b/node_modules/@actions/core/lib/oidc-utils.js.map @@ -1 +1 @@ -{"version":3,"file":"oidc-utils.js","sourceRoot":"","sources":["../src/oidc-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,sDAA+C;AAC/C,wDAAqE;AACrE,iCAAuC;AAKvC,MAAa,UAAU;IACb,MAAM,CAAC,gBAAgB,CAC7B,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,EAAE;QAEb,MAAM,cAAc,GAAmB;YACrC,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,QAAQ;SACrB,CAAA;QAED,OAAO,IAAI,wBAAU,CACnB,qBAAqB,EACrB,CAAC,IAAI,8BAAuB,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,EAC3D,cAAc,CACf,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,eAAe;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;QAC3D,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAA;SACF;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,MAAM,CAAC,aAAa;QAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAC9D,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;SAC3E;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;IAEO,MAAM,CAAO,OAAO,CAAC,YAAoB;;;YAC/C,MAAM,UAAU,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAA;YAEhD,MAAM,GAAG,GAAG,MAAM,UAAU;iBACzB,OAAO,CAAgB,YAAY,CAAC;iBACpC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,MAAM,IAAI,KAAK,CACb;uBACa,KAAK,CAAC,UAAU;yBACd,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CACtC,CAAA;YACH,CAAC,CAAC,CAAA;YAEJ,MAAM,QAAQ,SAAG,GAAG,CAAC,MAAM,0CAAE,KAAK,CAAA;YAClC,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;aACjE;YACD,OAAO,QAAQ,CAAA;;KAChB;IAED,MAAM,CAAO,UAAU,CAAC,QAAiB;;YACvC,IAAI;gBACF,gDAAgD;gBAChD,IAAI,YAAY,GAAW,UAAU,CAAC,aAAa,EAAE,CAAA;gBACrD,IAAI,QAAQ,EAAE;oBACZ,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;oBACpD,YAAY,GAAG,GAAG,YAAY,aAAa,eAAe,EAAE,CAAA;iBAC7D;gBAED,YAAK,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAA;gBAExC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;gBACvD,gBAAS,CAAC,QAAQ,CAAC,CAAA;gBACnB,OAAO,QAAQ,CAAA;aAChB;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;aACnD;QACH,CAAC;KAAA;CACF;AAzED,gCAyEC"} \ No newline at end of file +{"version":3,"file":"oidc-utils.js","sourceRoot":"","sources":["../src/oidc-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,sDAA+C;AAC/C,wDAAqE;AACrE,iCAAuC;AAKvC,MAAa,UAAU;IACb,MAAM,CAAC,gBAAgB,CAC7B,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,EAAE;QAEb,MAAM,cAAc,GAAmB;YACrC,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,QAAQ;SACrB,CAAA;QAED,OAAO,IAAI,wBAAU,CACnB,qBAAqB,EACrB,CAAC,IAAI,8BAAuB,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,EAC3D,cAAc,CACf,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,eAAe;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;QAC3D,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAA;SACF;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,MAAM,CAAC,aAAa;QAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAC9D,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;SAC3E;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;IAEO,MAAM,CAAO,OAAO,CAAC,YAAoB;;;YAC/C,MAAM,UAAU,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAA;YAEhD,MAAM,GAAG,GAAG,MAAM,UAAU;iBACzB,OAAO,CAAgB,YAAY,CAAC;iBACpC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,MAAM,IAAI,KAAK,CACb;uBACa,KAAK,CAAC,UAAU;yBACd,KAAK,CAAC,OAAO,EAAE,CAC/B,CAAA;YACH,CAAC,CAAC,CAAA;YAEJ,MAAM,QAAQ,SAAG,GAAG,CAAC,MAAM,0CAAE,KAAK,CAAA;YAClC,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;aACjE;YACD,OAAO,QAAQ,CAAA;;KAChB;IAED,MAAM,CAAO,UAAU,CAAC,QAAiB;;YACvC,IAAI;gBACF,gDAAgD;gBAChD,IAAI,YAAY,GAAW,UAAU,CAAC,aAAa,EAAE,CAAA;gBACrD,IAAI,QAAQ,EAAE;oBACZ,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;oBACpD,YAAY,GAAG,GAAG,YAAY,aAAa,eAAe,EAAE,CAAA;iBAC7D;gBAED,YAAK,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAA;gBAExC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;gBACvD,gBAAS,CAAC,QAAQ,CAAC,CAAA;gBACnB,OAAO,QAAQ,CAAA;aAChB;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;aACnD;QACH,CAAC;KAAA;CACF;AAzED,gCAyEC"} \ No newline at end of file diff --git a/node_modules/@actions/core/package.json b/node_modules/@actions/core/package.json index 1f3824dec..1558268c4 100644 --- a/node_modules/@actions/core/package.json +++ b/node_modules/@actions/core/package.json @@ -1,6 +1,6 @@ { "name": "@actions/core", - "version": "1.10.0", + "version": "1.10.1", "description": "Actions core lib", "keywords": [ "github", @@ -30,7 +30,7 @@ "scripts": { "audit-moderate": "npm install && npm audit --json --audit-level=moderate > audit.json", "test": "echo \"Error: run tests from root\" && exit 1", - "tsc": "tsc" + "tsc": "tsc -p tsconfig.json" }, "bugs": { "url": "https://github.com/actions/toolkit/issues" @@ -43,4 +43,4 @@ "@types/node": "^12.0.2", "@types/uuid": "^8.3.4" } -} +} \ No newline at end of file diff --git a/node_modules/@actions/http-client/lib/index.js b/node_modules/@actions/http-client/lib/index.js index 5a3cad337..f627c6a3e 100644 --- a/node_modules/@actions/http-client/lib/index.js +++ b/node_modules/@actions/http-client/lib/index.js @@ -502,7 +502,7 @@ class HttpClient { if (this._keepAlive && useProxy) { agent = this._proxyAgent; } - if (this._keepAlive && !useProxy) { + if (!useProxy) { agent = this._agent; } // if agent is already assigned use that agent. @@ -534,16 +534,12 @@ class HttpClient { agent = tunnelAgent(agentOptions); this._proxyAgent = agent; } - // if reusing agent across request and tunneling agent isn't assigned create a new agent - if (this._keepAlive && !agent) { + // if tunneling agent isn't assigned create a new agent + if (!agent) { const options = { keepAlive: this._keepAlive, maxSockets }; agent = usingSsl ? new https.Agent(options) : new http.Agent(options); this._agent = agent; } - // if not using private agent and tunnel agent isn't setup then use global agent - if (!agent) { - agent = usingSsl ? https.globalAgent : http.globalAgent; - } if (usingSsl && this._ignoreSslError) { // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options diff --git a/node_modules/@actions/http-client/lib/index.js.map b/node_modules/@actions/http-client/lib/index.js.map index 21d599de4..1fce6fc2b 100644 --- a/node_modules/@actions/http-client/lib/index.js.map +++ b/node_modules/@actions/http-client/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@actions/http-client/package.json b/node_modules/@actions/http-client/package.json index ed1343724..0ae89c34b 100644 --- a/node_modules/@actions/http-client/package.json +++ b/node_modules/@actions/http-client/package.json @@ -1,6 +1,6 @@ { "name": "@actions/http-client", - "version": "2.2.0", + "version": "2.2.1", "description": "Actions Http Client", "keywords": [ "github", @@ -48,4 +48,4 @@ "tunnel": "^0.0.6", "undici": "^5.25.4" } -} +} \ No newline at end of file diff --git a/node_modules/lru-cache/LICENSE b/node_modules/lru-cache/LICENSE deleted file mode 100644 index 19129e315..000000000 --- a/node_modules/lru-cache/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -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. - -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. diff --git a/node_modules/lru-cache/README.md b/node_modules/lru-cache/README.md deleted file mode 100644 index 435dfebb7..000000000 --- a/node_modules/lru-cache/README.md +++ /dev/null @@ -1,166 +0,0 @@ -# lru cache - -A cache object that deletes the least-recently-used items. - -[![Build Status](https://travis-ci.org/isaacs/node-lru-cache.svg?branch=master)](https://travis-ci.org/isaacs/node-lru-cache) [![Coverage Status](https://coveralls.io/repos/isaacs/node-lru-cache/badge.svg?service=github)](https://coveralls.io/github/isaacs/node-lru-cache) - -## Installation: - -```javascript -npm install lru-cache --save -``` - -## Usage: - -```javascript -var LRU = require("lru-cache") - , options = { max: 500 - , length: function (n, key) { return n * 2 + key.length } - , dispose: function (key, n) { n.close() } - , maxAge: 1000 * 60 * 60 } - , cache = new LRU(options) - , otherCache = new LRU(50) // sets just the max size - -cache.set("key", "value") -cache.get("key") // "value" - -// non-string keys ARE fully supported -// but note that it must be THE SAME object, not -// just a JSON-equivalent object. -var someObject = { a: 1 } -cache.set(someObject, 'a value') -// Object keys are not toString()-ed -cache.set('[object Object]', 'a different value') -assert.equal(cache.get(someObject), 'a value') -// A similar object with same keys/values won't work, -// because it's a different object identity -assert.equal(cache.get({ a: 1 }), undefined) - -cache.reset() // empty the cache -``` - -If you put more stuff in it, then items will fall out. - -If you try to put an oversized thing in it, then it'll fall out right -away. - -## Options - -* `max` The maximum size of the cache, checked by applying the length - function to all values in the cache. Not setting this is kind of - silly, since that's the whole purpose of this lib, but it defaults - to `Infinity`. Setting it to a non-number or negative number will - throw a `TypeError`. Setting it to 0 makes it be `Infinity`. -* `maxAge` Maximum age in ms. Items are not pro-actively pruned out - as they age, but if you try to get an item that is too old, it'll - drop it and return undefined instead of giving it to you. - Setting this to a negative value will make everything seem old! - Setting it to a non-number will throw a `TypeError`. -* `length` Function that is used to calculate the length of stored - items. If you're storing strings or buffers, then you probably want - to do something like `function(n, key){return n.length}`. The default is - `function(){return 1}`, which is fine if you want to store `max` - like-sized things. The item is passed as the first argument, and - the key is passed as the second argumnet. -* `dispose` Function that is called on items when they are dropped - from the cache. This can be handy if you want to close file - descriptors or do other cleanup tasks when items are no longer - accessible. Called with `key, value`. It's called *before* - actually removing the item from the internal cache, so if you want - to immediately put it back in, you'll have to do that in a - `nextTick` or `setTimeout` callback or it won't do anything. -* `stale` By default, if you set a `maxAge`, it'll only actually pull - stale items out of the cache when you `get(key)`. (That is, it's - not pre-emptively doing a `setTimeout` or anything.) If you set - `stale:true`, it'll return the stale value before deleting it. If - you don't set this, then it'll return `undefined` when you try to - get a stale entry, as if it had already been deleted. -* `noDisposeOnSet` By default, if you set a `dispose()` method, then - it'll be called whenever a `set()` operation overwrites an existing - key. If you set this option, `dispose()` will only be called when a - key falls out of the cache, not when it is overwritten. -* `updateAgeOnGet` When using time-expiring entries with `maxAge`, - setting this to `true` will make each item's effective time update - to the current time whenever it is retrieved from cache, causing it - to not expire. (It can still fall out of cache based on recency of - use, of course.) - -## API - -* `set(key, value, maxAge)` -* `get(key) => value` - - Both of these will update the "recently used"-ness of the key. - They do what you think. `maxAge` is optional and overrides the - cache `maxAge` option if provided. - - If the key is not found, `get()` will return `undefined`. - - The key and val can be any value. - -* `peek(key)` - - Returns the key value (or `undefined` if not found) without - updating the "recently used"-ness of the key. - - (If you find yourself using this a lot, you *might* be using the - wrong sort of data structure, but there are some use cases where - it's handy.) - -* `del(key)` - - Deletes a key out of the cache. - -* `reset()` - - Clear the cache entirely, throwing away all values. - -* `has(key)` - - Check if a key is in the cache, without updating the recent-ness - or deleting it for being stale. - -* `forEach(function(value,key,cache), [thisp])` - - Just like `Array.prototype.forEach`. Iterates over all the keys - in the cache, in order of recent-ness. (Ie, more recently used - items are iterated over first.) - -* `rforEach(function(value,key,cache), [thisp])` - - The same as `cache.forEach(...)` but items are iterated over in - reverse order. (ie, less recently used items are iterated over - first.) - -* `keys()` - - Return an array of the keys in the cache. - -* `values()` - - Return an array of the values in the cache. - -* `length` - - Return total length of objects in cache taking into account - `length` options function. - -* `itemCount` - - Return total quantity of objects currently in cache. Note, that - `stale` (see options) items are returned as part of this item - count. - -* `dump()` - - Return an array of the cache entries ready for serialization and usage - with 'destinationCache.load(arr)`. - -* `load(cacheEntriesArray)` - - Loads another cache entries array, obtained with `sourceCache.dump()`, - into the cache. The destination cache is reset before loading new entries - -* `prune()` - - Manually iterates over the entire cache proactively pruning old entries diff --git a/node_modules/lru-cache/index.js b/node_modules/lru-cache/index.js deleted file mode 100644 index 573b6b85b..000000000 --- a/node_modules/lru-cache/index.js +++ /dev/null @@ -1,334 +0,0 @@ -'use strict' - -// A linked list to keep track of recently-used-ness -const Yallist = require('yallist') - -const MAX = Symbol('max') -const LENGTH = Symbol('length') -const LENGTH_CALCULATOR = Symbol('lengthCalculator') -const ALLOW_STALE = Symbol('allowStale') -const MAX_AGE = Symbol('maxAge') -const DISPOSE = Symbol('dispose') -const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet') -const LRU_LIST = Symbol('lruList') -const CACHE = Symbol('cache') -const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet') - -const naiveLength = () => 1 - -// lruList is a yallist where the head is the youngest -// item, and the tail is the oldest. the list contains the Hit -// objects as the entries. -// Each Hit object has a reference to its Yallist.Node. This -// never changes. -// -// cache is a Map (or PseudoMap) that matches the keys to -// the Yallist.Node object. -class LRUCache { - constructor (options) { - if (typeof options === 'number') - options = { max: options } - - if (!options) - options = {} - - if (options.max && (typeof options.max !== 'number' || options.max < 0)) - throw new TypeError('max must be a non-negative number') - // Kind of weird to have a default max of Infinity, but oh well. - const max = this[MAX] = options.max || Infinity - - const lc = options.length || naiveLength - this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc - this[ALLOW_STALE] = options.stale || false - if (options.maxAge && typeof options.maxAge !== 'number') - throw new TypeError('maxAge must be a number') - this[MAX_AGE] = options.maxAge || 0 - this[DISPOSE] = options.dispose - this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false - this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false - this.reset() - } - - // resize the cache when the max changes. - set max (mL) { - if (typeof mL !== 'number' || mL < 0) - throw new TypeError('max must be a non-negative number') - - this[MAX] = mL || Infinity - trim(this) - } - get max () { - return this[MAX] - } - - set allowStale (allowStale) { - this[ALLOW_STALE] = !!allowStale - } - get allowStale () { - return this[ALLOW_STALE] - } - - set maxAge (mA) { - if (typeof mA !== 'number') - throw new TypeError('maxAge must be a non-negative number') - - this[MAX_AGE] = mA - trim(this) - } - get maxAge () { - return this[MAX_AGE] - } - - // resize the cache when the lengthCalculator changes. - set lengthCalculator (lC) { - if (typeof lC !== 'function') - lC = naiveLength - - if (lC !== this[LENGTH_CALCULATOR]) { - this[LENGTH_CALCULATOR] = lC - this[LENGTH] = 0 - this[LRU_LIST].forEach(hit => { - hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key) - this[LENGTH] += hit.length - }) - } - trim(this) - } - get lengthCalculator () { return this[LENGTH_CALCULATOR] } - - get length () { return this[LENGTH] } - get itemCount () { return this[LRU_LIST].length } - - rforEach (fn, thisp) { - thisp = thisp || this - for (let walker = this[LRU_LIST].tail; walker !== null;) { - const prev = walker.prev - forEachStep(this, fn, walker, thisp) - walker = prev - } - } - - forEach (fn, thisp) { - thisp = thisp || this - for (let walker = this[LRU_LIST].head; walker !== null;) { - const next = walker.next - forEachStep(this, fn, walker, thisp) - walker = next - } - } - - keys () { - return this[LRU_LIST].toArray().map(k => k.key) - } - - values () { - return this[LRU_LIST].toArray().map(k => k.value) - } - - reset () { - if (this[DISPOSE] && - this[LRU_LIST] && - this[LRU_LIST].length) { - this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)) - } - - this[CACHE] = new Map() // hash of items by key - this[LRU_LIST] = new Yallist() // list of items in order of use recency - this[LENGTH] = 0 // length of items in the list - } - - dump () { - return this[LRU_LIST].map(hit => - isStale(this, hit) ? false : { - k: hit.key, - v: hit.value, - e: hit.now + (hit.maxAge || 0) - }).toArray().filter(h => h) - } - - dumpLru () { - return this[LRU_LIST] - } - - set (key, value, maxAge) { - maxAge = maxAge || this[MAX_AGE] - - if (maxAge && typeof maxAge !== 'number') - throw new TypeError('maxAge must be a number') - - const now = maxAge ? Date.now() : 0 - const len = this[LENGTH_CALCULATOR](value, key) - - if (this[CACHE].has(key)) { - if (len > this[MAX]) { - del(this, this[CACHE].get(key)) - return false - } - - const node = this[CACHE].get(key) - const item = node.value - - // dispose of the old one before overwriting - // split out into 2 ifs for better coverage tracking - if (this[DISPOSE]) { - if (!this[NO_DISPOSE_ON_SET]) - this[DISPOSE](key, item.value) - } - - item.now = now - item.maxAge = maxAge - item.value = value - this[LENGTH] += len - item.length - item.length = len - this.get(key) - trim(this) - return true - } - - const hit = new Entry(key, value, len, now, maxAge) - - // oversized objects fall out of cache automatically. - if (hit.length > this[MAX]) { - if (this[DISPOSE]) - this[DISPOSE](key, value) - - return false - } - - this[LENGTH] += hit.length - this[LRU_LIST].unshift(hit) - this[CACHE].set(key, this[LRU_LIST].head) - trim(this) - return true - } - - has (key) { - if (!this[CACHE].has(key)) return false - const hit = this[CACHE].get(key).value - return !isStale(this, hit) - } - - get (key) { - return get(this, key, true) - } - - peek (key) { - return get(this, key, false) - } - - pop () { - const node = this[LRU_LIST].tail - if (!node) - return null - - del(this, node) - return node.value - } - - del (key) { - del(this, this[CACHE].get(key)) - } - - load (arr) { - // reset the cache - this.reset() - - const now = Date.now() - // A previous serialized cache has the most recent items first - for (let l = arr.length - 1; l >= 0; l--) { - const hit = arr[l] - const expiresAt = hit.e || 0 - if (expiresAt === 0) - // the item was created without expiration in a non aged cache - this.set(hit.k, hit.v) - else { - const maxAge = expiresAt - now - // dont add already expired items - if (maxAge > 0) { - this.set(hit.k, hit.v, maxAge) - } - } - } - } - - prune () { - this[CACHE].forEach((value, key) => get(this, key, false)) - } -} - -const get = (self, key, doUse) => { - const node = self[CACHE].get(key) - if (node) { - const hit = node.value - if (isStale(self, hit)) { - del(self, node) - if (!self[ALLOW_STALE]) - return undefined - } else { - if (doUse) { - if (self[UPDATE_AGE_ON_GET]) - node.value.now = Date.now() - self[LRU_LIST].unshiftNode(node) - } - } - return hit.value - } -} - -const isStale = (self, hit) => { - if (!hit || (!hit.maxAge && !self[MAX_AGE])) - return false - - const diff = Date.now() - hit.now - return hit.maxAge ? diff > hit.maxAge - : self[MAX_AGE] && (diff > self[MAX_AGE]) -} - -const trim = self => { - if (self[LENGTH] > self[MAX]) { - for (let walker = self[LRU_LIST].tail; - self[LENGTH] > self[MAX] && walker !== null;) { - // We know that we're about to delete this one, and also - // what the next least recently used key will be, so just - // go ahead and set it now. - const prev = walker.prev - del(self, walker) - walker = prev - } - } -} - -const del = (self, node) => { - if (node) { - const hit = node.value - if (self[DISPOSE]) - self[DISPOSE](hit.key, hit.value) - - self[LENGTH] -= hit.length - self[CACHE].delete(hit.key) - self[LRU_LIST].removeNode(node) - } -} - -class Entry { - constructor (key, value, length, now, maxAge) { - this.key = key - this.value = value - this.length = length - this.now = now - this.maxAge = maxAge || 0 - } -} - -const forEachStep = (self, fn, node, thisp) => { - let hit = node.value - if (isStale(self, hit)) { - del(self, node) - if (!self[ALLOW_STALE]) - hit = undefined - } - if (hit) - fn.call(thisp, hit.value, hit.key, self) -} - -module.exports = LRUCache diff --git a/node_modules/lru-cache/package.json b/node_modules/lru-cache/package.json deleted file mode 100644 index 43b7502c3..000000000 --- a/node_modules/lru-cache/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "lru-cache", - "description": "A cache object that deletes the least-recently-used items.", - "version": "6.0.0", - "author": "Isaac Z. Schlueter ", - "keywords": [ - "mru", - "lru", - "cache" - ], - "scripts": { - "test": "tap", - "snap": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "prepublishOnly": "git push origin --follow-tags" - }, - "main": "index.js", - "repository": "git://github.com/isaacs/node-lru-cache.git", - "devDependencies": { - "benchmark": "^2.1.4", - "tap": "^14.10.7" - }, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "files": [ - "index.js" - ], - "engines": { - "node": ">=10" - } -} diff --git a/node_modules/semver/README.md b/node_modules/semver/README.md index 53ea9b52a..673e9c35c 100644 --- a/node_modules/semver/README.md +++ b/node_modules/semver/README.md @@ -25,7 +25,7 @@ semver.valid(semver.coerce('v2')) // '2.0.0' semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7' ``` -You can also just load the module for the function that you care about, if +You can also just load the module for the function that you care about if you'd like to minimize your footprint. ```js @@ -78,8 +78,8 @@ const semverOutside = require('semver/ranges/outside') const semverGtr = require('semver/ranges/gtr') const semverLtr = require('semver/ranges/ltr') const semverIntersects = require('semver/ranges/intersects') -const simplifyRange = require('semver/ranges/simplify') -const rangeSubset = require('semver/ranges/subset') +const semverSimplifyRange = require('semver/ranges/simplify') +const semverRangeSubset = require('semver/ranges/subset') ``` As a command-line utility: @@ -144,7 +144,7 @@ A leading `"="` or `"v"` character is stripped off and ignored. ## Ranges -A `version range` is a set of `comparators` which specify versions +A `version range` is a set of `comparators` that specify versions that satisfy the range. A `comparator` is composed of an `operator` and a `version`. The set @@ -155,7 +155,7 @@ of primitive `operators` is: * `>` Greater than * `>=` Greater than or equal to * `=` Equal. If no operator is specified, then equality is assumed, - so this operator is optional, but MAY be included. + so this operator is optional but MAY be included. For example, the comparator `>=1.2.7` would match the versions `1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` @@ -189,26 +189,26 @@ For example, the range `>1.2.3-alpha.3` would be allowed to match the version `1.2.3-alpha.7`, but it would *not* be satisfied by `3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater than" `1.2.3-alpha.3` according to the SemVer sort rules. The version -range only accepts prerelease tags on the `1.2.3` version. The -version `3.4.5` *would* satisfy the range, because it does not have a +range only accepts prerelease tags on the `1.2.3` version. +Version `3.4.5` *would* satisfy the range because it does not have a prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. -The purpose for this behavior is twofold. First, prerelease versions +The purpose of this behavior is twofold. First, prerelease versions frequently are updated very quickly, and contain many breaking changes that are (by the author's design) not yet fit for public consumption. -Therefore, by default, they are excluded from range matching +Therefore, by default, they are excluded from range-matching semantics. Second, a user who has opted into using a prerelease version has -clearly indicated the intent to use *that specific* set of +indicated the intent to use *that specific* set of alpha/beta/rc versions. By including a prerelease tag in the range, the user is indicating that they are aware of the risk. However, it is still not appropriate to assume that they have opted into taking a similar risk on the *next* set of prerelease versions. Note that this behavior can be suppressed (treating all prerelease -versions as if they were normal versions, for the purpose of range -matching) by setting the `includePrerelease` flag on the options +versions as if they were normal versions, for range-matching) +by setting the `includePrerelease` flag on the options object to any [functions](https://github.com/npm/node-semver#functions) that do range matching. @@ -401,12 +401,12 @@ All methods and classes take a final `options` object argument. All options in this object are `false` by default. The options supported are: -- `loose` Be more forgiving about not-quite-valid semver strings. +- `loose`: Be more forgiving about not-quite-valid semver strings. (Any resulting output will always be 100% strict compliant, of course.) For backwards compatibility reasons, if the `options` argument is a boolean value instead of an object, it is interpreted to be the `loose` param. -- `includePrerelease` Set to suppress the [default +- `includePrerelease`: Set to suppress the [default behavior](https://github.com/npm/node-semver#prerelease-tags) of excluding prerelease tagged versions from ranges unless they are explicitly opted into. @@ -415,16 +415,20 @@ Strict-mode Comparators and Ranges will be strict about the SemVer strings that they parse. * `valid(v)`: Return the parsed version, or null if it's not valid. -* `inc(v, release)`: Return the version incremented by the release - type (`major`, `premajor`, `minor`, `preminor`, `patch`, +* `inc(v, release, options, identifier, identifierBase)`: + Return the version incremented by the release + type (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), or null if it's not valid * `premajor` in one call will bump the version up to the next major version and down to a prerelease of that major version. `preminor`, and `prepatch` work the same way. - * If called from a non-prerelease version, the `prerelease` will work the - same as `prepatch`. It increments the patch version, then makes a + * If called from a non-prerelease version, `prerelease` will work the + same as `prepatch`. It increments the patch version and then makes a prerelease. If the input version is already a prerelease it simply increments it. + * `identifier` can be used to prefix `premajor`, `preminor`, + `prepatch`, or `prerelease` version increments. `identifierBase` + is the base to be used for the `prerelease` identifier. * `prerelease(v)`: Returns an array of prerelease components, or null if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]` * `major(v)`: Return the major version number. @@ -442,7 +446,7 @@ strings that they parse. * `lt(v1, v2)`: `v1 < v2` * `lte(v1, v2)`: `v1 <= v2` * `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent, - even if they're not the exact same string. You already know how to + even if they're not the same string. You already know how to compare strings. * `neq(v1, v2)`: `v1 != v2` The opposite of `eq`. * `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call @@ -451,15 +455,22 @@ strings that they parse. invalid comparison string is provided. * `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. -* `rcompare(v1, v2)`: The reverse of compare. Sorts an array of versions +* `rcompare(v1, v2)`: The reverse of `compare`. Sorts an array of versions in descending order when passed to `Array.sort()`. * `compareBuild(v1, v2)`: The same as `compare` but considers `build` when two versions are equal. Sorts in ascending order if passed to `Array.sort()`. - `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. -* `diff(v1, v2)`: Returns difference between two versions by the release type +* `compareLoose(v1, v2)`: Short for ``compare(v1, v2, { loose: true })`. +* `diff(v1, v2)`: Returns the difference between two versions by the release type (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), or null if the versions are the same. +### Sorting + +* `sort(versions)`: Returns a sorted array of versions based on the `compareBuild` + function. +* `rsort(versions)`: The reverse of `sort`. Returns an array of versions based on + the `compareBuild` function in descending order. + ### Comparators * `intersects(comparator)`: Return true if the comparators intersect @@ -473,19 +484,19 @@ strings that they parse. that satisfies the range, or `null` if none of them do. * `minSatisfying(versions, range)`: Return the lowest version in the list that satisfies the range, or `null` if none of them do. -* `minVersion(range)`: Return the lowest version that can possibly match +* `minVersion(range)`: Return the lowest version that can match the given range. -* `gtr(version, range)`: Return `true` if version is greater than all the +* `gtr(version, range)`: Return `true` if the version is greater than all the versions possible in the range. -* `ltr(version, range)`: Return `true` if version is less than all the +* `ltr(version, range)`: Return `true` if the version is less than all the versions possible in the range. * `outside(version, range, hilo)`: Return true if the version is outside the bounds of the range in either the high or low direction. The `hilo` argument must be either the string `'>'` or `'<'`. (This is the function called by `gtr` and `ltr`.) -* `intersects(range)`: Return true if any of the ranges comparators intersect +* `intersects(range)`: Return true if any of the range comparators intersect. * `simplifyRange(versions, range)`: Return a "simplified" range that - matches the same items in `versions` list as the range specified. Note + matches the same items in the `versions` list as the range specified. Note that it does *not* guarantee that it would match the same versions in all cases, only for the set of versions provided. This is useful when generating ranges by joining together multiple versions with `||` @@ -498,7 +509,7 @@ strings that they parse. Note that, since ranges may be non-contiguous, a version might not be greater than a range, less than a range, *or* satisfy a range! For example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` -until `2.0.0`, so the version `1.2.10` would not be greater than the +until `2.0.0`, so version `1.2.10` would not be greater than the range (because `2.0.1` satisfies, which is higher), nor less than the range (since `1.2.8` satisfies, which is lower), and it also does not satisfy the range. @@ -511,13 +522,13 @@ range, use the `satisfies(version, range)` function. * `coerce(version, options)`: Coerces a string to semver if possible This aims to provide a very forgiving translation of a non-semver string to -semver. It looks for the first digit in a string, and consumes all +semver. It looks for the first digit in a string and consumes all remaining characters which satisfy at least a partial semver (e.g., `1`, `1.2`, `1.2.3`) up to the max permitted length (256 characters). Longer versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). All surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes `3.4.0`). Only text which lacks digits will fail coercion (`version one` -is not valid). The maximum length for any semver component considered for +is not valid). The maximum length for any semver component considered for coercion is 16 characters; longer components will be ignored (`10000000000000000.4.7.4` becomes `4.7.4`). The maximum value for any semver component is `Number.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value @@ -529,6 +540,10 @@ tuple. For example, `1.2.3.4` will return `2.3.4` in rtl mode, not `4.0.0`. `1.2.3/4` will return `4.0.0`, because the `4` is not a part of any other overlapping SemVer tuple. +If the `options.includePrerelease` flag is set, then the `coerce` result will contain +prerelease and build parts of a version. For example, `1.2.3.4-rc.1+rev.2` +will preserve prerelease `rc.1` and build `rev.2` in the result. + ### Clean * `clean(version)`: Clean a string to be a valid semver if possible @@ -543,7 +558,7 @@ ex. * `s.clean(' = v 2.1.5-foo')`: `null` * `s.clean(' = v 2.1.5-foo', { loose: true })`: `'2.1.5-foo'` * `s.clean('=v2.1.5')`: `'2.1.5'` -* `s.clean(' =v2.1.5')`: `2.1.5` +* `s.clean(' =v2.1.5')`: `'2.1.5'` * `s.clean(' 2.1.5 ')`: `'2.1.5'` * `s.clean('~1.0.0')`: `null` @@ -589,7 +604,7 @@ eg), and then pull the module name into the documentation for that specific thing. --> -You may pull in just the part of this semver utility that you need, if you +You may pull in just the part of this semver utility that you need if you are sensitive to packing and tree-shaking concerns. The main `require('semver')` export uses getter functions to lazily load the parts of the API that are used. @@ -632,6 +647,8 @@ The following modules are available: * `require('semver/ranges/min-satisfying')` * `require('semver/ranges/min-version')` * `require('semver/ranges/outside')` +* `require('semver/ranges/simplify')` +* `require('semver/ranges/subset')` * `require('semver/ranges/to-comparators')` * `require('semver/ranges/valid')` diff --git a/node_modules/semver/bin/semver.js b/node_modules/semver/bin/semver.js index 242b7ade7..f62b566f7 100755 --- a/node_modules/semver/bin/semver.js +++ b/node_modules/semver/bin/semver.js @@ -119,7 +119,11 @@ const main = () => { return fail() } } - return success(versions) + versions + .sort((a, b) => semver[reverse ? 'rcompare' : 'compare'](a, b, options)) + .map(v => semver.clean(v, options)) + .map(v => inc ? semver.inc(v, inc, options, identifier, identifierBase) : v) + .forEach(v => console.log(v)) } const failInc = () => { @@ -129,19 +133,6 @@ const failInc = () => { const fail = () => process.exit(1) -const success = () => { - const compare = reverse ? 'rcompare' : 'compare' - versions.sort((a, b) => { - return semver[compare](a, b, options) - }).map((v) => { - return semver.clean(v, options) - }).map((v) => { - return inc ? semver.inc(v, inc, options, identifier, identifierBase) : v - }).forEach((v, i, _) => { - console.log(v) - }) -} - const help = () => console.log( `SemVer ${version} diff --git a/node_modules/semver/classes/range.js b/node_modules/semver/classes/range.js index 7e7c41410..117b45a2b 100644 --- a/node_modules/semver/classes/range.js +++ b/node_modules/semver/classes/range.js @@ -198,8 +198,8 @@ class Range { module.exports = Range -const LRU = require('lru-cache') -const cache = new LRU({ max: 1000 }) +const LRU = require('../internal/lrucache') +const cache = new LRU() const parseOptions = require('../internal/parse-options') const Comparator = require('./comparator') @@ -470,9 +470,10 @@ const replaceGTE0 = (comp, options) => { // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 // 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do // 1.2 - 3.4 => >=1.2.0 <3.5.0-0 +// TODO build? const hyphenReplace = incPr => ($0, from, fM, fm, fp, fpr, fb, - to, tM, tm, tp, tpr, tb) => { + to, tM, tm, tp, tpr) => { if (isX(fM)) { from = '' } else if (isX(fm)) { diff --git a/node_modules/semver/classes/semver.js b/node_modules/semver/classes/semver.js index 84e84590e..13e66ce44 100644 --- a/node_modules/semver/classes/semver.js +++ b/node_modules/semver/classes/semver.js @@ -158,7 +158,7 @@ class SemVer { do { const a = this.build[i] const b = other.build[i] - debug('prerelease compare', i, a, b) + debug('build compare', i, a, b) if (a === undefined && b === undefined) { return 0 } else if (b === undefined) { diff --git a/node_modules/semver/functions/coerce.js b/node_modules/semver/functions/coerce.js index febbff9c2..b378dcea4 100644 --- a/node_modules/semver/functions/coerce.js +++ b/node_modules/semver/functions/coerce.js @@ -19,34 +19,42 @@ const coerce = (version, options) => { let match = null if (!options.rtl) { - match = version.match(re[t.COERCE]) + match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]) } else { // Find the right-most coercible string that does not share // a terminus with a more left-ward coercible string. // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4' // // Walk through the string checking with a /g regexp // Manually set the index so as to pick up overlapping matches. // Stop when we get a match that ends at the string end, since no // coercible string can be more right-ward without the same terminus. + const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL] let next - while ((next = re[t.COERCERTL].exec(version)) && + while ((next = coerceRtlRegex.exec(version)) && (!match || match.index + match[0].length !== version.length) ) { if (!match || next.index + next[0].length !== match.index + match[0].length) { match = next } - re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length + coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length } // leave it in a clean state - re[t.COERCERTL].lastIndex = -1 + coerceRtlRegex.lastIndex = -1 } if (match === null) { return null } - return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options) + const major = match[2] + const minor = match[3] || '0' + const patch = match[4] || '0' + const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : '' + const build = options.includePrerelease && match[6] ? `+${match[6]}` : '' + + return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options) } module.exports = coerce diff --git a/node_modules/semver/internal/lrucache.js b/node_modules/semver/internal/lrucache.js new file mode 100644 index 000000000..6d89ec948 --- /dev/null +++ b/node_modules/semver/internal/lrucache.js @@ -0,0 +1,40 @@ +class LRUCache { + constructor () { + this.max = 1000 + this.map = new Map() + } + + get (key) { + const value = this.map.get(key) + if (value === undefined) { + return undefined + } else { + // Remove the key from the map and add it to the end + this.map.delete(key) + this.map.set(key, value) + return value + } + } + + delete (key) { + return this.map.delete(key) + } + + set (key, value) { + const deleted = this.delete(key) + + if (!deleted && value !== undefined) { + // If cache is full, delete the least recently used item + if (this.map.size >= this.max) { + const firstKey = this.map.keys().next().value + this.delete(firstKey) + } + + this.map.set(key, value) + } + + return this + } +} + +module.exports = LRUCache diff --git a/node_modules/semver/internal/re.js b/node_modules/semver/internal/re.js index 21150b3ec..fd8920e7b 100644 --- a/node_modules/semver/internal/re.js +++ b/node_modules/semver/internal/re.js @@ -154,12 +154,17 @@ createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`) // Coercion. // Extract anything that could conceivably be a part of a valid semver -createToken('COERCE', `${'(^|[^\\d])' + +createToken('COERCEPLAIN', `${'(^|[^\\d])' + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + - `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`) +createToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\d])`) +createToken('COERCEFULL', src[t.COERCEPLAIN] + + `(?:${src[t.PRERELEASE]})?` + + `(?:${src[t.BUILD]})?` + `(?:$|[^\\d])`) createToken('COERCERTL', src[t.COERCE], true) +createToken('COERCERTLFULL', src[t.COERCEFULL], true) // Tilde ranges. // Meaning is "reasonably at or greater than" diff --git a/node_modules/semver/package.json b/node_modules/semver/package.json index c145eca2f..cb8def451 100644 --- a/node_modules/semver/package.json +++ b/node_modules/semver/package.json @@ -1,12 +1,12 @@ { "name": "semver", - "version": "7.5.4", + "version": "7.6.2", "description": "The semantic version parser used by npm.", "main": "index.js", "scripts": { "test": "tap", "snap": "tap", - "lint": "eslint \"**/*.js\"", + "lint": "eslint \"**/*.{js,cjs,ts,mjs,jsx,tsx}\"", "postlint": "template-oss-check", "lintfix": "npm run lint -- --fix", "posttest": "npm run lint", @@ -14,13 +14,14 @@ }, "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.17.0", + "@npmcli/template-oss": "4.22.0", + "benchmark": "^2.1.4", "tap": "^16.0.0" }, "license": "ISC", "repository": { "type": "git", - "url": "https://github.com/npm/node-semver.git" + "url": "git+https://github.com/npm/node-semver.git" }, "bin": { "semver": "bin/semver.js" @@ -47,23 +48,11 @@ "engines": { "node": ">=10" }, - "dependencies": { - "lru-cache": "^6.0.0" - }, "author": "GitHub Inc.", "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.17.0", + "version": "4.22.0", "engines": ">=10", - "ciVersions": [ - "10.0.0", - "10.x", - "12.x", - "14.x", - "16.x", - "18.x" - ], - "npmSpec": "8", "distPaths": [ "classes/", "functions/", @@ -80,7 +69,8 @@ "/ranges/", "/index.js", "/preload.js", - "/range.bnf" + "/range.bnf", + "/benchmarks" ], "publish": "true" } diff --git a/node_modules/yallist/LICENSE b/node_modules/yallist/LICENSE deleted file mode 100644 index 19129e315..000000000 --- a/node_modules/yallist/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -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. - -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. diff --git a/node_modules/yallist/README.md b/node_modules/yallist/README.md deleted file mode 100644 index f58610186..000000000 --- a/node_modules/yallist/README.md +++ /dev/null @@ -1,204 +0,0 @@ -# yallist - -Yet Another Linked List - -There are many doubly-linked list implementations like it, but this -one is mine. - -For when an array would be too big, and a Map can't be iterated in -reverse order. - - -[![Build Status](https://travis-ci.org/isaacs/yallist.svg?branch=master)](https://travis-ci.org/isaacs/yallist) [![Coverage Status](https://coveralls.io/repos/isaacs/yallist/badge.svg?service=github)](https://coveralls.io/github/isaacs/yallist) - -## basic usage - -```javascript -var yallist = require('yallist') -var myList = yallist.create([1, 2, 3]) -myList.push('foo') -myList.unshift('bar') -// of course pop() and shift() are there, too -console.log(myList.toArray()) // ['bar', 1, 2, 3, 'foo'] -myList.forEach(function (k) { - // walk the list head to tail -}) -myList.forEachReverse(function (k, index, list) { - // walk the list tail to head -}) -var myDoubledList = myList.map(function (k) { - return k + k -}) -// now myDoubledList contains ['barbar', 2, 4, 6, 'foofoo'] -// mapReverse is also a thing -var myDoubledListReverse = myList.mapReverse(function (k) { - return k + k -}) // ['foofoo', 6, 4, 2, 'barbar'] - -var reduced = myList.reduce(function (set, entry) { - set += entry - return set -}, 'start') -console.log(reduced) // 'startfoo123bar' -``` - -## api - -The whole API is considered "public". - -Functions with the same name as an Array method work more or less the -same way. - -There's reverse versions of most things because that's the point. - -### Yallist - -Default export, the class that holds and manages a list. - -Call it with either a forEach-able (like an array) or a set of -arguments, to initialize the list. - -The Array-ish methods all act like you'd expect. No magic length, -though, so if you change that it won't automatically prune or add -empty spots. - -### Yallist.create(..) - -Alias for Yallist function. Some people like factories. - -#### yallist.head - -The first node in the list - -#### yallist.tail - -The last node in the list - -#### yallist.length - -The number of nodes in the list. (Change this at your peril. It is -not magic like Array length.) - -#### yallist.toArray() - -Convert the list to an array. - -#### yallist.forEach(fn, [thisp]) - -Call a function on each item in the list. - -#### yallist.forEachReverse(fn, [thisp]) - -Call a function on each item in the list, in reverse order. - -#### yallist.get(n) - -Get the data at position `n` in the list. If you use this a lot, -probably better off just using an Array. - -#### yallist.getReverse(n) - -Get the data at position `n`, counting from the tail. - -#### yallist.map(fn, thisp) - -Create a new Yallist with the result of calling the function on each -item. - -#### yallist.mapReverse(fn, thisp) - -Same as `map`, but in reverse. - -#### yallist.pop() - -Get the data from the list tail, and remove the tail from the list. - -#### yallist.push(item, ...) - -Insert one or more items to the tail of the list. - -#### yallist.reduce(fn, initialValue) - -Like Array.reduce. - -#### yallist.reduceReverse - -Like Array.reduce, but in reverse. - -#### yallist.reverse - -Reverse the list in place. - -#### yallist.shift() - -Get the data from the list head, and remove the head from the list. - -#### yallist.slice([from], [to]) - -Just like Array.slice, but returns a new Yallist. - -#### yallist.sliceReverse([from], [to]) - -Just like yallist.slice, but the result is returned in reverse. - -#### yallist.toArray() - -Create an array representation of the list. - -#### yallist.toArrayReverse() - -Create a reversed array representation of the list. - -#### yallist.unshift(item, ...) - -Insert one or more items to the head of the list. - -#### yallist.unshiftNode(node) - -Move a Node object to the front of the list. (That is, pull it out of -wherever it lives, and make it the new head.) - -If the node belongs to a different list, then that list will remove it -first. - -#### yallist.pushNode(node) - -Move a Node object to the end of the list. (That is, pull it out of -wherever it lives, and make it the new tail.) - -If the node belongs to a list already, then that list will remove it -first. - -#### yallist.removeNode(node) - -Remove a node from the list, preserving referential integrity of head -and tail and other nodes. - -Will throw an error if you try to have a list remove a node that -doesn't belong to it. - -### Yallist.Node - -The class that holds the data and is actually the list. - -Call with `var n = new Node(value, previousNode, nextNode)` - -Note that if you do direct operations on Nodes themselves, it's very -easy to get into weird states where the list is broken. Be careful :) - -#### node.next - -The next node in the list. - -#### node.prev - -The previous node in the list. - -#### node.value - -The data the node contains. - -#### node.list - -The list to which this node belongs. (Null if it does not belong to -any list.) diff --git a/node_modules/yallist/iterator.js b/node_modules/yallist/iterator.js deleted file mode 100644 index d41c97a19..000000000 --- a/node_modules/yallist/iterator.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -module.exports = function (Yallist) { - Yallist.prototype[Symbol.iterator] = function* () { - for (let walker = this.head; walker; walker = walker.next) { - yield walker.value - } - } -} diff --git a/node_modules/yallist/package.json b/node_modules/yallist/package.json deleted file mode 100644 index 8a083867d..000000000 --- a/node_modules/yallist/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "yallist", - "version": "4.0.0", - "description": "Yet Another Linked List", - "main": "yallist.js", - "directories": { - "test": "test" - }, - "files": [ - "yallist.js", - "iterator.js" - ], - "dependencies": {}, - "devDependencies": { - "tap": "^12.1.0" - }, - "scripts": { - "test": "tap test/*.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/yallist.git" - }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC" -} diff --git a/node_modules/yallist/yallist.js b/node_modules/yallist/yallist.js deleted file mode 100644 index 4e83ab1c5..000000000 --- a/node_modules/yallist/yallist.js +++ /dev/null @@ -1,426 +0,0 @@ -'use strict' -module.exports = Yallist - -Yallist.Node = Node -Yallist.create = Yallist - -function Yallist (list) { - var self = this - if (!(self instanceof Yallist)) { - self = new Yallist() - } - - self.tail = null - self.head = null - self.length = 0 - - if (list && typeof list.forEach === 'function') { - list.forEach(function (item) { - self.push(item) - }) - } else if (arguments.length > 0) { - for (var i = 0, l = arguments.length; i < l; i++) { - self.push(arguments[i]) - } - } - - return self -} - -Yallist.prototype.removeNode = function (node) { - if (node.list !== this) { - throw new Error('removing node which does not belong to this list') - } - - var next = node.next - var prev = node.prev - - if (next) { - next.prev = prev - } - - if (prev) { - prev.next = next - } - - if (node === this.head) { - this.head = next - } - if (node === this.tail) { - this.tail = prev - } - - node.list.length-- - node.next = null - node.prev = null - node.list = null - - return next -} - -Yallist.prototype.unshiftNode = function (node) { - if (node === this.head) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var head = this.head - node.list = this - node.next = head - if (head) { - head.prev = node - } - - this.head = node - if (!this.tail) { - this.tail = node - } - this.length++ -} - -Yallist.prototype.pushNode = function (node) { - if (node === this.tail) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var tail = this.tail - node.list = this - node.prev = tail - if (tail) { - tail.next = node - } - - this.tail = node - if (!this.head) { - this.head = node - } - this.length++ -} - -Yallist.prototype.push = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - push(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.unshift = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - unshift(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.pop = function () { - if (!this.tail) { - return undefined - } - - var res = this.tail.value - this.tail = this.tail.prev - if (this.tail) { - this.tail.next = null - } else { - this.head = null - } - this.length-- - return res -} - -Yallist.prototype.shift = function () { - if (!this.head) { - return undefined - } - - var res = this.head.value - this.head = this.head.next - if (this.head) { - this.head.prev = null - } else { - this.tail = null - } - this.length-- - return res -} - -Yallist.prototype.forEach = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.head, i = 0; walker !== null; i++) { - fn.call(thisp, walker.value, i, this) - walker = walker.next - } -} - -Yallist.prototype.forEachReverse = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { - fn.call(thisp, walker.value, i, this) - walker = walker.prev - } -} - -Yallist.prototype.get = function (n) { - for (var i = 0, walker = this.head; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.next - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.getReverse = function (n) { - for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.prev - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.map = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.head; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.next - } - return res -} - -Yallist.prototype.mapReverse = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.tail; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.prev - } - return res -} - -Yallist.prototype.reduce = function (fn, initial) { - var acc - var walker = this.head - if (arguments.length > 1) { - acc = initial - } else if (this.head) { - walker = this.head.next - acc = this.head.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = 0; walker !== null; i++) { - acc = fn(acc, walker.value, i) - walker = walker.next - } - - return acc -} - -Yallist.prototype.reduceReverse = function (fn, initial) { - var acc - var walker = this.tail - if (arguments.length > 1) { - acc = initial - } else if (this.tail) { - walker = this.tail.prev - acc = this.tail.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = this.length - 1; walker !== null; i--) { - acc = fn(acc, walker.value, i) - walker = walker.prev - } - - return acc -} - -Yallist.prototype.toArray = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.head; walker !== null; i++) { - arr[i] = walker.value - walker = walker.next - } - return arr -} - -Yallist.prototype.toArrayReverse = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.tail; walker !== null; i++) { - arr[i] = walker.value - walker = walker.prev - } - return arr -} - -Yallist.prototype.slice = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = 0, walker = this.head; walker !== null && i < from; i++) { - walker = walker.next - } - for (; walker !== null && i < to; i++, walker = walker.next) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.sliceReverse = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { - walker = walker.prev - } - for (; walker !== null && i > from; i--, walker = walker.prev) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.splice = function (start, deleteCount, ...nodes) { - if (start > this.length) { - start = this.length - 1 - } - if (start < 0) { - start = this.length + start; - } - - for (var i = 0, walker = this.head; walker !== null && i < start; i++) { - walker = walker.next - } - - var ret = [] - for (var i = 0; walker && i < deleteCount; i++) { - ret.push(walker.value) - walker = this.removeNode(walker) - } - if (walker === null) { - walker = this.tail - } - - if (walker !== this.head && walker !== this.tail) { - walker = walker.prev - } - - for (var i = 0; i < nodes.length; i++) { - walker = insert(this, walker, nodes[i]) - } - return ret; -} - -Yallist.prototype.reverse = function () { - var head = this.head - var tail = this.tail - for (var walker = head; walker !== null; walker = walker.prev) { - var p = walker.prev - walker.prev = walker.next - walker.next = p - } - this.head = tail - this.tail = head - return this -} - -function insert (self, node, value) { - var inserted = node === self.head ? - new Node(value, null, node, self) : - new Node(value, node, node.next, self) - - if (inserted.next === null) { - self.tail = inserted - } - if (inserted.prev === null) { - self.head = inserted - } - - self.length++ - - return inserted -} - -function push (self, item) { - self.tail = new Node(item, self.tail, null, self) - if (!self.head) { - self.head = self.tail - } - self.length++ -} - -function unshift (self, item) { - self.head = new Node(item, null, self.head, self) - if (!self.tail) { - self.tail = self.head - } - self.length++ -} - -function Node (value, prev, next, list) { - if (!(this instanceof Node)) { - return new Node(value, prev, next, list) - } - - this.list = list - this.value = value - - if (prev) { - prev.next = this - this.prev = prev - } else { - this.prev = null - } - - if (next) { - next.prev = this - this.next = next - } else { - this.next = null - } -} - -try { - // add if support for Symbol.iterator is present - require('./iterator.js')(Yallist) -} catch (er) {} diff --git a/package-lock.json b/package-lock.json index 5e030788b..41c10b7a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,24 +10,24 @@ "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@actions/core": "~1.10.0", + "@actions/core": "~1.10.1", "@actions/exec": "~1.1.1", - "@actions/http-client": "~2.2.0", + "@actions/http-client": "~2.2.1", "@actions/tool-cache": "~2.0.1", - "semver": "~7.5.4" + "semver": "~7.6.2" }, "devDependencies": { - "@types/jest": "^29.5.3", - "@types/semver": "^7.5.0", - "@typescript-eslint/eslint-plugin": "^6.1.0", - "@typescript-eslint/parser": "^6.2.0", - "eslint": "^8.46.0", - "eslint-config-prettier": "^8.9.0", + "@types/jest": "^29.5.12", + "@types/semver": "^7.5.8", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^8.10.0", "husky": "^8.0.3", - "jest": "^29.6.1", - "prettier": "^3.0.0", - "ts-jest": "^29.1.1", - "typescript": "^5.1.6" + "jest": "^29.7.0", + "prettier": "^3.3.2", + "ts-jest": "^29.1.4", + "typescript": "^5.4.5" }, "engines": { "node": ">=20.0.0", @@ -43,8 +43,9 @@ } }, "node_modules/@actions/core": { - "version": "1.10.0", - "license": "MIT", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", + "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", "dependencies": { "@actions/http-client": "^2.0.1", "uuid": "^8.3.2" @@ -65,9 +66,9 @@ } }, "node_modules/@actions/http-client": { - "version": "2.2.0", - "resolved": "https://entplus.jfrog.io/artifactory/api/npm/bapps-npm-virtual/@actions/http-client/-/http-client-2.2.0.tgz", - "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.1.tgz", + "integrity": "sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==", "dependencies": { "tunnel": "^0.0.6", "undici": "^5.25.4" @@ -109,116 +110,47 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/compat-data": { - "version": "7.22.9", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.9", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", "dev": true, - "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.9", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.6", - "@babel/parser": "^7.22.7", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.8", - "@babel/types": "^7.22.5", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", + "json5": "^2.2.3", "semver": "^6.3.1" }, "engines": { @@ -229,11 +161,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "dev": true, @@ -243,14 +170,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", "dev": true, "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -258,98 +185,91 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.9", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.9", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -359,83 +279,89 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.22.6", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.6", - "@babel/types": "^7.22.5" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -513,9 +439,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -580,11 +506,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -674,11 +601,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -688,33 +616,33 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -724,20 +652,21 @@ }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -746,8 +675,9 @@ }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", @@ -772,9 +702,10 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.1", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -794,9 +725,10 @@ } }, "node_modules/@eslint/js": { - "version": "8.46.0", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, - "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -810,12 +742,14 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -835,9 +769,11 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "dev": true, - "license": "BSD-3-Clause" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -939,15 +875,16 @@ } }, "node_modules/@jest/console": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.6.1", - "jest-util": "^29.6.1", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -955,36 +892,37 @@ } }, "node_modules/@jest/core": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/console": "^29.6.1", - "@jest/reporters": "^29.6.1", - "@jest/test-result": "^29.6.1", - "@jest/transform": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.6.1", - "jest-haste-map": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.1", - "jest-resolve-dependencies": "^29.6.1", - "jest-runner": "^29.6.1", - "jest-runtime": "^29.6.1", - "jest-snapshot": "^29.6.1", - "jest-util": "^29.6.1", - "jest-validate": "^29.6.1", - "jest-watcher": "^29.6.1", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.6.1", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -1001,82 +939,88 @@ } }, "node_modules/@jest/environment": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/fake-timers": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.1" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, - "license": "MIT", "dependencies": { - "expect": "^29.6.1", - "jest-snapshot": "^29.6.1" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, - "license": "MIT", "dependencies": { - "jest-get-type": "^29.4.3" + "jest-get-type": "^29.6.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.6.1", - "jest-mock": "^29.6.1", - "jest-util": "^29.6.1" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/environment": "^29.6.1", - "@jest/expect": "^29.6.1", - "@jest/types": "^29.6.1", - "jest-mock": "^29.6.1" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, - "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.6.1", - "@jest/test-result": "^29.6.1", - "@jest/transform": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", @@ -1085,13 +1029,13 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.6.1", - "jest-util": "^29.6.1", - "jest-worker": "^29.6.1", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -1109,10 +1053,27 @@ } } }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@jest/schemas": { - "version": "29.6.0", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, - "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -1121,9 +1082,10 @@ } }, "node_modules/@jest/source-map": { - "version": "29.6.0", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -1134,12 +1096,13 @@ } }, "node_modules/@jest/test-result": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/console": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -1148,13 +1111,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/test-result": "^29.6.1", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.1", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -1162,21 +1126,22 @@ } }, "node_modules/@jest/transform": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.1", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.1", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -1187,11 +1152,12 @@ } }, "node_modules/@jest/types": { - "version": "29.6.1", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.0", + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -1203,13 +1169,14 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -1224,9 +1191,10 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -1237,19 +1205,15 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "dev": true, - "license": "MIT" - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "dev": true, @@ -1284,29 +1248,33 @@ }, "node_modules/@sinclair/typebox": { "version": "0.27.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true }, "node_modules/@sinonjs/commons": { - "version": "3.0.0", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "node_modules/@types/babel__core": { - "version": "7.20.1", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -1316,34 +1284,38 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.4", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.1", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__traverse": { - "version": "7.20.1", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/graceful-fs": { - "version": "4.1.6", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } @@ -1370,33 +1342,31 @@ } }, "node_modules/@types/jest": { - "version": "29.5.3", + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", "dev": true, - "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" } }, "node_modules/@types/json-schema": { - "version": "7.0.12", - "dev": true, - "license": "MIT" + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true }, "node_modules/@types/node": { "version": "20.4.2", "dev": true, "license": "MIT" }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "dev": true, - "license": "MIT" - }, "node_modules/@types/semver": { - "version": "7.5.0", - "dev": true, - "license": "MIT" + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true }, "node_modules/@types/stack-utils": { "version": "2.0.1", @@ -1417,20 +1387,20 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.1.0", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.1.0", - "@typescript-eslint/type-utils": "6.1.0", - "@typescript-eslint/utils": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", "natural-compare": "^1.4.0", - "natural-compare-lite": "^1.4.0", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, @@ -1452,14 +1422,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.2.1", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/typescript-estree": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4" }, "engines": { @@ -1478,13 +1449,14 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "6.2.1", + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1494,29 +1466,15 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "6.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.2.1", + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, "engines": { @@ -1526,36 +1484,20 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.2.1", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.1.0", + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0" - }, "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -1564,14 +1506,19 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.1.0", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "6.1.0", - "@typescript-eslint/utils": "6.1.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, "engines": { @@ -1581,64 +1528,48 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, - "node_modules/@typescript-eslint/types": { - "version": "6.1.0", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.1.0", + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=16 || 14 >=14.17" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@typescript-eslint/utils": { - "version": "6.1.0", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.1.0", - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/typescript-estree": "6.1.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", "semver": "^7.5.4" }, "engines": { @@ -1653,11 +1584,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.1.0", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.1.0", + "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1668,10 +1600,17 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/acorn": { - "version": "8.10.0", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1681,16 +1620,18 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1704,8 +1645,9 @@ }, "node_modules/ansi-escapes": { "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -1718,8 +1660,9 @@ }, "node_modules/ansi-escapes/node_modules/type-fest": { "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -1751,8 +1694,9 @@ }, "node_modules/anymatch": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1763,26 +1707,29 @@ }, "node_modules/argparse": { "version": "2.0.1", - "dev": true, - "license": "Python-2.0" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/array-union": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/babel-jest": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/transform": "^29.6.1", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", + "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -1810,9 +1757,10 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "29.5.0", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -1846,11 +1794,12 @@ } }, "node_modules/babel-preset-jest": { - "version": "29.5.0", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, - "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "^29.5.0", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { @@ -1875,18 +1824,21 @@ } }, "node_modules/braces": { - "version": "3.0.2", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, - "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, "node_modules/browserslist": { - "version": "4.21.9", + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", "dev": true, "funding": [ { @@ -1902,12 +1854,11 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" }, "bin": { "browserslist": "cli.js" @@ -1929,21 +1880,24 @@ }, "node_modules/bser": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } }, "node_modules/buffer-from": { "version": "1.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, "node_modules/callsites": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -1957,7 +1911,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001517", + "version": "1.0.30001634", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001634.tgz", + "integrity": "sha512-fbBYXQ9q3+yp1q1gBk86tOFs4pyn/yxFm5ZNP18OXJDfA3txImOY9PhfxVggZ4vRHDqoU8NrKU81eN0OtzOgRA==", "dev": true, "funding": [ { @@ -1972,8 +1928,7 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/chalk": { "version": "4.1.2", @@ -1992,8 +1947,9 @@ }, "node_modules/char-regex": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } @@ -2013,14 +1969,16 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "dev": true, - "license": "MIT" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true }, "node_modules/cliui": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -2032,8 +1990,9 @@ }, "node_modules/co": { "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, - "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -2041,8 +2000,9 @@ }, "node_modules/collect-v8-coverage": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true }, "node_modules/color-convert": { "version": "2.0.1", @@ -2070,6 +2030,27 @@ "dev": true, "license": "MIT" }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "dev": true, @@ -2100,9 +2081,18 @@ } }, "node_modules/dedent": { - "version": "0.7.0", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, - "license": "MIT" + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } }, "node_modules/deep-is": { "version": "0.1.4", @@ -2111,32 +2101,36 @@ }, "node_modules/deepmerge": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/detect-newline": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/diff-sequences": { - "version": "29.4.3", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/dir-glob": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -2156,14 +2150,16 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.464", - "dev": true, - "license": "ISC" + "version": "1.4.803", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz", + "integrity": "sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g==", + "dev": true }, "node_modules/emittery": { "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -2173,21 +2169,24 @@ }, "node_modules/emoji-regex": { "version": "8.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/error-ex": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/escalade": { - "version": "3.1.1", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -2204,17 +2203,19 @@ } }, "node_modules/eslint": { - "version": "8.46.0", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.1", - "@eslint/js": "^8.46.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -2222,7 +2223,7 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.2", + "eslint-visitor-keys": "^3.4.3", "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", @@ -2257,9 +2258,10 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.9.0", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", "dev": true, - "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -2283,9 +2285,10 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.2", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -2295,8 +2298,9 @@ }, "node_modules/espree": { "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -2361,8 +2365,9 @@ }, "node_modules/execa": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -2383,22 +2388,24 @@ }, "node_modules/exit": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/expect": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/expect-utils": "^29.6.1", - "@types/node": "*", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-util": "^29.6.1" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -2406,13 +2413,15 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-glob": { - "version": "3.3.0", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2426,8 +2435,9 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2455,8 +2465,9 @@ }, "node_modules/fb-watchman": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } @@ -2473,9 +2484,10 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, - "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2521,9 +2533,11 @@ "license": "ISC" }, "node_modules/fsevents": { - "version": "2.3.2", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "license": "MIT", + "hasInstallScript": true, "optional": true, "os": [ "darwin" @@ -2533,9 +2547,13 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "license": "MIT" + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/gensync": { "version": "1.0.0-beta.2", @@ -2547,8 +2565,9 @@ }, "node_modules/get-caller-file": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -2563,8 +2582,9 @@ }, "node_modules/get-stream": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -2603,9 +2623,10 @@ } }, "node_modules/globals": { - "version": "13.20.0", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -2618,8 +2639,9 @@ }, "node_modules/globby": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -2645,34 +2667,37 @@ "dev": true, "license": "MIT" }, - "node_modules/has": { - "version": "1.0.3", + "node_modules/has-flag": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, "engines": { - "node": ">= 0.4.0" + "node": ">=8" } }, - "node_modules/has-flag": { - "version": "4.0.0", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, "node_modules/html-escaper": { "version": "2.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true }, "node_modules/human-signals": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } @@ -2701,8 +2726,9 @@ }, "node_modules/import-fresh": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -2716,8 +2742,9 @@ }, "node_modules/import-local": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, - "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -2756,15 +2783,17 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true }, "node_modules/is-core-module": { - "version": "2.12.1", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, - "license": "MIT", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2780,16 +2809,18 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-generator-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -2807,8 +2838,9 @@ }, "node_modules/is-number": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -2823,8 +2855,9 @@ }, "node_modules/is-stream": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -2869,22 +2902,24 @@ } }, "node_modules/istanbul-lib-report": { - "version": "3.0.0", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -2895,9 +2930,10 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.5", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -2907,14 +2943,15 @@ } }, "node_modules/jest": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/core": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.6.1" + "jest-cli": "^29.7.0" }, "bin": { "jest": "bin/jest.js" @@ -2932,11 +2969,13 @@ } }, "node_modules/jest-changed-files": { - "version": "29.5.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, - "license": "MIT", "dependencies": { "execa": "^5.0.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "engines": { @@ -2944,27 +2983,28 @@ } }, "node_modules/jest-circus": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/environment": "^29.6.1", - "@jest/expect": "^29.6.1", - "@jest/test-result": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.6.1", - "jest-matcher-utils": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-runtime": "^29.6.1", - "jest-snapshot": "^29.6.1", - "jest-util": "^29.6.1", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.6.1", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -2974,21 +3014,21 @@ } }, "node_modules/jest-cli": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/core": "^29.6.1", - "@jest/test-result": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.6.1", - "jest-util": "^29.6.1", - "jest-validate": "^29.6.1", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "bin": { @@ -3007,30 +3047,31 @@ } }, "node_modules/jest-config": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.6.1", - "@jest/types": "^29.6.1", - "babel-jest": "^29.6.1", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.6.1", - "jest-environment-node": "^29.6.1", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.1", - "jest-runner": "^29.6.1", - "jest-util": "^29.6.1", - "jest-validate": "^29.6.1", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.6.1", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -3051,23 +3092,25 @@ } }, "node_modules/jest-diff": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.1" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-docblock": { - "version": "29.4.3", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, - "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" }, @@ -3076,58 +3119,62 @@ } }, "node_modules/jest-each": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.6.1", - "pretty-format": "^29.6.1" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-environment-node": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/environment": "^29.6.1", - "@jest/fake-timers": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.1", - "jest-util": "^29.6.1" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-get-type": { - "version": "29.4.3", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, - "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.1", - "jest-worker": "^29.6.1", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -3139,43 +3186,46 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, - "license": "MIT", "dependencies": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.1" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.6.1", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.1" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-message-util": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.6.1", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -3184,13 +3234,14 @@ } }, "node_modules/jest-mock": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.6.1" + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -3198,8 +3249,9 @@ }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" }, @@ -3213,24 +3265,26 @@ } }, "node_modules/jest-regex-util": { - "version": "29.4.3", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, - "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.1", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.6.1", - "jest-validate": "^29.6.1", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -3240,41 +3294,43 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, - "license": "MIT", "dependencies": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.6.1" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-runner": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/console": "^29.6.1", - "@jest/environment": "^29.6.1", - "@jest/test-result": "^29.6.1", - "@jest/transform": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.6.1", - "jest-haste-map": "^29.6.1", - "jest-leak-detector": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-resolve": "^29.6.1", - "jest-runtime": "^29.6.1", - "jest-util": "^29.6.1", - "jest-watcher": "^29.6.1", - "jest-worker": "^29.6.1", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -3283,30 +3339,31 @@ } }, "node_modules/jest-runtime": { - "version": "29.6.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.6.1", - "@jest/fake-timers": "^29.6.1", - "@jest/globals": "^29.6.1", - "@jest/source-map": "^29.6.0", - "@jest/test-result": "^29.6.1", - "@jest/transform": "^29.6.1", - "@jest/types": "^29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-mock": "^29.6.1", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.1", - "jest-snapshot": "^29.6.1", - "jest-util": "^29.6.1", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -3315,30 +3372,30 @@ } }, "node_modules/jest-snapshot": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.6.1", - "@jest/transform": "^29.6.1", - "@jest/types": "^29.6.1", - "@types/prettier": "^2.1.5", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.6.1", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.6.1", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-util": "^29.6.1", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.6.1", + "pretty-format": "^29.7.0", "semver": "^7.5.3" }, "engines": { @@ -3346,11 +3403,12 @@ } }, "node_modules/jest-util": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -3362,16 +3420,17 @@ } }, "node_modules/jest-validate": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", + "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.6.1" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -3379,8 +3438,9 @@ }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -3389,17 +3449,18 @@ } }, "node_modules/jest-watcher": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/test-result": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.6.1", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "engines": { @@ -3407,12 +3468,13 @@ } }, "node_modules/jest-worker": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", - "jest-util": "^29.6.1", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -3422,8 +3484,9 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3442,8 +3505,9 @@ }, "node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -3464,13 +3528,15 @@ }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -3490,16 +3556,18 @@ }, "node_modules/kleur": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/leven": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -3518,8 +3586,9 @@ }, "node_modules/lines-and-columns": { "version": "1.2.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true }, "node_modules/locate-path": { "version": "6.0.0", @@ -3546,37 +3615,29 @@ "license": "MIT" }, "node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "yallist": "^3.0.2" } }, "node_modules/make-dir": { - "version": "3.1.0", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, - "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/make-error": { "version": "1.3.6", "dev": true, @@ -3584,21 +3645,24 @@ }, "node_modules/makeerror": { "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } }, "node_modules/merge-stream": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "node_modules/merge2": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } @@ -3617,8 +3681,9 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -3644,33 +3709,32 @@ "dev": true, "license": "MIT" }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, "node_modules/node-int64": { "version": "0.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true }, "node_modules/node-releases": { - "version": "2.0.13", - "dev": true, - "license": "MIT" + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true }, "node_modules/normalize-path": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/npm-run-path": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -3688,8 +3752,9 @@ }, "node_modules/onetime": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -3754,8 +3819,9 @@ }, "node_modules/parent-module": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -3765,8 +3831,9 @@ }, "node_modules/parse-json": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -3806,21 +3873,24 @@ }, "node_modules/path-parse": { "version": "1.0.7", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "node_modules/path-type": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picocolors": { - "version": "1.0.0", - "dev": true, - "license": "ISC" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", @@ -3843,8 +3913,9 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -3854,8 +3925,9 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -3866,8 +3938,9 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -3877,8 +3950,9 @@ }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -3891,8 +3965,9 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -3909,9 +3984,10 @@ } }, "node_modules/prettier": { - "version": "3.0.0", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -3923,11 +3999,12 @@ } }, "node_modules/pretty-format": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.0", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -3948,8 +4025,9 @@ }, "node_modules/prompts": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -3959,15 +4037,18 @@ } }, "node_modules/punycode": { - "version": "2.3.0", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pure-rand": { - "version": "6.0.2", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -3978,8 +4059,7 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ], - "license": "MIT" + ] }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -4007,18 +4087,20 @@ }, "node_modules/require-directory": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/resolve": { - "version": "1.22.2", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, - "license": "MIT", "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -4031,8 +4113,9 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, - "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -4042,24 +4125,27 @@ }, "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/resolve-from": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/resolve.exports": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } @@ -4110,11 +4196,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "bin": { "semver": "bin/semver.js" }, @@ -4148,8 +4232,9 @@ }, "node_modules/sisteransi": { "version": "1.0.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true }, "node_modules/slash": { "version": "3.0.0", @@ -4161,16 +4246,18 @@ }, "node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, - "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -4202,8 +4289,9 @@ }, "node_modules/string-length": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, - "license": "MIT", "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -4214,8 +4302,9 @@ }, "node_modules/string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4238,24 +4327,27 @@ }, "node_modules/strip-bom": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/strip-final-newline": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -4276,8 +4368,9 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -4305,8 +4398,9 @@ }, "node_modules/tmpl": { "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true }, "node_modules/to-fast-properties": { "version": "2.0.0", @@ -4318,8 +4412,9 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -4339,9 +4434,10 @@ } }, "node_modules/ts-jest": { - "version": "29.1.1", + "version": "29.1.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.4.tgz", + "integrity": "sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q==", "dev": true, - "license": "MIT", "dependencies": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", @@ -4356,10 +4452,11 @@ "ts-jest": "cli.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", "@jest/types": "^29.0.0", "babel-jest": "^29.0.0", "jest": "^29.0.0", @@ -4369,6 +4466,9 @@ "@babel/core": { "optional": true }, + "@jest/transform": { + "optional": true + }, "@jest/types": { "optional": true }, @@ -4400,16 +4500,18 @@ }, "node_modules/type-detect": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -4418,9 +4520,10 @@ } }, "node_modules/typescript": { - "version": "5.1.6", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -4441,7 +4544,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, "funding": [ { @@ -4457,10 +4562,9 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -4471,8 +4575,9 @@ }, "node_modules/uri-js": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -4486,27 +4591,24 @@ } }, "node_modules/v8-to-istanbul": { - "version": "9.1.0", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, - "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" } }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, "node_modules/walker": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } @@ -4527,8 +4629,9 @@ }, "node_modules/wrap-ansi": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -4560,20 +4663,24 @@ }, "node_modules/y18n": { "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, "node_modules/yargs": { "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -4613,7 +4720,9 @@ "dev": true }, "@actions/core": { - "version": "1.10.0", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", + "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", "requires": { "@actions/http-client": "^2.0.1", "uuid": "^8.3.2" @@ -4631,9 +4740,9 @@ } }, "@actions/http-client": { - "version": "2.2.0", - "resolved": "https://entplus.jfrog.io/artifactory/api/npm/bapps-npm-virtual/@actions/http-client/-/http-client-2.2.0.tgz", - "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.1.tgz", + "integrity": "sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==", "requires": { "tunnel": "^0.0.6", "undici": "^5.25.4" @@ -4667,102 +4776,44 @@ } }, "@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "requires": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" } }, "@babel/compat-data": { - "version": "7.22.9", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", "dev": true }, "@babel/core": { - "version": "7.22.9", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", "dev": true, "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.9", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.6", - "@babel/parser": "^7.22.7", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.8", - "@babel/types": "^7.22.5", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", + "json5": "^2.2.3", "semver": "^6.3.1" }, "dependencies": { - "convert-source-map": { - "version": "1.9.0", - "dev": true - }, "semver": { "version": "6.3.1", "dev": true @@ -4770,138 +4821,152 @@ } }, "@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", "dev": true, "requires": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" } }, "@babel/helper-compilation-targets": { - "version": "7.22.9", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", "dev": true, "requires": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, "dependencies": { - "lru-cache": { - "version": "5.1.1", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, "semver": { "version": "6.3.1", - "dev": true - }, - "yallist": { - "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } }, "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", "dev": true, "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/helper-hoist-variables": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" } }, "@babel/helper-module-imports": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/helper-module-transforms": { - "version": "7.22.9", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" } }, "@babel/helper-plugin-utils": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", "dev": true }, "@babel/helper-simple-access": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/helper-split-export-declaration": { - "version": "7.22.6", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" } }, "@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", "dev": true }, "@babel/helpers": { - "version": "7.22.6", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", "dev": true, "requires": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.6", - "@babel/types": "^7.22.5" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "dependencies": { "ansi-styles": { @@ -4963,9 +5028,9 @@ } }, "@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -5004,10 +5069,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -5060,60 +5127,66 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", "dev": true, "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", "debug": "^4.3.1", "globals": "^11.1.0" }, "dependencies": { "globals": { "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true } } }, "@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" } }, "@bcoe/v8-coverage": { "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, "@eslint-community/eslint-utils": { @@ -5128,7 +5201,9 @@ "dev": true }, "@eslint/eslintrc": { - "version": "2.1.1", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -5143,7 +5218,9 @@ } }, "@eslint/js": { - "version": "8.46.0", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true }, "@fastify/busboy": { @@ -5152,11 +5229,13 @@ "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==" }, "@humanwhocodes/config-array": { - "version": "0.11.10", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" } }, @@ -5165,7 +5244,9 @@ "dev": true }, "@humanwhocodes/object-schema": { - "version": "1.2.1", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "@istanbuljs/load-nyc-config": { @@ -5234,107 +5315,123 @@ "dev": true }, "@jest/console": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "requires": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.6.1", - "jest-util": "^29.6.1", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" } }, "@jest/core": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "requires": { - "@jest/console": "^29.6.1", - "@jest/reporters": "^29.6.1", - "@jest/test-result": "^29.6.1", - "@jest/transform": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.6.1", - "jest-haste-map": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.1", - "jest-resolve-dependencies": "^29.6.1", - "jest-runner": "^29.6.1", - "jest-runtime": "^29.6.1", - "jest-snapshot": "^29.6.1", - "jest-util": "^29.6.1", - "jest-validate": "^29.6.1", - "jest-watcher": "^29.6.1", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.6.1", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" } }, "@jest/environment": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "requires": { - "@jest/fake-timers": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.1" + "jest-mock": "^29.7.0" } }, "@jest/expect": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "requires": { - "expect": "^29.6.1", - "jest-snapshot": "^29.6.1" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" } }, "@jest/expect-utils": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "requires": { - "jest-get-type": "^29.4.3" + "jest-get-type": "^29.6.3" } }, "@jest/fake-timers": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "requires": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.6.1", - "jest-mock": "^29.6.1", - "jest-util": "^29.6.1" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, "@jest/globals": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "requires": { - "@jest/environment": "^29.6.1", - "@jest/expect": "^29.6.1", - "@jest/types": "^29.6.1", - "jest-mock": "^29.6.1" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" } }, "@jest/reporters": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.6.1", - "@jest/test-result": "^29.6.1", - "@jest/transform": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", @@ -5343,28 +5440,47 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.6.1", - "jest-util": "^29.6.1", - "jest-worker": "^29.6.1", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "requires": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + } + } } }, "@jest/schemas": { - "version": "29.6.0", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "requires": { "@sinclair/typebox": "^0.27.8" } }, "@jest/source-map": { - "version": "29.6.0", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.18", @@ -5373,40 +5489,46 @@ } }, "@jest/test-result": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "requires": { - "@jest/console": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "requires": { - "@jest/test-result": "^29.6.1", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.1", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" } }, "@jest/transform": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.1", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.1", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -5414,10 +5536,12 @@ } }, "@jest/types": { - "version": "29.6.1", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "requires": { - "@jest/schemas": "^29.6.0", + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -5426,12 +5550,14 @@ } }, "@jridgewell/gen-mapping": { - "version": "0.3.3", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" } }, "@jridgewell/resolve-uri": { @@ -5439,7 +5565,9 @@ "dev": true }, "@jridgewell/set-array": { - "version": "1.1.2", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true }, "@jridgewell/sourcemap-codec": { @@ -5447,17 +5575,13 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.18", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - }, - "dependencies": { - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "dev": true - } + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@nodelib/fs.scandir": { @@ -5482,10 +5606,14 @@ }, "@sinclair/typebox": { "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, "@sinonjs/commons": { - "version": "3.0.0", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -5493,13 +5621,17 @@ }, "@sinonjs/fake-timers": { "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "requires": { "@sinonjs/commons": "^3.0.0" } }, "@types/babel__core": { - "version": "7.20.1", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "requires": { "@babel/parser": "^7.20.7", @@ -5510,14 +5642,18 @@ } }, "@types/babel__generator": { - "version": "7.6.4", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, "requires": { "@babel/types": "^7.0.0" } }, "@types/babel__template": { - "version": "7.4.1", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -5525,14 +5661,18 @@ } }, "@types/babel__traverse": { - "version": "7.20.1", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, "requires": { "@babel/types": "^7.20.7" } }, "@types/graceful-fs": { - "version": "4.1.6", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "requires": { "@types/node": "*" @@ -5557,7 +5697,9 @@ } }, "@types/jest": { - "version": "29.5.3", + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", "dev": true, "requires": { "expect": "^29.0.0", @@ -5565,19 +5707,19 @@ } }, "@types/json-schema": { - "version": "7.0.12", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "@types/node": { "version": "20.4.2", "dev": true }, - "@types/prettier": { - "version": "2.7.3", - "dev": true - }, "@types/semver": { - "version": "7.5.0", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "@types/stack-utils": { @@ -5596,136 +5738,149 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "6.1.0", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.1.0", - "@typescript-eslint/type-utils": "6.1.0", - "@typescript-eslint/utils": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", "natural-compare": "^1.4.0", - "natural-compare-lite": "^1.4.0", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" } }, "@typescript-eslint/parser": { - "version": "6.2.1", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/typescript-estree": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "6.2.1", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1" - } - }, - "@typescript-eslint/types": { - "version": "6.2.1", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "6.2.1", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "6.2.1", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.2.1", - "eslint-visitor-keys": "^3.4.1" - } - } } }, "@typescript-eslint/scope-manager": { - "version": "6.1.0", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, "requires": { - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" } }, "@typescript-eslint/type-utils": { - "version": "6.1.0", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "6.1.0", - "@typescript-eslint/utils": "6.1.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" } }, "@typescript-eslint/types": { - "version": "6.1.0", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "6.1.0", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, "requires": { - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", + "minimatch": "9.0.3", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "@typescript-eslint/utils": { - "version": "6.1.0", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.1.0", - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/typescript-estree": "6.1.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", "semver": "^7.5.4" } }, "@typescript-eslint/visitor-keys": { - "version": "6.1.0", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, "requires": { - "@typescript-eslint/types": "6.1.0", + "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" } }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "acorn": { - "version": "8.10.0", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", "dev": true }, "acorn-jsx": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "requires": {} }, "ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -5736,6 +5891,8 @@ }, "ansi-escapes": { "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { "type-fest": "^0.21.3" @@ -5743,6 +5900,8 @@ "dependencies": { "type-fest": { "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true } } @@ -5760,6 +5919,8 @@ }, "anymatch": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -5768,20 +5929,26 @@ }, "argparse": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "array-union": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, "babel-jest": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "requires": { - "@jest/transform": "^29.6.1", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", + "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -5799,7 +5966,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "29.5.0", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -5827,10 +5996,12 @@ } }, "babel-preset-jest": { - "version": "29.5.0", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^29.5.0", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" } }, @@ -5847,20 +6018,24 @@ } }, "braces": { - "version": "3.0.2", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "browserslist": { - "version": "4.21.9", + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" } }, "bs-logger": { @@ -5872,6 +6047,8 @@ }, "bser": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "requires": { "node-int64": "^0.4.0" @@ -5879,10 +6056,14 @@ }, "buffer-from": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "callsites": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camelcase": { @@ -5890,7 +6071,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001517", + "version": "1.0.30001634", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001634.tgz", + "integrity": "sha512-fbBYXQ9q3+yp1q1gBk86tOFs4pyn/yxFm5ZNP18OXJDfA3txImOY9PhfxVggZ4vRHDqoU8NrKU81eN0OtzOgRA==", "dev": true }, "chalk": { @@ -5903,6 +6086,8 @@ }, "char-regex": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, "ci-info": { @@ -5910,11 +6095,15 @@ "dev": true }, "cjs-module-lexer": { - "version": "1.2.3", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", "dev": true }, "cliui": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "requires": { "string-width": "^4.2.0", @@ -5924,10 +6113,14 @@ }, "co": { "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true }, "collect-v8-coverage": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, "color-convert": { @@ -5949,6 +6142,21 @@ "version": "2.0.0", "dev": true }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + } + }, "cross-spawn": { "version": "7.0.3", "dev": true, @@ -5966,8 +6174,11 @@ } }, "dedent": { - "version": "0.7.0", - "dev": true + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "requires": {} }, "deep-is": { "version": "0.1.4", @@ -5975,18 +6186,26 @@ }, "deepmerge": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true }, "detect-newline": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, "diff-sequences": { - "version": "29.4.3", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true }, "dir-glob": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { "path-type": "^4.0.0" @@ -6000,26 +6219,36 @@ } }, "electron-to-chromium": { - "version": "1.4.464", + "version": "1.4.803", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz", + "integrity": "sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g==", "dev": true }, "emittery": { "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true }, "emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "error-ex": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "escalade": { - "version": "3.1.1", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true }, "escape-string-regexp": { @@ -6027,16 +6256,19 @@ "dev": true }, "eslint": { - "version": "8.46.0", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.1", - "@eslint/js": "^8.46.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -6044,7 +6276,7 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.2", + "eslint-visitor-keys": "^3.4.3", "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", @@ -6070,7 +6302,9 @@ } }, "eslint-config-prettier": { - "version": "8.9.0", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", "dev": true, "requires": {} }, @@ -6083,11 +6317,15 @@ } }, "eslint-visitor-keys": { - "version": "3.4.2", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true }, "espree": { "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "requires": { "acorn": "^8.9.0", @@ -6123,6 +6361,8 @@ }, "execa": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { "cross-spawn": "^7.0.3", @@ -6138,26 +6378,33 @@ }, "exit": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true }, "expect": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "requires": { - "@jest/expect-utils": "^29.6.1", - "@types/node": "*", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-util": "^29.6.1" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" } }, "fast-deep-equal": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-glob": { - "version": "3.3.0", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -6169,6 +6416,8 @@ "dependencies": { "glob-parent": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -6193,6 +6442,8 @@ }, "fb-watchman": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "requires": { "bser": "2.1.1" @@ -6206,7 +6457,9 @@ } }, "fill-range": { - "version": "7.0.1", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -6237,12 +6490,16 @@ "dev": true }, "fsevents": { - "version": "2.3.2", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "optional": true }, "function-bind": { - "version": "1.1.1", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true }, "gensync": { @@ -6251,6 +6508,8 @@ }, "get-caller-file": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-package-type": { @@ -6259,6 +6518,8 @@ }, "get-stream": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, "glob": { @@ -6281,7 +6542,9 @@ } }, "globals": { - "version": "13.20.0", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -6289,6 +6552,8 @@ }, "globby": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { "array-union": "^2.1.0", @@ -6307,23 +6572,29 @@ "version": "1.4.0", "dev": true }, - "has": { - "version": "1.0.3", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, "has-flag": { "version": "4.0.0", "dev": true }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, "html-escaper": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "human-signals": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, "husky": { @@ -6336,6 +6607,8 @@ }, "import-fresh": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -6344,6 +6617,8 @@ }, "import-local": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "requires": { "pkg-dir": "^4.2.0", @@ -6368,13 +6643,17 @@ }, "is-arrayish": { "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "is-core-module": { - "version": "2.12.1", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "is-extglob": { @@ -6383,10 +6662,14 @@ }, "is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-generator-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true }, "is-glob": { @@ -6398,6 +6681,8 @@ }, "is-number": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "is-path-inside": { @@ -6406,6 +6691,8 @@ }, "is-stream": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "isexe": { @@ -6434,16 +6721,20 @@ } }, "istanbul-lib-report": { - "version": "3.0.0", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" } }, "istanbul-lib-source-maps": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { "debug": "^4.1.1", @@ -6452,7 +6743,9 @@ } }, "istanbul-reports": { - "version": "3.1.5", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -6460,288 +6753,332 @@ } }, "jest": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "requires": { - "@jest/core": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.6.1" + "jest-cli": "^29.7.0" } }, "jest-changed-files": { - "version": "29.5.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "requires": { "execa": "^5.0.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" } }, "jest-circus": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "requires": { - "@jest/environment": "^29.6.1", - "@jest/expect": "^29.6.1", - "@jest/test-result": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.6.1", - "jest-matcher-utils": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-runtime": "^29.6.1", - "jest-snapshot": "^29.6.1", - "jest-util": "^29.6.1", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.6.1", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "jest-cli": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "requires": { - "@jest/core": "^29.6.1", - "@jest/test-result": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.6.1", - "jest-util": "^29.6.1", - "jest-validate": "^29.6.1", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" } }, "jest-config": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.6.1", - "@jest/types": "^29.6.1", - "babel-jest": "^29.6.1", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.6.1", - "jest-environment-node": "^29.6.1", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.1", - "jest-runner": "^29.6.1", - "jest-util": "^29.6.1", - "jest-validate": "^29.6.1", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.6.1", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" } }, "jest-diff": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.1" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" } }, "jest-docblock": { - "version": "29.4.3", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "requires": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.6.1", - "pretty-format": "^29.6.1" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" } }, "jest-environment-node": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "requires": { - "@jest/environment": "^29.6.1", - "@jest/fake-timers": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.1", - "jest-util": "^29.6.1" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, "jest-get-type": { - "version": "29.4.3", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true }, "jest-haste-map": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "requires": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.3.2", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.1", - "jest-worker": "^29.6.1", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" } }, "jest-leak-detector": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "requires": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.1" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" } }, "jest-matcher-utils": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^29.6.1", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.1" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" } }, "jest-message-util": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.6.1", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "jest-mock": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "requires": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.6.1" + "jest-util": "^29.7.0" } }, "jest-pnp-resolver": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "requires": {} }, "jest-regex-util": { - "version": "29.4.3", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true }, "jest-resolve": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "requires": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.1", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.6.1", - "jest-validate": "^29.6.1", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" } }, "jest-resolve-dependencies": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "requires": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.6.1" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" } }, "jest-runner": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "requires": { - "@jest/console": "^29.6.1", - "@jest/environment": "^29.6.1", - "@jest/test-result": "^29.6.1", - "@jest/transform": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.6.1", - "jest-haste-map": "^29.6.1", - "jest-leak-detector": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-resolve": "^29.6.1", - "jest-runtime": "^29.6.1", - "jest-util": "^29.6.1", - "jest-watcher": "^29.6.1", - "jest-worker": "^29.6.1", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" } }, "jest-runtime": { - "version": "29.6.1", - "dev": true, - "requires": { - "@jest/environment": "^29.6.1", - "@jest/fake-timers": "^29.6.1", - "@jest/globals": "^29.6.1", - "@jest/source-map": "^29.6.0", - "@jest/test-result": "^29.6.1", - "@jest/transform": "^29.6.1", - "@jest/types": "^29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-mock": "^29.6.1", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.1", - "jest-snapshot": "^29.6.1", - "jest-util": "^29.6.1", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, "jest-snapshot": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "requires": { "@babel/core": "^7.11.6", @@ -6749,29 +7086,30 @@ "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.6.1", - "@jest/transform": "^29.6.1", - "@jest/types": "^29.6.1", - "@types/prettier": "^2.1.5", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.6.1", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.6.1", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.1", - "jest-message-util": "^29.6.1", - "jest-util": "^29.6.1", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.6.1", + "pretty-format": "^29.7.0", "semver": "^7.5.3" } }, "jest-util": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "requires": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -6780,49 +7118,59 @@ } }, "jest-validate": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "requires": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", + "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.6.1" + "pretty-format": "^29.7.0" }, "dependencies": { "camelcase": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true } } }, "jest-watcher": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "requires": { - "@jest/test-result": "^29.6.1", - "@jest/types": "^29.6.1", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.6.1", + "jest-util": "^29.7.0", "string-length": "^4.0.1" } }, "jest-worker": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "requires": { "@types/node": "*", - "jest-util": "^29.6.1", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, "dependencies": { "supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -6838,6 +7186,8 @@ }, "js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { "argparse": "^2.0.1" @@ -6849,10 +7199,14 @@ }, "json-parse-even-better-errors": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "json-schema-traverse": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stable-stringify-without-jsonify": { @@ -6865,10 +7219,14 @@ }, "kleur": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true }, "leven": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, "levn": { @@ -6881,6 +7239,8 @@ }, "lines-and-columns": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "locate-path": { @@ -6899,22 +7259,21 @@ "dev": true }, "lru-cache": { - "version": "6.0.0", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "requires": { - "yallist": "^4.0.0" + "yallist": "^3.0.2" } }, "make-dir": { - "version": "3.1.0", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "dev": true - } + "semver": "^7.5.3" } }, "make-error": { @@ -6923,6 +7282,8 @@ }, "makeerror": { "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "requires": { "tmpl": "1.0.5" @@ -6930,10 +7291,14 @@ }, "merge-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "merge2": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, "micromatch": { @@ -6946,6 +7311,8 @@ }, "mimic-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "minimatch": { @@ -6963,24 +7330,28 @@ "version": "1.4.0", "dev": true }, - "natural-compare-lite": { - "version": "1.4.0", - "dev": true - }, "node-int64": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, "node-releases": { - "version": "2.0.13", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "normalize-path": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "npm-run-path": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { "path-key": "^3.0.0" @@ -6995,6 +7366,8 @@ }, "onetime": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" @@ -7032,6 +7405,8 @@ }, "parent-module": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { "callsites": "^3.0.0" @@ -7039,6 +7414,8 @@ }, "parse-json": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -7061,14 +7438,20 @@ }, "path-parse": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-type": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, "picocolors": { - "version": "1.0.0", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "picomatch": { @@ -7081,6 +7464,8 @@ }, "pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { "find-up": "^4.0.0" @@ -7088,6 +7473,8 @@ "dependencies": { "find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", @@ -7096,6 +7483,8 @@ }, "locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" @@ -7103,6 +7492,8 @@ }, "p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -7110,6 +7501,8 @@ }, "p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" @@ -7122,14 +7515,18 @@ "dev": true }, "prettier": { - "version": "3.0.0", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", "dev": true }, "pretty-format": { - "version": "29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "requires": { - "@jest/schemas": "^29.6.0", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -7142,6 +7539,8 @@ }, "prompts": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "requires": { "kleur": "^3.0.3", @@ -7149,11 +7548,15 @@ } }, "punycode": { - "version": "2.3.0", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true }, "pure-rand": { - "version": "6.0.2", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true }, "queue-microtask": { @@ -7166,19 +7569,25 @@ }, "require-directory": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, "resolve": { - "version": "1.22.2", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-cwd": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "requires": { "resolve-from": "^5.0.0" @@ -7186,16 +7595,22 @@ "dependencies": { "resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true } } }, "resolve-from": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "resolve.exports": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true }, "reusify": { @@ -7217,10 +7632,9 @@ } }, "semver": { - "version": "7.5.4", - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==" }, "shebang-command": { "version": "2.0.0", @@ -7239,6 +7653,8 @@ }, "sisteransi": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, "slash": { @@ -7247,10 +7663,14 @@ }, "source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-support": { "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -7276,6 +7696,8 @@ }, "string-length": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "requires": { "char-regex": "^1.0.2", @@ -7284,6 +7706,8 @@ }, "string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", @@ -7300,14 +7724,20 @@ }, "strip-bom": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, "strip-final-newline": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, "strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { @@ -7319,6 +7749,8 @@ }, "supports-preserve-symlinks-flag": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, "test-exclude": { @@ -7336,6 +7768,8 @@ }, "tmpl": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, "to-fast-properties": { @@ -7344,6 +7778,8 @@ }, "to-regex-range": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" @@ -7355,7 +7791,9 @@ "requires": {} }, "ts-jest": { - "version": "29.1.1", + "version": "29.1.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.4.tgz", + "integrity": "sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q==", "dev": true, "requires": { "bs-logger": "0.x", @@ -7380,14 +7818,20 @@ }, "type-detect": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, "type-fest": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, "typescript": { - "version": "5.1.6", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true }, "undici": { @@ -7399,15 +7843,19 @@ } }, "update-browserslist-db": { - "version": "1.0.11", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" } }, "uri-js": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -7417,22 +7865,20 @@ "version": "3.4.0" }, "v8-to-istanbul": { - "version": "9.1.0", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "dependencies": { - "convert-source-map": { - "version": "1.9.0", - "dev": true - } + "convert-source-map": "^2.0.0" } }, "walker": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, "requires": { "makeerror": "1.0.12" @@ -7447,6 +7893,8 @@ }, "wrap-ansi": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -7468,13 +7916,20 @@ }, "y18n": { "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yallist": { - "version": "4.0.0" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, "yargs": { "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { "cliui": "^8.0.1", diff --git a/package.json b/package.json index cb1782c1d..7f6564f7c 100644 --- a/package.json +++ b/package.json @@ -35,23 +35,23 @@ "author": "JFrog", "license": "Apache-2.0", "dependencies": { - "@actions/core": "~1.10.0", + "@actions/core": "~1.10.1", "@actions/exec": "~1.1.1", - "@actions/http-client": "~2.2.0", + "@actions/http-client": "~2.2.1", "@actions/tool-cache": "~2.0.1", - "semver": "~7.5.4" + "semver": "~7.6.2" }, "devDependencies": { - "@types/jest": "^29.5.3", - "@types/semver": "^7.5.0", - "@typescript-eslint/eslint-plugin": "^6.1.0", - "@typescript-eslint/parser": "^6.2.0", - "eslint": "^8.46.0", - "eslint-config-prettier": "^8.9.0", + "@types/jest": "^29.5.12", + "@types/semver": "^7.5.8", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^8.10.0", "husky": "^8.0.3", - "jest": "^29.6.1", - "prettier": "^3.0.0", - "ts-jest": "^29.1.1", - "typescript": "^5.1.6" + "jest": "^29.7.0", + "prettier": "^3.3.2", + "ts-jest": "^29.1.4", + "typescript": "^5.4.5" } } diff --git a/src/utils.ts b/src/utils.ts index 257da3e32..39a913504 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -416,7 +416,7 @@ export class Utils { /** * Execute JFrog CLI command. * This GitHub Action downloads the requested 'jfrog' executable and stores it as 'jfrog' and 'jf'. - * Therefore the 'jf' executable is expected to be in the path also for older CLI versions. + * Therefore, the 'jf' executable is expected to be in the path also for older CLI versions. * @param args - CLI arguments */ public static async runCli(args: string[]) { From af6814e31f037b3bfda855c76efe881658ef87a8 Mon Sep 17 00:00:00 2001 From: Michael Sverdlov Date: Sat, 22 Jun 2024 13:15:19 +0300 Subject: [PATCH 17/56] Mask environment variable secrets (#167) --- lib/utils.js | 9 +++++++++ src/utils.ts | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/lib/utils.js b/lib/utils.js index 81015b9d5..79ba0bd5c 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -102,6 +102,13 @@ class Utils { if (jfrogCredentials.username && !jfrogCredentials.accessToken && !jfrogCredentials.password) { throw new Error('JF_USER is configured, but the JF_PASSWORD or JF_ACCESS_TOKEN environment variables were not set.'); } + // Mark the credentials as secrets to prevent them from being printed in the logs or exported to other workflows + if (jfrogCredentials.accessToken) { + core.setSecret(jfrogCredentials.accessToken); + } + if (jfrogCredentials.password) { + core.setSecret(jfrogCredentials.password); + } return jfrogCredentials; } /** @@ -345,6 +352,8 @@ class Utils { return __awaiter(this, void 0, void 0, function* () { let cliConfigCmd = ['config']; for (let configToken of Utils.getConfigTokens()) { + // Mark the credentials as secrets to prevent them from being printed in the logs or exported to other workflows + core.setSecret(configToken); yield Utils.runCli(cliConfigCmd.concat('import', configToken)); } let configArgs = Utils.getSeparateEnvConfigArgs(jfrogCredentials); diff --git a/src/utils.ts b/src/utils.ts index 39a913504..0a81a731a 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -106,6 +106,13 @@ export class Utils { if (jfrogCredentials.username && !jfrogCredentials.accessToken && !jfrogCredentials.password) { throw new Error('JF_USER is configured, but the JF_PASSWORD or JF_ACCESS_TOKEN environment variables were not set.'); } + // Mark the credentials as secrets to prevent them from being printed in the logs or exported to other workflows + if (jfrogCredentials.accessToken) { + core.setSecret(jfrogCredentials.accessToken); + } + if (jfrogCredentials.password) { + core.setSecret(jfrogCredentials.password); + } return jfrogCredentials; } @@ -375,6 +382,8 @@ export class Utils { public static async configJFrogServers(jfrogCredentials: JfrogCredentials) { let cliConfigCmd: string[] = ['config']; for (let configToken of Utils.getConfigTokens()) { + // Mark the credentials as secrets to prevent them from being printed in the logs or exported to other workflows + core.setSecret(configToken); await Utils.runCli(cliConfigCmd.concat('import', configToken)); } From 23d791657d0aae18e074c436b4953407343c1d1a Mon Sep 17 00:00:00 2001 From: Fred <64914727+fgibelin@users.noreply.github.com> Date: Wed, 10 Jul 2024 19:46:08 +0200 Subject: [PATCH 18/56] Bumb JFrog CLI version to 2.59.1 (#172) --- action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/action.yml b/action.yml index da16ed6fc..c62729cba 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: "JFrog" inputs: version: description: "JFrog CLI Version" - default: "2.58.2" + default: "2.59.1" required: false download-repository: description: "Remote repository in Artifactory pointing to 'https://releases.jfrog.io/artifactory/jfrog-cli'. Use this parameter in case you don't have an Internet access." From aeeff2ff3c1f9ff5d1ebaddf315271667bed7452 Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Thu, 11 Jul 2024 09:46:05 +0300 Subject: [PATCH 19/56] Update documentation (#173) --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ccce1a0e5..fcc5e052f 100644 --- a/README.md +++ b/README.md @@ -287,12 +287,14 @@ Here's how you do this: The **setup-jfrog-cli GitHub Action** leverages the **Command Summaries** feature of the JFrog CLI to generate a detailed summary of the entire workflow. -The summary can be viewed from the GitHub Actions run page. +The summary can be viewed from the GitHub Actions run page and is enabled by default. -A list of supported commands and more information can be found here +The summary will include the summary of CLI commands which support this feature. +To read more about the JFrog CLI supported commands, visit the following link: [JFrog CLI Command Summaries Documentation](https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-command-summaries) -The Job Summary UI includes direct links to the JFrog Platform UI. + +Notice that the Job Summary UI includes direct links to the JFrog Platform UI. It's important to note that for the platform links to function correctly, `JF_URL` should be set as a variable rather than a secret. This is to prevent GitHub from masking the URL. From b6ae82ddde76cd18e89414834d8dd65a35f4d2c5 Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Thu, 11 Jul 2024 09:49:48 +0300 Subject: [PATCH 20/56] Fix job summary color scheme not supported (#170) --- lib/utils.js | 29 ++++++++++++++++++++++++++--- src/utils.ts | 29 ++++++++++++++++++++++++++--- test/main.spec.ts | 17 +++++++++++++++++ 3 files changed, 69 insertions(+), 6 deletions(-) diff --git a/lib/utils.js b/lib/utils.js index 79ba0bd5c..7f79e2ad5 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -459,7 +459,7 @@ class Utils { return __awaiter(this, void 0, void 0, function* () { try { // Read all sections and construct the final markdown file - const markdownContent = yield this.readCLIMarkdownSections(); + const markdownContent = yield this.readCLIMarkdownSectionsAndWrap(); if (markdownContent.length == 0) { core.debug('No job summaries sections found. Workflow summary will not be generated.'); return; @@ -480,7 +480,7 @@ class Utils { * This function reads each section file and wraps it with a markdown header * @returns the content of the markdown file as string, warped in a collapsable section. */ - static readCLIMarkdownSections() { + static readCLIMarkdownSectionsAndWrap() { return __awaiter(this, void 0, void 0, function* () { const outputDir = Utils.getJobOutputDirectoryPath(); let markdownContent = ''; @@ -512,9 +512,32 @@ class Utils { }); } static getMarkdownHeader() { - let mainTitle = `# $\\textcolor{green}{\\textsf{ 🐸 JFrog Job Summary}}$` + '\n\n'; + let mainTitle; + if (Utils.isColorSchemeSupported()) { + mainTitle = `# $\\textcolor{green}{\\textsf{ 🐸 JFrog Job Summary}}$` + '\n\n'; + } + else { + mainTitle = `# 🐸 JFrog Job Summary` + '\n\n'; + } return mainTitle + Utils.getProjectPackagesLink(); } + /** + * Check if the color scheme is supported in the GitHub UI. + * Currently, GitHub enterprise does not support the color LaTex scheme $\textcolor{}. + * This scheme is part of the LaTeX/Mathematics scheme. + * + * Currently, the scheme is not supported by GitHub Enterprise version 3.13, + * which is the latest version at the time of writing this comment. + * + * For more info about the scheme see: + * https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions + * + * @returns true if the color scheme is supported, false otherwise. + */ + static isColorSchemeSupported() { + let serverUrl = process.env.GITHUB_SERVER_URL || ''; + return serverUrl.startsWith('https://github.com'); + } /** * Gets the project packages link to be displayed in the summary * If the project is undefined, it will resolve to 'all' section in the UI. diff --git a/src/utils.ts b/src/utils.ts index 0a81a731a..e7fbc03eb 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -496,7 +496,7 @@ export class Utils { public static async generateWorkflowSummaryMarkdown() { try { // Read all sections and construct the final markdown file - const markdownContent: string = await this.readCLIMarkdownSections(); + const markdownContent: string = await this.readCLIMarkdownSectionsAndWrap(); if (markdownContent.length == 0) { core.debug('No job summaries sections found. Workflow summary will not be generated.'); return; @@ -516,7 +516,7 @@ export class Utils { * This function reads each section file and wraps it with a markdown header * @returns the content of the markdown file as string, warped in a collapsable section. */ - private static async readCLIMarkdownSections(): Promise { + private static async readCLIMarkdownSectionsAndWrap(): Promise { const outputDir: string = Utils.getJobOutputDirectoryPath(); let markdownContent: string = ''; @@ -548,10 +548,33 @@ export class Utils { } private static getMarkdownHeader(): string { - let mainTitle: string = `# $\\textcolor{green}{\\textsf{ 🐸 JFrog Job Summary}}$` + '\n\n'; + let mainTitle: string; + if (Utils.isColorSchemeSupported()) { + mainTitle = `# $\\textcolor{green}{\\textsf{ 🐸 JFrog Job Summary}}$` + '\n\n'; + } else { + mainTitle = `# 🐸 JFrog Job Summary` + '\n\n'; + } return mainTitle + Utils.getProjectPackagesLink(); } + /** + * Check if the color scheme is supported in the GitHub UI. + * Currently, GitHub enterprise does not support the color LaTex scheme $\textcolor{}. + * This scheme is part of the LaTeX/Mathematics scheme. + * + * Currently, the scheme is not supported by GitHub Enterprise version 3.13, + * which is the latest version at the time of writing this comment. + * + * For more info about the scheme see: + * https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions + * + * @returns true if the color scheme is supported, false otherwise. + */ + static isColorSchemeSupported(): boolean { + let serverUrl: string = process.env.GITHUB_SERVER_URL || ''; + return serverUrl.startsWith('https://github.com'); + } + /** * Gets the project packages link to be displayed in the summary * If the project is undefined, it will resolve to 'all' section in the UI. diff --git a/test/main.spec.ts b/test/main.spec.ts index c008cd56f..b00da0f28 100644 --- a/test/main.spec.ts +++ b/test/main.spec.ts @@ -299,3 +299,20 @@ describe('Job Summaries', () => { }); }); }); + +describe('isColorSchemeSupported', () => { + it('should return true if GITHUB_SERVER_URL includes github.com', () => { + process.env.GITHUB_SERVER_URL = 'https://github.com'; + expect(Utils.isColorSchemeSupported()).toBe(true); + }); + + it('should return false if GITHUB_SERVER_URL does not include github.com', () => { + process.env.GITHUB_SERVER_URL = 'https://enterprise.github.com'; + expect(Utils.isColorSchemeSupported()).toBe(false); + }); + + it('should return false if GITHUB_SERVER_URL is undefined', () => { + delete process.env.GITHUB_SERVER_URL; + expect(Utils.isColorSchemeSupported()).toBe(false); + }); +}); From 8db8d2b745372e6410e1b0e831edf30bc6d6726d Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Thu, 11 Jul 2024 09:56:39 +0300 Subject: [PATCH 21/56] Add option to disable Job Summaries (#169) --- README.md | 13 +++++++++++-- action.yml | 4 ++++ lib/cleanup.js | 4 +++- lib/utils.js | 18 +++++++++++++++--- src/cleanup.ts | 4 +++- src/utils.ts | 20 +++++++++++++++++--- test/main.spec.ts | 30 ++++++++++++++++++++++++++++++ 7 files changed, 83 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index fcc5e052f..97e96a431 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ You can use these environment variables in your workflow as follows: - uses: jfrog/setup-jfrog-cli@v4 env: # JFrog platform url (for example: https://acme.jfrog.io) - JF_URL: ${{ secrets.JF_URL }} + JF_URL: ${{ vars.JF_URL }} # Basic authentication credentials JF_USER: ${{ secrets.JF_USER }} @@ -192,7 +192,7 @@ Example step utilizing OpenID Connect: ```yml - uses: jfrog/setup-jfrog-cli@v4 env: - JF_URL: ${{ secrets.JF_URL }} + JF_URL: ${{ vars.JF_URL }} with: oidc-provider-name: setup-jfrog-cli ``` @@ -303,6 +303,15 @@ Example JFrog Job Summary: ![JFrog-Job-Summary](images/JFrog-Job-Summary.png) + +Job summaries can be disabled by setting the `disable-job-summary` input to `true`. + +```yml +- uses: jfrog/setup-jfrog-cli@v4 + with: + disable-job-summary: true +``` + ## Example projects To help you get started, you can use [these](https://github.com/jfrog/project-examples/tree/master/github-action-examples) sample projects on GitHub. diff --git a/action.yml b/action.yml index c62729cba..5d5d89cee 100644 --- a/action.yml +++ b/action.yml @@ -15,6 +15,10 @@ inputs: oidc-audience: description: "By default, this is the URL of the GitHub repository owner, such as the organization that owns the repository." required: false + disable-job-summary: + description: "Set to true to disable the generation of Job Summaries." + default: false + required: false outputs: oidc-token: description: "JFrog OIDC token generated by the Setup JFrog CLI when setting oidc-provider-name." diff --git a/lib/cleanup.js b/lib/cleanup.js index 0c43fdf90..8a2b236b4 100644 --- a/lib/cleanup.js +++ b/lib/cleanup.js @@ -42,7 +42,9 @@ function cleanup() { return; } yield utils_1.Utils.removeJFrogServers(); - yield utils_1.Utils.generateWorkflowSummaryMarkdown(); + if (!core.getBooleanInput(utils_1.Utils.JOB_SUMMARY_DISABLE)) { + yield utils_1.Utils.generateWorkflowSummaryMarkdown(); + } } catch (error) { core.setFailed(error.message); diff --git a/lib/utils.js b/lib/utils.js index 7f79e2ad5..536471130 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -338,9 +338,19 @@ class Utils { if (projectKey) { Utils.exportVariableIfNotSet('JFROG_CLI_BUILD_PROJECT', projectKey); } - let jobSummariesOutputDir = process.env.RUNNER_TEMP; - if (jobSummariesOutputDir) { - Utils.exportVariableIfNotSet('JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR', jobSummariesOutputDir); + // Enable Job summaries if needed + if (!core.getBooleanInput(Utils.JOB_SUMMARY_DISABLE)) { + Utils.enableJobSummaries(); + } + } + /** + * Enabling job summary is done by setting the output dir for the summaries. + * If the output dir is not set, the CLI won't generate the summary markdown files. + */ + static enableJobSummaries() { + let commandSummariesOutputDir = process.env.RUNNER_TEMP; + if (commandSummariesOutputDir) { + Utils.exportVariableIfNotSet('JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR', commandSummariesOutputDir); } } static exportVariableIfNotSet(key, value) { @@ -628,3 +638,5 @@ Utils.CLI_REMOTE_ARG = 'download-repository'; Utils.OIDC_AUDIENCE_ARG = 'oidc-audience'; // OpenID Connect provider_name input Utils.OIDC_INTEGRATION_PROVIDER_NAME = 'oidc-provider-name'; +// Job Summaries feature flag +Utils.JOB_SUMMARY_DISABLE = 'disable-job-summary'; diff --git a/src/cleanup.ts b/src/cleanup.ts index 3ccdc4d40..53b956eb2 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -8,7 +8,9 @@ async function cleanup() { return; } await Utils.removeJFrogServers(); - await Utils.generateWorkflowSummaryMarkdown(); + if (!core.getBooleanInput(Utils.JOB_SUMMARY_DISABLE)) { + await Utils.generateWorkflowSummaryMarkdown(); + } } catch (error) { core.setFailed((error).message); } finally { diff --git a/src/utils.ts b/src/utils.ts index e7fbc03eb..50da05623 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -52,6 +52,8 @@ export class Utils { private static readonly OIDC_AUDIENCE_ARG: string = 'oidc-audience'; // OpenID Connect provider_name input private static readonly OIDC_INTEGRATION_PROVIDER_NAME: string = 'oidc-provider-name'; + // Job Summaries feature flag + public static readonly JOB_SUMMARY_DISABLE: string = 'disable-job-summary'; /** * Retrieves server credentials for accessing JFrog's server @@ -367,9 +369,21 @@ export class Utils { if (projectKey) { Utils.exportVariableIfNotSet('JFROG_CLI_BUILD_PROJECT', projectKey); } - let jobSummariesOutputDir: string | undefined = process.env.RUNNER_TEMP; - if (jobSummariesOutputDir) { - Utils.exportVariableIfNotSet('JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR', jobSummariesOutputDir); + + // Enable Job summaries if needed + if (!core.getBooleanInput(Utils.JOB_SUMMARY_DISABLE)) { + Utils.enableJobSummaries(); + } + } + + /** + * Enabling job summary is done by setting the output dir for the summaries. + * If the output dir is not set, the CLI won't generate the summary markdown files. + */ + private static enableJobSummaries() { + let commandSummariesOutputDir: string | undefined = process.env.RUNNER_TEMP; + if (commandSummariesOutputDir) { + Utils.exportVariableIfNotSet('JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR', commandSummariesOutputDir); } } diff --git a/test/main.spec.ts b/test/main.spec.ts index b00da0f28..36ab17790 100644 --- a/test/main.spec.ts +++ b/test/main.spec.ts @@ -1,6 +1,9 @@ import * as os from 'os'; +import * as core from '@actions/core'; + import { Utils, DownloadDetails, JfrogCredentials } from '../src/utils'; jest.mock('os'); +jest.mock('@actions/core'); const DEFAULT_CLI_URL: string = 'https://releases.jfrog.io/artifactory/jfrog-cli/'; const CUSTOM_CLI_URL: string = 'http://127.0.0.1:8081/artifactory/jfrog-cli-remote/'; @@ -298,6 +301,33 @@ describe('Job Summaries', () => { expect(async () => await Utils.generateWorkflowSummaryMarkdown()).not.toThrow(); }); }); + describe('Command Summaries Disable Flag', () => { + const myCore: jest.Mocked = core as any; + beforeEach(() => { + delete process.env.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR; + delete process.env.RUNNER_TEMP; + }); + + it('should not set JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR if disable-job-summary is true', () => { + myCore.getBooleanInput = jest.fn().mockImplementation(() => { + return true; + }); + Utils.setCliEnv(); + expect(process.env.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR).toBeUndefined(); + }); + + it('should set JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR if disable-job-summary is false', () => { + process.env.RUNNER_TEMP = '/tmp'; + myCore.getBooleanInput = jest.fn().mockImplementation(() => { + return false; + }); + (myCore.exportVariable = jest.fn().mockImplementation((name: string, val: string) => { + process.env[name] = val; + })), + Utils.setCliEnv(); + expect(process.env.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR).toBe('/tmp'); + }); + }); }); describe('isColorSchemeSupported', () => { From 8bab65dc312163b065ac5b03de6f6a5bdd1bec41 Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Thu, 11 Jul 2024 10:05:45 +0300 Subject: [PATCH 22/56] Update version to 4.1.3 (#174) --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 41c10b7a7..39cffc9d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.1.0", + "version": "4.1.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@jfrog/setup-jfrog-cli", - "version": "4.1.0", + "version": "4.1.3", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 7f6564f7c..3896c2182 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.1.0", + "version": "4.1.3", "private": true, "description": "Setup JFrog CLI in GitHub Actions", "main": "lib/main.js", From 08ed366b5083c6c1508c95adaf44290d49132400 Mon Sep 17 00:00:00 2001 From: Robi Nino Date: Sun, 28 Jul 2024 11:57:36 +0300 Subject: [PATCH 23/56] Make job summary disable input schema compatible (#175) --- action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/action.yml b/action.yml index 5d5d89cee..826fc3980 100644 --- a/action.yml +++ b/action.yml @@ -17,7 +17,7 @@ inputs: required: false disable-job-summary: description: "Set to true to disable the generation of Job Summaries." - default: false + default: "false" required: false outputs: oidc-token: From 9a326ad6daca7ecc386a72c6af4690056aee0322 Mon Sep 17 00:00:00 2001 From: Robi Nino Date: Sun, 28 Jul 2024 14:47:54 +0300 Subject: [PATCH 24/56] Add note about overriding build values (#177) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 97e96a431..5ed62cbaa 100644 --- a/README.md +++ b/README.md @@ -217,6 +217,8 @@ are registered as the build artifacts. jf rt bp ``` +You may override the default build name and number by setting the above variables in your workflow. + ## Setting JFrog CLI version By default, the JFrog CLI version set in [action.yml](https://github.com/jfrog/setup-jfrog-cli/blob/master/action.yml) is used. To set a specific version, add the _version_ input as follows: From 58235081c9622146a117a10a13e8366978cbe0c9 Mon Sep 17 00:00:00 2001 From: Robi Nino Date: Mon, 29 Jul 2024 09:37:39 +0300 Subject: [PATCH 25/56] Reorder job summary sections (#176) --- lib/utils.js | 26 +++++++++++++++----------- src/utils.ts | 27 ++++++++++++++++----------- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/lib/utils.js b/lib/utils.js index 536471130..ad1bca7d3 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -494,19 +494,23 @@ class Utils { return __awaiter(this, void 0, void 0, function* () { const outputDir = Utils.getJobOutputDirectoryPath(); let markdownContent = ''; + const sectionContents = {}; + // Read all sections. for (const sectionName of Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES) { const fullPath = path.join(outputDir, sectionName, 'markdown.md'); - // Check file exists - if (!(0, fs_1.existsSync)(fullPath)) { - continue; + if ((0, fs_1.existsSync)(fullPath)) { + sectionContents[sectionName] = yield Utils.readSummarySection(fullPath, sectionName); } - markdownContent += yield Utils.readSummarySection(fullPath, sectionName); } - // No section was added, return empty string - if (markdownContent == '') { - return ''; + // If build info was published, remove generic upload section to avoid duplications with generic modules. + if (sectionContents[MarkdownSection.BuildInfo] != '') { + sectionContents[MarkdownSection.Upload] = ''; } - return Utils.wrapContent(markdownContent); + // Append sections in order. + for (const sectionName of Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES) { + markdownContent += sectionContents[sectionName] || ''; + } + return markdownContent ? Utils.wrapContent(markdownContent) : ''; }); } static readSummarySection(fullPath, section) { @@ -623,11 +627,11 @@ Utils.LATEST_RELEASE_VERSION = '[RELEASE]'; Utils.SETUP_JFROG_CLI_SERVER_ID = 'setup-jfrog-cli-server'; // Directory name which holds markdown files for the Workflow summary Utils.JOB_SUMMARY_DIR_NAME = 'jfrog-command-summary'; -// Workflow summary section files +// Workflow summary section files. Order of sections in this array impacts the order in the final markdown. Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES = [ - MarkdownSection.Upload, - MarkdownSection.BuildInfo, MarkdownSection.Security, + MarkdownSection.BuildInfo, + MarkdownSection.Upload, ]; // Inputs // Version input diff --git a/src/utils.ts b/src/utils.ts index 50da05623..0c540f705 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -36,11 +36,11 @@ export class Utils { public static readonly SETUP_JFROG_CLI_SERVER_ID: string = 'setup-jfrog-cli-server'; // Directory name which holds markdown files for the Workflow summary private static readonly JOB_SUMMARY_DIR_NAME: string = 'jfrog-command-summary'; - // Workflow summary section files + // Workflow summary section files. Order of sections in this array impacts the order in the final markdown. public static JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES: MarkdownSection[] = [ - MarkdownSection.Upload, - MarkdownSection.BuildInfo, MarkdownSection.Security, + MarkdownSection.BuildInfo, + MarkdownSection.Upload, ]; // Inputs @@ -533,22 +533,27 @@ export class Utils { private static async readCLIMarkdownSectionsAndWrap(): Promise { const outputDir: string = Utils.getJobOutputDirectoryPath(); let markdownContent: string = ''; + const sectionContents: { [key: string]: string } = {}; + // Read all sections. for (const sectionName of Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES) { const fullPath: string = path.join(outputDir, sectionName, 'markdown.md'); - // Check file exists - if (!existsSync(fullPath)) { - continue; + if (existsSync(fullPath)) { + sectionContents[sectionName] = await Utils.readSummarySection(fullPath, sectionName); } - markdownContent += await Utils.readSummarySection(fullPath, sectionName); } - // No section was added, return empty string - if (markdownContent == '') { - return ''; + // If build info was published, remove generic upload section to avoid duplications with generic modules. + if (sectionContents[MarkdownSection.BuildInfo] != '') { + sectionContents[MarkdownSection.Upload] = ''; + } + + // Append sections in order. + for (const sectionName of Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES) { + markdownContent += sectionContents[sectionName] || ''; } - return Utils.wrapContent(markdownContent); + return markdownContent ? Utils.wrapContent(markdownContent) : ''; } private static async readSummarySection(fullPath: string, section: MarkdownSection) { From 2308cade4b9e48f4429a1401717237d10515ff5c Mon Sep 17 00:00:00 2001 From: Robi Nino Date: Wed, 31 Jul 2024 09:29:04 +0300 Subject: [PATCH 26/56] Update job summary documentation (#178) --- README.md | 26 +++++++++++++++++--------- images/JFrog-Job-Summary.png | Bin 90082 -> 0 bytes images/job_summary.png | Bin 0 -> 237268 bytes 3 files changed, 17 insertions(+), 9 deletions(-) delete mode 100644 images/JFrog-Job-Summary.png create mode 100644 images/job_summary.png diff --git a/README.md b/README.md index 5ed62cbaa..e1517d71a 100644 --- a/README.md +++ b/README.md @@ -286,24 +286,24 @@ Here's how you do this: ## JFrog Job Summary -The **setup-jfrog-cli GitHub Action** leverages the **Command Summaries** feature of the JFrog CLI -to generate a detailed summary of the entire workflow. +Jobs using this GitHub action will output a summary of some of the key commands that were performed using JFrog CLI. The summary can be viewed from the GitHub Actions run page and is enabled by default. -The summary will include the summary of CLI commands which support this feature. -To read more about the JFrog CLI supported commands, visit the following link: -[JFrog CLI Command Summaries Documentation](https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-command-summaries) +### Preconditions +To fully leverage from the JFrog Job Summary, one should: +1. Use JFrog CLI version 2.62.0 or above. +2. Set `JF_URL` as a variable rather than a secret (see note below). +3. [Collect build info](https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/build-integration) and [publish](https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/build-integration#publishing-build-info) it using JFrog CLI. - -Notice that the Job Summary UI includes direct links to the JFrog Platform UI. -It's important to note that for the platform links to function correctly, +> **_NOTE:_** The Job Summary includes direct links to the JFrog Platform UI. +For the links to function correctly, `JF_URL` should be set as a variable rather than a secret. This is to prevent GitHub from masking the URL. Example JFrog Job Summary: -![JFrog-Job-Summary](images/JFrog-Job-Summary.png) +![JFrog-Job-Summary](images/job_summary.png) Job summaries can be disabled by setting the `disable-job-summary` input to `true`. @@ -314,6 +314,14 @@ Job summaries can be disabled by setting the `disable-job-summary` input to `tru disable-job-summary: true ``` +### Behind the scenes +The **setup-jfrog-cli GitHub Action** leverages the **Command Summaries** feature of the JFrog CLI +to generate a detailed summary of the entire workflow. + +The final summary will include the summary of each CLI command that supports this feature. +To read more about the JFrog CLI supported commands, visit the following link: +[JFrog CLI Command Summaries Documentation](https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-command-summaries). + ## Example projects To help you get started, you can use [these](https://github.com/jfrog/project-examples/tree/master/github-action-examples) sample projects on GitHub. diff --git a/images/JFrog-Job-Summary.png b/images/JFrog-Job-Summary.png deleted file mode 100644 index 62b000bfa77c5f7943dd5995046beb58162e8145..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90082 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�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 vJh}B4H0r^DBLkamV`u-aBLL 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

t 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 H8vK6%?xS6^ literal 0 HcmV?d00001 From 6265e82de6b9c436aea72cea40fd58abc268a6da Mon Sep 17 00:00:00 2001 From: RobiNino Date: Wed, 31 Jul 2024 16:54:17 +0300 Subject: [PATCH 27/56] Upgrade jfrog-cli and version --- action.yml | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/action.yml b/action.yml index 826fc3980..c783dd13e 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: "JFrog" inputs: version: description: "JFrog CLI Version" - default: "2.59.1" + default: "2.62.0" required: false download-repository: description: "Remote repository in Artifactory pointing to 'https://releases.jfrog.io/artifactory/jfrog-cli'. Use this parameter in case you don't have an Internet access." diff --git a/package-lock.json b/package-lock.json index 39cffc9d7..9490d5b94 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.1.3", + "version": "4.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@jfrog/setup-jfrog-cli", - "version": "4.1.3", + "version": "4.2.0", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 3896c2182..e5412fbf1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.1.3", + "version": "4.2.0", "private": true, "description": "Setup JFrog CLI in GitHub Actions", "main": "lib/main.js", From 105617d23456a69a92485207c4f28ae12297581d Mon Sep 17 00:00:00 2001 From: RobiNino Date: Thu, 1 Aug 2024 12:28:25 +0300 Subject: [PATCH 28/56] Upgrade jfrog-cli and version --- action.yml | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/action.yml b/action.yml index c783dd13e..596211812 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: "JFrog" inputs: version: description: "JFrog CLI Version" - default: "2.62.0" + default: "2.62.1" required: false download-repository: description: "Remote repository in Artifactory pointing to 'https://releases.jfrog.io/artifactory/jfrog-cli'. Use this parameter in case you don't have an Internet access." diff --git a/package-lock.json b/package-lock.json index 9490d5b94..5a4f3bdbb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.2.0", + "version": "4.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@jfrog/setup-jfrog-cli", - "version": "4.2.0", + "version": "4.2.1", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index e5412fbf1..1bc105430 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.2.0", + "version": "4.2.1", "private": true, "description": "Setup JFrog CLI in GitHub Actions", "main": "lib/main.js", From 768dc7d84c5ed3f2be021bf37bfc0c6583534f08 Mon Sep 17 00:00:00 2001 From: Robi Nino Date: Mon, 5 Aug 2024 09:38:37 +0300 Subject: [PATCH 29/56] Support OIDC for projects (#179) --- lib/utils.js | 4 +++- src/utils.ts | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/utils.js b/lib/utils.js index ad1bca7d3..27a08a7fa 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -123,12 +123,14 @@ class Utils { // If we've reached this stage, the jfrogCredentials.jfrogUrl field should hold a non-empty value obtained from process.env.JF_URL const exchangeUrl = jfrogCredentials.jfrogUrl.replace(/\/$/, '') + '/access/api/v1/oidc/token'; core.debug('Exchanging GitHub JSON web token with a JFrog access token...'); + let projectKey = process.env.JF_PROJECT || ''; const httpClient = new http_client_1.HttpClient(); const data = `{ "grant_type": "urn:ietf:params:oauth:grant-type:token-exchange", "subject_token_type": "urn:ietf:params:oauth:token-type:id_token", "subject_token": "${jsonWebToken}", - "provider_name": "${oidcProviderName}" + "provider_name": "${oidcProviderName}", + "project_key": "${projectKey}" }`; const additionalHeaders = { 'Content-Type': 'application/json', diff --git a/src/utils.ts b/src/utils.ts index 0c540f705..2d1bb05df 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -134,12 +134,15 @@ export class Utils { const exchangeUrl: string = jfrogCredentials.jfrogUrl!.replace(/\/$/, '') + '/access/api/v1/oidc/token'; core.debug('Exchanging GitHub JSON web token with a JFrog access token...'); + let projectKey: string = process.env.JF_PROJECT || ''; + const httpClient: HttpClient = new HttpClient(); const data: string = `{ "grant_type": "urn:ietf:params:oauth:grant-type:token-exchange", "subject_token_type": "urn:ietf:params:oauth:token-type:id_token", "subject_token": "${jsonWebToken}", - "provider_name": "${oidcProviderName}" + "provider_name": "${oidcProviderName}", + "project_key": "${projectKey}" }`; const additionalHeaders: OutgoingHttpHeaders = { From 26532cdb5b1ea07940f10d57666fd988048fc903 Mon Sep 17 00:00:00 2001 From: RobiNino Date: Tue, 6 Aug 2024 10:49:35 +0300 Subject: [PATCH 30/56] Upgrade jfrog-cli and version --- action.yml | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/action.yml b/action.yml index 596211812..9bd3ea1f3 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: "JFrog" inputs: version: description: "JFrog CLI Version" - default: "2.62.1" + default: "2.62.2" required: false download-repository: description: "Remote repository in Artifactory pointing to 'https://releases.jfrog.io/artifactory/jfrog-cli'. Use this parameter in case you don't have an Internet access." diff --git a/package-lock.json b/package-lock.json index 5a4f3bdbb..1dc04a713 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.2.1", + "version": "4.2.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@jfrog/setup-jfrog-cli", - "version": "4.2.1", + "version": "4.2.2", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 1bc105430..d953b3bfb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.2.1", + "version": "4.2.2", "private": true, "description": "Setup JFrog CLI in GitHub Actions", "main": "lib/main.js", From ea984f0e8ef79aa1b64b9ac71593041ccbf34517 Mon Sep 17 00:00:00 2001 From: Michael Sverdlov Date: Mon, 12 Aug 2024 17:42:18 +0300 Subject: [PATCH 31/56] Update dependencies and JFrog CLI version to 2.63.0 (#180) --- .github/workflows/cla.yml | 26 +- .../workflows/frogbot-scan-pull-request.yml | 53 +- .github/workflows/frogbot-scan-repository.yml | 42 +- .gitignore | 16 +- action.yml | 2 +- node_modules/.package-lock.json | 104 + node_modules/semver/README.md | 2 +- node_modules/semver/classes/range.js | 34 +- node_modules/semver/package.json | 2 +- package-lock.json | 4356 ++--------------- package.json | 2 +- test/main.spec.ts | 32 +- 12 files changed, 681 insertions(+), 3990 deletions(-) create mode 100644 node_modules/.package-lock.json diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 6813343d7..92a57a439 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -10,26 +10,10 @@ jobs: CLAssistant: runs-on: ubuntu-latest steps: - - uses: actions-ecosystem/action-regex-match@v2 - id: sign-or-recheck + - name: Run CLA Check + uses: jfrog/.github/actions/cla@main with: - text: ${{ github.event.comment.body }} - regex: '\s*(I have read the CLA Document and I hereby sign the CLA)|(recheck)\s*' - - - name: "CLA Assistant" - if: ${{ steps.sign-or-recheck.outputs.match != '' || github.event_name == 'pull_request_target' }} - # Alpha Release - uses: cla-assistant/github-action@v2.3.0 - env: - # Generated and maintained by GitHub + event_comment_body: ${{ github.event.comment.body }} + event_name: ${{ github.event_name }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # JFrog organization secret - PERSONAL_ACCESS_TOKEN: ${{ secrets.CLA_SIGN_TOKEN }} - with: - path-to-signatures: "signed_clas.json" - path-to-document: "https://jfrog.com/cla/" - remote-organization-name: "jfrog" - remote-repository-name: "jfrog-signed-clas" - # branch should not be protected - branch: "master" - allowlist: bot* + CLA_SIGN_TOKEN: ${{ secrets.CLA_SIGN_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/frogbot-scan-pull-request.yml b/.github/workflows/frogbot-scan-pull-request.yml index 341374c6f..740419027 100644 --- a/.github/workflows/frogbot-scan-pull-request.yml +++ b/.github/workflows/frogbot-scan-pull-request.yml @@ -1,7 +1,7 @@ name: "Frogbot Scan Pull Request" on: pull_request_target: - types: [opened, synchronize] + types: [ opened, synchronize ] permissions: pull-requests: write contents: read @@ -14,22 +14,16 @@ jobs: steps: - uses: jfrog/frogbot@v2 env: + JFROG_CLI_LOG_LEVEL: "DEBUG" + # [Mandatory] - # JFrog platform URL + # JFrog platform URL (This functionality requires version 3.29.0 or above of Xray) JF_URL: ${{ secrets.FROGBOT_URL }} # [Mandatory if JF_USER and JF_PASSWORD are not provided] # JFrog access token with 'read' permissions on Xray service JF_ACCESS_TOKEN: ${{ secrets.FROGBOT_ACCESS_TOKEN }} - # [Mandatory if JF_ACCESS_TOKEN is not provided] - # JFrog username with 'read' permissions for Xray. Must be provided with JF_PASSWORD - # JF_USER: ${{ secrets.JF_USER }} - - # [Mandatory if JF_ACCESS_TOKEN is not provided] - # JFrog password. Must be provided with JF_USER - # JF_PASSWORD: ${{ secrets.JF_PASSWORD }} - # [Mandatory] # The GitHub token is automatically generated for the job JF_GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -57,15 +51,21 @@ jobs: # [Optional] # Configure the SMTP server to enable Frogbot to send emails with detected secrets in pull request scans. # SMTP server URL including should the relevant port: (Example: smtp.server.com:8080) - # JF_SMTP_SERVER: "" + JF_SMTP_SERVER: ${{ secrets.JF_SMTP_SERVER }} # [Mandatory if JF_SMTP_SERVER is set] # The username required for authenticating with the SMTP server. - # JF_SMTP_USER: "" + JF_SMTP_USER: ${{ secrets.JF_SMTP_USER }} # [Mandatory if JF_SMTP_SERVER is set] # The password associated with the username required for authentication with the SMTP server. - # JF_SMTP_PASSWORD: "" + JF_SMTP_PASSWORD: ${{ secrets.JF_SMTP_PASSWORD }} + + # [Optional] + # List of comma separated email addresses to receive email notifications about secrets + # detected during pull request scanning. The notification is also sent to the email set + # in the committer git profile regardless of whether this variable is set or not. + JF_EMAIL_RECEIVERS: "eco-system@jfrog.com" ########################################################################## ## If your project uses a 'frogbot-config.yml' file, you can define ## @@ -83,10 +83,6 @@ jobs: # Relative path to the root of the project in the Git repository # JF_WORKING_DIR: path/to/project/dir - # [Default: "*git*;*node_modules*;*target*;*venv*;*test*"] - # List of exclusion patterns (utilizing wildcards) for excluding paths in the source code of the Git repository during SCA scans. - # JF_PATH_EXCLUSIONS: "*git*;*node_modules*;*target*;*venv*;*test*" - # [Optional] # Xray Watches. Learn more about them here: https://www.jfrog.com/confluence/display/JFROG/Configuring+Xray+Watches # JF_WATCHES: ,... @@ -99,10 +95,6 @@ jobs: # Displays all existing vulnerabilities, including the ones that were added by the pull request. # JF_INCLUDE_ALL_VULNERABILITIES: "TRUE" - # [Optional, default: "FALSE"] - # When adding new comments on pull requests, keep old comments that were added by previous scans. - # JF_AVOID_PREVIOUS_PR_COMMENTS_DELETION: "TRUE" - # [Optional, default: "TRUE"] # Fails the Frogbot task if any security issue is found. # JF_FAIL: "FALSE" @@ -127,22 +119,3 @@ jobs: # The following values are accepted: Low, Medium, High or Critical # JF_MIN_SEVERITY: "" - # [Optional] - # List of comma separated email addresses to receive email notifications about secrets - # detected during pull request scanning. The notification is also sent to the email set - # in the committer git profile regardless of whether this variable is set or not. - # JF_EMAIL_RECEIVERS: "" - - # [Optional] - # Set the list of allowed licenses - # The full list of licenses can be found in: - # https://github.com/jfrog/frogbot/blob/master/docs/licenses.md - # JF_ALLOWED_LICENSES: "MIT, Apache-2.0" - - # [Optional] - # Avoid adding extra info to pull request comments. that isn't related to the scan findings. - # JF_AVOID_EXTRA_MESSAGES: "TRUE" - - # [Optional] - # Add a title to pull request comments generated by Frogbot. - # JF_PR_COMMENT_TITLE: "" \ No newline at end of file diff --git a/.github/workflows/frogbot-scan-repository.yml b/.github/workflows/frogbot-scan-repository.yml index 04706aaf9..19936936a 100644 --- a/.github/workflows/frogbot-scan-repository.yml +++ b/.github/workflows/frogbot-scan-repository.yml @@ -10,16 +10,22 @@ permissions: security-events: write jobs: scan-repository: + name: Scan Repository (${{ matrix.branch }} branch) runs-on: ubuntu-latest strategy: matrix: # The repository scanning will be triggered periodically on the following branches. - branch: ["master"] + branch: [ "master" ] steps: + - name: Setup Go with cache + uses: jfrog/.github/actions/install-go-with-cache@main + - uses: jfrog/frogbot@v2 env: + JFROG_CLI_LOG_LEVEL: "DEBUG" + # [Mandatory] - # JFrog platform URL + # JFrog platform URL (This functionality requires version 3.29.0 or above of Xray) JF_URL: ${{ secrets.FROGBOT_URL }} # [Mandatory if JF_USER and JF_PASSWORD are not provided] @@ -71,10 +77,6 @@ jobs: # Relative path to the root of the project in the Git repository # JF_WORKING_DIR: path/to/project/dir - # [Default: "*git*;*node_modules*;*target*;*venv*;*test*"] - # List of exclusion patterns (utilizing wildcards) for excluding paths in the source code of the Git repository during SCA scans. - # JF_PATH_EXCLUSIONS: "*git*;*node_modules*;*target*;*venv*;*test*" - # [Optional] # Xray Watches. Learn more about them here: https://www.jfrog.com/confluence/display/JFROG/Configuring+Xray+Watches # JF_WATCHES: ,... @@ -95,19 +97,19 @@ jobs: # [Optional] # Template for the branch name generated by Frogbot when creating pull requests with fixes. - # The template must include {BRANCH_NAME_HASH}, to ensure that the generated branch name is unique. - # The template can optionally include the {IMPACTED_PACKAGE} and {FIX_VERSION} variables. - # JF_BRANCH_NAME_TEMPLATE: "frogbot-{IMPACTED_PACKAGE}-{BRANCH_NAME_HASH}" + # The template must include ${BRANCH_NAME_HASH}, to ensure that the generated branch name is unique. + # The template can optionally include the ${IMPACTED_PACKAGE} and ${FIX_VERSION} variables. + # JF_BRANCH_NAME_TEMPLATE: "frogbot-${IMPACTED_PACKAGE}-${BRANCH_NAME_HASH}" # [Optional] # Template for the commit message generated by Frogbot when creating pull requests with fixes - # The template can optionally include the {IMPACTED_PACKAGE} and {FIX_VERSION} variables. - # JF_COMMIT_MESSAGE_TEMPLATE: "Upgrade {IMPACTED_PACKAGE} to {FIX_VERSION}" + # The template can optionally include the ${IMPACTED_PACKAGE} and ${FIX_VERSION} variables. + # JF_COMMIT_MESSAGE_TEMPLATE: "Upgrade ${IMPACTED_PACKAGE} to ${FIX_VERSION}" # [Optional] # Template for the pull request title generated by Frogbot when creating pull requests with fixes. - # The template can optionally include the {IMPACTED_PACKAGE} and {FIX_VERSION} variables. - # JF_PULL_REQUEST_TITLE_TEMPLATE: "[🐸 Frogbot] Upgrade {IMPACTED_PACKAGE} to {FIX_VERSION}" + # The template can optionally include the ${IMPACTED_PACKAGE} and ${FIX_VERSION} variables. + # JF_PULL_REQUEST_TITLE_TEMPLATE: "[🐸 Frogbot] Upgrade ${IMPACTED_PACKAGE} to ${FIX_VERSION}" # [Optional, Default: "FALSE"] # If TRUE, Frogbot creates a single pull request with all the fixes. @@ -126,17 +128,3 @@ jobs: # [Optional, Default: eco-system+frogbot@jfrog.com] # Set the email of the commit author # JF_GIT_EMAIL_AUTHOR: "" - - # [Optional] - # Set the list of allowed licenses - # The full list of licenses can be found in: - # https://github.com/jfrog/frogbot/blob/master/docs/licenses.md - # JF_ALLOWED_LICENSES: "MIT, Apache-2.0" - - # [Optional] - # Avoid adding extra info to pull request comments. that isn't related to the scan findings. - # JF_AVOID_EXTRA_MESSAGES: "TRUE" - - # [Optional] - # Add a title to pull request comments generated by Frogbot. - # JF_PR_COMMENT_TITLE: "" \ No newline at end of file diff --git a/.gitignore b/.gitignore index be50e83c5..2a32b5c93 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,14 @@ -__tests__/runner/* -.idea/* +# IDEs +.idea +.vscode +*.iml + node_modules/.package-lock.json -.DS_Store \ No newline at end of file +__tests__/runner/* + +# Vim +*~ +*.swp + +# IOS +*.DS_Store \ No newline at end of file diff --git a/action.yml b/action.yml index 9bd3ea1f3..f471f4631 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: "JFrog" inputs: version: description: "JFrog CLI Version" - default: "2.62.2" + default: "2.63.0" required: false download-repository: description: "Remote repository in Artifactory pointing to 'https://releases.jfrog.io/artifactory/jfrog-cli'. Use this parameter in case you don't have an Internet access." diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 000000000..a3cf1dcfd --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,104 @@ +{ + "name": "@jfrog/setup-jfrog-cli", + "version": "4.2.2", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@actions/core": { + "version": "1.10.1", + "license": "MIT", + "dependencies": { + "@actions/http-client": "^2.0.1", + "uuid": "^8.3.2" + } + }, + "node_modules/@actions/core/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@actions/exec": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "@actions/io": "^1.0.1" + } + }, + "node_modules/@actions/http-client": { + "version": "2.2.1", + "license": "MIT", + "dependencies": { + "tunnel": "^0.0.6", + "undici": "^5.25.4" + } + }, + "node_modules/@actions/io": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/@actions/tool-cache": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "@actions/core": "^1.2.6", + "@actions/exec": "^1.0.0", + "@actions/http-client": "^2.0.1", + "@actions/io": "^1.1.1", + "semver": "^6.1.0", + "uuid": "^3.3.2" + } + }, + "node_modules/@actions/tool-cache/node_modules/semver": { + "version": "6.3.1", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "license": "MIT", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/undici": { + "version": "5.28.4", + "license": "MIT", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + } + } +} diff --git a/node_modules/semver/README.md b/node_modules/semver/README.md index 673e9c35c..ede7b7d0e 100644 --- a/node_modules/semver/README.md +++ b/node_modules/semver/README.md @@ -459,7 +459,7 @@ strings that they parse. in descending order when passed to `Array.sort()`. * `compareBuild(v1, v2)`: The same as `compare` but considers `build` when two versions are equal. Sorts in ascending order if passed to `Array.sort()`. -* `compareLoose(v1, v2)`: Short for ``compare(v1, v2, { loose: true })`. +* `compareLoose(v1, v2)`: Short for `compare(v1, v2, { loose: true })`. * `diff(v1, v2)`: Returns the difference between two versions by the release type (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), or null if the versions are the same. diff --git a/node_modules/semver/classes/range.js b/node_modules/semver/classes/range.js index 117b45a2b..ceee23144 100644 --- a/node_modules/semver/classes/range.js +++ b/node_modules/semver/classes/range.js @@ -1,3 +1,5 @@ +const SPACE_CHARACTERS = /\s+/g + // hoisted class for cyclic dependency class Range { constructor (range, options) { @@ -18,7 +20,7 @@ class Range { // just put it in the set and return this.raw = range.value this.set = [[range]] - this.format() + this.formatted = undefined return this } @@ -29,10 +31,7 @@ class Range { // First reduce all whitespace as much as possible so we do not have to rely // on potentially slow regexes like \s*. This is then stored and used for // future error messages as well. - this.raw = range - .trim() - .split(/\s+/) - .join(' ') + this.raw = range.trim().replace(SPACE_CHARACTERS, ' ') // First, split on || this.set = this.raw @@ -66,14 +65,29 @@ class Range { } } - this.format() + this.formatted = undefined + } + + get range () { + if (this.formatted === undefined) { + this.formatted = '' + for (let i = 0; i < this.set.length; i++) { + if (i > 0) { + this.formatted += '||' + } + const comps = this.set[i] + for (let k = 0; k < comps.length; k++) { + if (k > 0) { + this.formatted += ' ' + } + this.formatted += comps[k].toString().trim() + } + } + } + return this.formatted } format () { - this.range = this.set - .map((comps) => comps.join(' ').trim()) - .join('||') - .trim() return this.range } diff --git a/node_modules/semver/package.json b/node_modules/semver/package.json index cb8def451..663d3701b 100644 --- a/node_modules/semver/package.json +++ b/node_modules/semver/package.json @@ -1,6 +1,6 @@ { "name": "semver", - "version": "7.6.2", + "version": "7.6.3", "description": "The semantic version parser used by npm.", "main": "index.js", "scripts": { diff --git a/package-lock.json b/package-lock.json index 1dc04a713..3b56a0e41 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "@jfrog/setup-jfrog-cli", "version": "4.2.2", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -14,7 +14,7 @@ "@actions/exec": "~1.1.1", "@actions/http-client": "~2.2.1", "@actions/tool-cache": "~2.0.1", - "semver": "~7.6.2" + "semver": "~7.6.3" }, "devDependencies": { "@types/jest": "^29.5.12", @@ -34,18 +34,9 @@ "npm": ">=10.0.0" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@actions/core": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", - "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", + "license": "MIT", "dependencies": { "@actions/http-client": "^2.0.1", "uuid": "^8.3.2" @@ -67,8 +58,7 @@ }, "node_modules/@actions/http-client": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.1.tgz", - "integrity": "sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==", + "license": "MIT", "dependencies": { "tunnel": "^0.0.6", "undici": "^5.25.4" @@ -98,12 +88,12 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", + "version": "2.3.0", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -111,9 +101,8 @@ }, "node_modules/@babel/code-frame": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/highlight": "^7.24.7", "picocolors": "^1.0.0" @@ -124,18 +113,16 @@ }, "node_modules/@babel/compat-data": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", @@ -171,9 +158,8 @@ }, "node_modules/@babel/generator": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.24.7", "@jridgewell/gen-mapping": "^0.3.5", @@ -186,9 +172,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.24.7", "@babel/helper-validator-option": "^7.24.7", @@ -202,18 +187,16 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-environment-visitor": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.24.7" }, @@ -223,9 +206,8 @@ }, "node_modules/@babel/helper-function-name": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.24.7", "@babel/types": "^7.24.7" @@ -236,9 +218,8 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.24.7" }, @@ -248,9 +229,8 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/traverse": "^7.24.7", "@babel/types": "^7.24.7" @@ -261,9 +241,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-module-imports": "^7.24.7", @@ -280,18 +259,16 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/traverse": "^7.24.7", "@babel/types": "^7.24.7" @@ -302,9 +279,8 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.24.7" }, @@ -314,36 +290,32 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.24.7", "@babel/types": "^7.24.7" @@ -354,9 +326,8 @@ }, "node_modules/@babel/highlight": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", @@ -369,9 +340,8 @@ }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -381,9 +351,8 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -395,42 +364,37 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -440,9 +404,8 @@ }, "node_modules/@babel/parser": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -507,9 +470,8 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.24.7" }, @@ -602,9 +564,8 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", - "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.24.7" }, @@ -617,9 +578,8 @@ }, "node_modules/@babel/template": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.24.7", "@babel/parser": "^7.24.7", @@ -631,9 +591,8 @@ }, "node_modules/@babel/traverse": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.24.7", "@babel/generator": "^7.24.7", @@ -652,18 +611,16 @@ }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/types": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.24.7", "@babel/helper-validator-identifier": "^7.24.7", @@ -675,9 +632,8 @@ }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", @@ -694,7 +650,7 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.6.2", + "version": "4.10.1", "dev": true, "license": "MIT", "engines": { @@ -703,9 +659,8 @@ }, "node_modules/@eslint/eslintrc": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -724,29 +679,45 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@eslint/js": { "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@fastify/busboy": { "version": "2.1.0", - "resolved": "https://entplus.jfrog.io/artifactory/api/npm/bapps-npm-virtual/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", @@ -756,6 +727,26 @@ "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "dev": true, @@ -770,10 +761,8 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -876,9 +865,8 @@ }, "node_modules/@jest/console": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -893,9 +881,8 @@ }, "node_modules/@jest/core": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/reporters": "^29.7.0", @@ -940,9 +927,8 @@ }, "node_modules/@jest/environment": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", @@ -955,9 +941,8 @@ }, "node_modules/@jest/expect": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.7.0", "jest-snapshot": "^29.7.0" @@ -968,9 +953,8 @@ }, "node_modules/@jest/expect-utils": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, + "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3" }, @@ -980,9 +964,8 @@ }, "node_modules/@jest/fake-timers": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", @@ -997,9 +980,8 @@ }, "node_modules/@jest/globals": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -1012,9 +994,8 @@ }, "node_modules/@jest/reporters": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, + "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.7.0", @@ -1053,27 +1034,10 @@ } } }, - "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@jest/schemas": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -1083,9 +1047,8 @@ }, "node_modules/@jest/source-map": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -1097,9 +1060,8 @@ }, "node_modules/@jest/test-result": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", @@ -1112,9 +1074,8 @@ }, "node_modules/@jest/test-sequencer": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", @@ -1127,9 +1088,8 @@ }, "node_modules/@jest/transform": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", @@ -1153,9 +1113,8 @@ }, "node_modules/@jest/types": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -1170,9 +1129,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1183,7 +1141,7 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", + "version": "3.1.2", "dev": true, "license": "MIT", "engines": { @@ -1192,9 +1150,8 @@ }, "node_modules/@jridgewell/set-array": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -1206,9 +1163,8 @@ }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -1248,33 +1204,29 @@ }, "node_modules/@sinclair/typebox": { "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@sinonjs/commons": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "node_modules/@types/babel__core": { "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -1285,18 +1237,16 @@ }, "node_modules/@types/babel__generator": { "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -1304,29 +1254,27 @@ }, "node_modules/@types/babel__traverse": { "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/graceful-fs": { "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", + "version": "2.0.6", "dev": true, "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", + "version": "3.0.3", "dev": true, "license": "MIT", "dependencies": { @@ -1334,7 +1282,7 @@ } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.1", + "version": "3.0.4", "dev": true, "license": "MIT", "dependencies": { @@ -1343,9 +1291,8 @@ }, "node_modules/@types/jest": { "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -1353,28 +1300,29 @@ }, "node_modules/@types/json-schema": { "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "20.4.2", + "version": "20.14.8", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/semver": { "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/stack-utils": { - "version": "2.0.1", + "version": "2.0.3", "dev": true, "license": "MIT" }, "node_modules/@types/yargs": { - "version": "17.0.24", + "version": "17.0.32", "dev": true, "license": "MIT", "dependencies": { @@ -1382,15 +1330,14 @@ } }, "node_modules/@types/yargs-parser": { - "version": "21.0.0", + "version": "21.0.3", "dev": true, "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.5.1", "@typescript-eslint/scope-manager": "6.21.0", @@ -1423,9 +1370,8 @@ }, "node_modules/@typescript-eslint/parser": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/types": "6.21.0", @@ -1451,9 +1397,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0" @@ -1468,9 +1413,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "6.21.0", "@typescript-eslint/utils": "6.21.0", @@ -1495,9 +1439,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -1508,9 +1451,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0", @@ -1534,35 +1476,10 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@typescript-eslint/utils": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", @@ -1585,9 +1502,8 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" @@ -1602,15 +1518,13 @@ }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/acorn": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1620,18 +1534,16 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1645,9 +1557,8 @@ }, "node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -1660,9 +1571,8 @@ }, "node_modules/ansi-escapes/node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -1694,9 +1604,8 @@ }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1707,24 +1616,21 @@ }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/babel-jest": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", @@ -1756,11 +1662,33 @@ "node": ">=8" } }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -1795,9 +1723,8 @@ }, "node_modules/babel-preset-jest": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, + "license": "MIT", "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" @@ -1815,19 +1742,17 @@ "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.11", + "version": "2.0.1", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -1837,8 +1762,6 @@ }, "node_modules/browserslist": { "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", "dev": true, "funding": [ { @@ -1854,6 +1777,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001629", "electron-to-chromium": "^1.4.796", @@ -1880,24 +1804,21 @@ }, "node_modules/bser": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1911,9 +1832,7 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001634", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001634.tgz", - "integrity": "sha512-fbBYXQ9q3+yp1q1gBk86tOFs4pyn/yxFm5ZNP18OXJDfA3txImOY9PhfxVggZ4vRHDqoU8NrKU81eN0OtzOgRA==", + "version": "1.0.30001636", "dev": true, "funding": [ { @@ -1928,7 +1847,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "4.1.2", @@ -1947,15 +1867,14 @@ }, "node_modules/char-regex": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/ci-info": { - "version": "3.8.0", + "version": "3.9.0", "dev": true, "funding": [ { @@ -1970,15 +1889,13 @@ }, "node_modules/cjs-module-lexer": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", - "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -1990,9 +1907,8 @@ }, "node_modules/co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -2000,9 +1916,8 @@ }, "node_modules/collect-v8-coverage": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/color-convert": { "version": "2.0.1", @@ -2032,9 +1947,8 @@ }, "node_modules/create-jest": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -2065,7 +1979,7 @@ } }, "node_modules/debug": { - "version": "4.3.4", + "version": "4.3.5", "dev": true, "license": "MIT", "dependencies": { @@ -2082,9 +1996,8 @@ }, "node_modules/dedent": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, + "license": "MIT", "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, @@ -2101,36 +2014,32 @@ }, "node_modules/deepmerge": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/detect-newline": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/diff-sequences": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -2150,16 +2059,14 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.803", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz", - "integrity": "sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g==", - "dev": true + "version": "1.4.809", + "dev": true, + "license": "ISC" }, "node_modules/emittery": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2169,24 +2076,21 @@ }, "node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/escalade": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2204,9 +2108,8 @@ }, "node_modules/eslint": { "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -2259,9 +2162,8 @@ }, "node_modules/eslint-config-prettier": { "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -2286,9 +2188,8 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -2296,21 +2197,40 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", "dev": true, + "license": "MIT", "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -2365,9 +2285,8 @@ }, "node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -2388,8 +2307,6 @@ }, "node_modules/exit": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -2397,9 +2314,8 @@ }, "node_modules/expect": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", @@ -2413,15 +2329,13 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2435,9 +2349,8 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2456,7 +2369,7 @@ "license": "MIT" }, "node_modules/fastq": { - "version": "1.15.0", + "version": "1.17.1", "dev": true, "license": "ISC", "dependencies": { @@ -2465,9 +2378,8 @@ }, "node_modules/fb-watchman": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } @@ -2485,9 +2397,8 @@ }, "node_modules/fill-range": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2511,11 +2422,12 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", + "version": "3.2.0", "dev": true, "license": "MIT", "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -2523,7 +2435,7 @@ } }, "node_modules/flatted": { - "version": "3.2.7", + "version": "3.3.1", "dev": true, "license": "ISC" }, @@ -2532,25 +2444,10 @@ "dev": true, "license": "ISC" }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2565,9 +2462,8 @@ }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -2582,9 +2478,8 @@ }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2622,11 +2517,30 @@ "node": ">=10.13.0" } }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/globals": { "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -2639,9 +2553,8 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -2677,9 +2590,8 @@ }, "node_modules/hasown": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -2689,21 +2601,21 @@ }, "node_modules/html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/husky": { "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true, "license": "MIT", "bin": { @@ -2717,7 +2629,7 @@ } }, "node_modules/ignore": { - "version": "5.2.4", + "version": "5.3.1", "dev": true, "license": "MIT", "engines": { @@ -2726,9 +2638,8 @@ }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -2742,9 +2653,8 @@ }, "node_modules/import-local": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -2783,17 +2693,18 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.14.0", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2809,18 +2720,16 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2838,9 +2747,8 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -2855,9 +2763,8 @@ }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -2871,7 +2778,7 @@ "license": "ISC" }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", + "version": "3.2.2", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -2879,33 +2786,24 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", + "version": "6.0.2", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "semver": "^7.5.4" }, "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node": ">=10" } }, "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -2917,9 +2815,8 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -2931,9 +2828,8 @@ }, "node_modules/istanbul-reports": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -2944,9 +2840,8 @@ }, "node_modules/jest": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -2970,9 +2865,8 @@ }, "node_modules/jest-changed-files": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", @@ -2984,9 +2878,8 @@ }, "node_modules/jest-circus": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -3015,9 +2908,8 @@ }, "node_modules/jest-cli": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", @@ -3048,9 +2940,8 @@ }, "node_modules/jest-config": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", @@ -3093,9 +2984,8 @@ }, "node_modules/jest-diff": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", @@ -3108,9 +2998,8 @@ }, "node_modules/jest-docblock": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, + "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" }, @@ -3120,9 +3009,8 @@ }, "node_modules/jest-each": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -3136,9 +3024,8 @@ }, "node_modules/jest-environment-node": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -3153,18 +3040,16 @@ }, "node_modules/jest-get-type": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", @@ -3187,9 +3072,8 @@ }, "node_modules/jest-leak-detector": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, + "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" @@ -3200,9 +3084,8 @@ }, "node_modules/jest-matcher-utils": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", @@ -3215,9 +3098,8 @@ }, "node_modules/jest-message-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", @@ -3235,9 +3117,8 @@ }, "node_modules/jest-mock": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -3249,9 +3130,8 @@ }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -3266,18 +3146,16 @@ }, "node_modules/jest-regex-util": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -3295,9 +3173,8 @@ }, "node_modules/jest-resolve-dependencies": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, + "license": "MIT", "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" @@ -3308,9 +3185,8 @@ }, "node_modules/jest-runner": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", @@ -3340,9 +3216,8 @@ }, "node_modules/jest-runtime": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -3373,9 +3248,8 @@ }, "node_modules/jest-snapshot": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -3404,9 +3278,8 @@ }, "node_modules/jest-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -3421,9 +3294,8 @@ }, "node_modules/jest-validate": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", @@ -3438,9 +3310,8 @@ }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -3450,9 +3321,8 @@ }, "node_modules/jest-watcher": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, + "license": "MIT", "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", @@ -3469,9 +3339,8 @@ }, "node_modules/jest-worker": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -3484,9 +3353,8 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3499,15 +3367,13 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -3526,17 +3392,20 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -3554,20 +3423,26 @@ "node": ">=6" } }, + "node_modules/keyv": { + "version": "4.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kleur": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/leven": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3586,9 +3461,8 @@ }, "node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/locate-path": { "version": "6.0.0", @@ -3616,18 +3490,16 @@ }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -3645,34 +3517,31 @@ }, "node_modules/makeerror": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.5", + "version": "4.0.7", "dev": true, "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -3681,22 +3550,24 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/minimatch": { - "version": "3.1.2", + "version": "9.0.3", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ms": { @@ -3711,30 +3582,26 @@ }, "node_modules/node-int64": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-releases": { "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -3752,9 +3619,8 @@ }, "node_modules/onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -3766,16 +3632,16 @@ } }, "node_modules/optionator": { - "version": "0.9.3", + "version": "0.9.4", "dev": true, "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -3819,9 +3685,8 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -3831,9 +3696,8 @@ }, "node_modules/parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -3873,24 +3737,21 @@ }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picocolors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -3913,9 +3774,8 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -3925,9 +3785,8 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -3938,9 +3797,8 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -3950,9 +3808,8 @@ }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -3965,9 +3822,8 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -3985,9 +3841,8 @@ }, "node_modules/prettier": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -4000,9 +3855,8 @@ }, "node_modules/pretty-format": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -4025,9 +3879,8 @@ }, "node_modules/prompts": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -4038,17 +3891,14 @@ }, "node_modules/punycode": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pure-rand": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -4059,7 +3909,8 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ] + ], + "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -4081,24 +3932,22 @@ "license": "MIT" }, "node_modules/react-is": { - "version": "18.2.0", + "version": "18.3.1", "dev": true, "license": "MIT" }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/resolve": { "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -4113,9 +3962,8 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -4125,27 +3973,24 @@ }, "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/resolve.exports": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -4196,9 +4041,10 @@ } }, "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -4232,9 +4078,8 @@ }, "node_modules/sisteransi": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", @@ -4246,18 +4091,16 @@ }, "node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -4289,9 +4132,8 @@ }, "node_modules/string-length": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "license": "MIT", "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -4302,9 +4144,8 @@ }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4327,27 +4168,24 @@ }, "node_modules/strip-bom": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -4368,9 +4206,8 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -4391,6 +4228,26 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/text-table": { "version": "0.2.0", "dev": true, @@ -4398,9 +4255,8 @@ }, "node_modules/tmpl": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/to-fast-properties": { "version": "2.0.0", @@ -4412,9 +4268,8 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -4423,21 +4278,20 @@ } }, "node_modules/ts-api-utils": { - "version": "1.0.1", + "version": "1.3.0", "dev": true, "license": "MIT", "engines": { - "node": ">=16.13.0" + "node": ">=16" }, "peerDependencies": { "typescript": ">=4.2.0" } }, "node_modules/ts-jest": { - "version": "29.1.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.4.tgz", - "integrity": "sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q==", + "version": "29.1.5", "dev": true, + "license": "MIT", "dependencies": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", @@ -4500,18 +4354,16 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -4520,10 +4372,9 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.5.2", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -4534,8 +4385,7 @@ }, "node_modules/undici": { "version": "5.28.4", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", - "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "license": "MIT", "dependencies": { "@fastify/busboy": "^2.0.0" }, @@ -4543,10 +4393,13 @@ "node": ">=14.0" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "dev": true, + "license": "MIT" + }, "node_modules/update-browserslist-db": { "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, "funding": [ { @@ -4562,6 +4415,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.1.2", "picocolors": "^1.0.1" @@ -4575,26 +4429,23 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/uuid": { "version": "3.4.0", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "license": "MIT", "bin": { "uuid": "bin/uuid" } }, "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "version": "9.3.0", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -4606,9 +4457,8 @@ }, "node_modules/walker": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } @@ -4627,11 +4477,18 @@ "node": ">= 8" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -4663,24 +4520,21 @@ }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -4713,3241 +4567,5 @@ "url": "https://github.com/sponsors/sindresorhus" } } - }, - "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "dev": true - }, - "@actions/core": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", - "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", - "requires": { - "@actions/http-client": "^2.0.1", - "uuid": "^8.3.2" - }, - "dependencies": { - "uuid": { - "version": "8.3.2" - } - } - }, - "@actions/exec": { - "version": "1.1.1", - "requires": { - "@actions/io": "^1.0.1" - } - }, - "@actions/http-client": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.1.tgz", - "integrity": "sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==", - "requires": { - "tunnel": "^0.0.6", - "undici": "^5.25.4" - } - }, - "@actions/io": { - "version": "1.1.2" - }, - "@actions/tool-cache": { - "version": "2.0.1", - "requires": { - "@actions/core": "^1.2.6", - "@actions/exec": "^1.0.0", - "@actions/http-client": "^2.0.1", - "@actions/io": "^1.1.1", - "semver": "^6.1.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "semver": { - "version": "6.3.1" - } - } - }, - "@ampproject/remapping": { - "version": "2.2.1", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" - } - }, - "@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", - "dev": true - }, - "@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", - "dev": true, - "requires": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", - "dev": true, - "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", - "dev": true, - "requires": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.7" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", - "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.7" - } - }, - "@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.6.2", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true - }, - "@fastify/busboy": { - "version": "2.1.0", - "resolved": "https://entplus.jfrog.io/artifactory/api/npm/bapps-npm-virtual/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==" - }, - "@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "js-yaml": { - "version": "3.14.1", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "dev": true - }, - "@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "requires": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, - "requires": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - } - }, - "@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, - "requires": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - } - }, - "@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "requires": { - "jest-get-type": "^29.6.3" - } - }, - "@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - } - }, - "@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - } - }, - "@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "dependencies": { - "istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", - "dev": true, - "requires": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - } - } - } - }, - "@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.27.8" - } - }, - "@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - } - }, - "@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "requires": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "requires": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - } - }, - "@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - } - }, - "@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "requires": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0" - } - }, - "@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.7" - } - }, - "@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", - "dev": true, - "requires": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "@types/node": { - "version": "20.4.2", - "dev": true - }, - "@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.1", - "dev": true - }, - "@types/yargs": { - "version": "17.0.24", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/type-utils": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" - } - }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, - "requires": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "requires": { - "fill-range": "^7.1.1" - } - }, - "browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" - } - }, - "bs-logger": { - "version": "0.2.6", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001634", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001634.tgz", - "integrity": "sha512-fbBYXQ9q3+yp1q1gBk86tOFs4pyn/yxFm5ZNP18OXJDfA3txImOY9PhfxVggZ4vRHDqoU8NrKU81eN0OtzOgRA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "ci-info": { - "version": "3.8.0", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", - "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", - "dev": true - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "dev": true - }, - "convert-source-map": { - "version": "2.0.0", - "dev": true - }, - "create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - } - }, - "cross-spawn": { - "version": "7.0.3", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.4", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "dev": true, - "requires": {} - }, - "deep-is": { - "version": "0.1.4", - "dev": true - }, - "deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "electron-to-chromium": { - "version": "1.4.803", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz", - "integrity": "sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g==", - "dev": true - }, - "emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "dev": true - }, - "eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - } - }, - "eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", - "dev": true, - "requires": {} - }, - "eslint-scope": { - "version": "7.2.2", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esprima": { - "version": "4.0.1", - "dev": true - }, - "esquery": { - "version": "1.5.0", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "dev": true - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true - }, - "expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, - "requires": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "dev": true - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "glob": { - "version": "7.2.3", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.11", - "dev": true - }, - "graphemer": { - "version": "1.4.0", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "requires": { - "function-bind": "^1.1.2" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "husky": { - "version": "8.0.3", - "dev": true - }, - "ignore": { - "version": "5.2.4", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "requires": { - "hasown": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.1", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, - "requires": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - } - }, - "jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "requires": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - } - }, - "jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, - "requires": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - } - }, - "jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - } - }, - "jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - } - }, - "jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - } - }, - "jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - } - }, - "jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true - }, - "jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "requires": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - } - }, - "jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - } - }, - "jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - } - }, - "jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true - }, - "jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "requires": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - } - }, - "jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, - "requires": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - } - }, - "jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - } - }, - "jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - } - }, - "jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, - "requires": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "requires": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsesc": { - "version": "2.5.2", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true - }, - "json5": { - "version": "2.2.3", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash.memoize": { - "version": "4.1.2", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "requires": { - "semver": "^7.5.3" - } - }, - "make-error": { - "version": "1.3.6", - "dev": true - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.2", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "once": { - "version": "1.4.0", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.9.3", - "dev": true, - "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - } - }, - "p-limit": { - "version": "3.1.0", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-try": { - "version": "2.2.0", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "dev": true - }, - "pirates": { - "version": "4.0.6", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "prelude-ls": { - "version": "1.2.1", - "dev": true - }, - "prettier": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", - "dev": true - }, - "pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "requires": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true - }, - "pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "dev": true - }, - "react-is": { - "version": "18.2.0", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==" - }, - "shebang-command": { - "version": "2.0.0", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "dev": true - }, - "signal-exit": { - "version": "3.0.7", - "dev": true - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "dev": true - }, - "stack-utils": { - "version": "2.0.6", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "dev": true - } - } - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "test-exclude": { - "version": "6.0.0", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "dev": true - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "ts-api-utils": { - "version": "1.0.1", - "dev": true, - "requires": {} - }, - "ts-jest": { - "version": "29.1.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.4.tgz", - "integrity": "sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" - } - }, - "tunnel": { - "version": "0.0.6" - }, - "type-check": { - "version": "0.4.0", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true - }, - "undici": { - "version": "5.28.4", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", - "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", - "requires": { - "@fastify/busboy": "^2.0.0" - } - }, - "update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", - "dev": true, - "requires": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "uuid": { - "version": "3.4.0" - }, - "v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "which": { - "version": "2.0.2", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "dev": true - }, - "write-file-atomic": { - "version": "4.0.2", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "dev": true - } } } diff --git a/package.json b/package.json index d953b3bfb..395257097 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "@actions/exec": "~1.1.1", "@actions/http-client": "~2.2.1", "@actions/tool-cache": "~2.0.1", - "semver": "~7.6.2" + "semver": "~7.6.3" }, "devDependencies": { "@types/jest": "^29.5.12", diff --git a/test/main.spec.ts b/test/main.spec.ts index 36ab17790..a099cbbb8 100644 --- a/test/main.spec.ts +++ b/test/main.spec.ts @@ -1,7 +1,7 @@ import * as os from 'os'; import * as core from '@actions/core'; -import { Utils, DownloadDetails, JfrogCredentials } from '../src/utils'; +import {Utils, DownloadDetails, JfrogCredentials, JWTTokenData} from '../src/utils'; jest.mock('os'); jest.mock('@actions/core'); @@ -247,51 +247,51 @@ test('User agent', () => { describe('extractTokenUser', () => { it('should extract user from subject starting with jfrt@', () => { - const subject = 'jfrt@/users/johndoe'; - const result = Utils.extractTokenUser(subject); + const subject : string = 'jfrt@/users/johndoe'; + const result : string = Utils.extractTokenUser(subject); expect(result).toBe('johndoe'); }); it('should extract user from subject containing /users/', () => { - const subject = '/users/johndoe'; - const result = Utils.extractTokenUser(subject); + const subject : string = '/users/johndoe'; + const result : string = Utils.extractTokenUser(subject); expect(result).toBe('johndoe'); }); it('should return original subject when it does not start with jfrt@ or contain /users/', () => { - const subject = 'johndoe'; - const result = Utils.extractTokenUser(subject); + const subject : string = 'johndoe'; + const result : string = Utils.extractTokenUser(subject); expect(result).toBe(subject); }); it('should handle empty subject', () => { - const subject = ''; - const result = Utils.extractTokenUser(subject); + const subject : string = ''; + const result : string = Utils.extractTokenUser(subject); expect(result).toBe(subject); }); }); describe('decodeOidcToken', () => { it('should decode valid OIDC token', () => { - const oidcToken = + const oidcToken : string = Buffer.from(JSON.stringify({ sub: 'test' })).toString('base64') + '.eyJzdWIiOiJ0ZXN0In0.' + Buffer.from(JSON.stringify({ sub: 'test' })).toString('base64'); - const result = Utils.decodeOidcToken(oidcToken); + const result : JWTTokenData = Utils.decodeOidcToken(oidcToken); expect(result).toEqual({ sub: 'test' }); }); it('should throw error for OIDC token with invalid format', () => { - const oidcToken = 'invalid.token.format'; + const oidcToken : string = 'invalid.token.format'; expect(() => Utils.decodeOidcToken(oidcToken)).toThrow(SyntaxError); }); it('should throw error for OIDC token without subject', () => { - const oidcToken = + const oidcToken : string = Buffer.from(JSON.stringify({ notSub: 'test' })).toString('base64') + '.eyJub3RTdWIiOiJ0ZXN0In0.' + Buffer.from(JSON.stringify({ notSub: 'test' })).toString('base64'); - expect(() => Utils.decodeOidcToken(oidcToken)).toThrowError('OIDC invalid access token format'); + expect(() => Utils.decodeOidcToken(oidcToken)).toThrow('OIDC invalid access token format'); }); }); @@ -323,8 +323,8 @@ describe('Job Summaries', () => { }); (myCore.exportVariable = jest.fn().mockImplementation((name: string, val: string) => { process.env[name] = val; - })), - Utils.setCliEnv(); + })); + Utils.setCliEnv(); expect(process.env.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR).toBe('/tmp'); }); }); From c0bbcc1b869b22b54c4d3c6aebb654be20939a07 Mon Sep 17 00:00:00 2001 From: Michael Sverdlov Date: Mon, 12 Aug 2024 18:49:33 +0300 Subject: [PATCH 32/56] Improve readme (#181) --- README.md | 168 ++++++++++++++++++++++++++---------------------------- 1 file changed, 80 insertions(+), 88 deletions(-) diff --git a/README.md b/README.md index e1517d71a..0e63b54a1 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ - [Overview](#overview) - [Usage](#usage) -- [Authorization](#authorization) +- [Authentication Methods](#Authentication-Methods) - [Setting the build name and build number when publishing build-info to Artifactory](#setting-the-build-name-and-build-number-when-publishing-build-info-to-artifactory) - [Setting JFrog CLI version](#setting-jfrog-cli-version) - [Setting the JFrog project key](#setting-the-jfrog-project-key) @@ -29,7 +29,7 @@ This GitHub Action downloads, installs and configures [JFrog CLI](https://docs.j Additionally, the Action incorporates the following features when utilizing JFrog CLI to interact with the JFrog Platform: -- Two distinct methods are available for authenticating with the JFrog Platform. Explore more details [here](#authorization) +- Three distinct methods are available for authenticating with the JFrog Platform. Explore more details [here](#Authentication-Methods) - There's no need to add the _build name_ and _build number_ options and arguments to commands which accept them. All build related operations will be automatically recorded with the _Workflow Name_ as build name and _Run Number_ as build number. @@ -38,28 +38,21 @@ Additionally, the Action incorporates the following features when utilizing JFro ```yml - uses: jfrog/setup-jfrog-cli@v4 - run: jf --version +# + Authentication method ``` -## Authorization +## Authentication Methods -JFrog CLI operates in conjunction with the JFrog Platform. In order to facilitate this connection, certain connection details of the JFrog Platform must be provided. -There exist two methods to provide these details, and you only need to choose **one** method: +JFrog CLI integrates with the JFrog Platform. In order to facilitate this connection, certain connection details of the JFrog Platform must be provided. +There exist three methods to provide these details, and you only need to choose **one** method:

- Connecting to JFrog using secrets - -### General -You can choose one of the following two methods to set the connection details to the JFrog Platform as secrets: - -- [Storing the connection details using separate environment variables](#storing-the-connection-details-using-separate-environment-variables) -- [Storing the connection details using single Config Token](#storing-the-connection-details-using-single-config-token) + 🔐 Storing the connection details using environment variables -### Storing the connection details using separate environment variables +### +The connection details of the JFrog platform used by this action can be stored as [GitHub secrets](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository) (or [GitHub Variables](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/variables) for non-secret values) -The connection details of the JFrog platform used by JFrog CLI can be stored as secrets. -You can use one of the following two methods to define and store the JFrog Platform connection details as secrets. - -You can set the connection details to your JFrog Platform by using one of the following environment variables combinations: +You can set the connection details to your JFrog Platform by using one of the following combinations: 1. JF_URL (no authentication) 2. JF_URL + JF_USER + JF_PASSWORD (basic authentication) @@ -70,75 +63,30 @@ You can use these environment variables in your workflow as follows: ```yml - uses: jfrog/setup-jfrog-cli@v4 env: - # JFrog platform url (for example: https://acme.jfrog.io) - JF_URL: ${{ vars.JF_URL }} + # JFrog Platform url + JF_URL: ${{ vars.JF_URL }} # or 'https://acme.jfrog.io' # Basic authentication credentials JF_USER: ${{ secrets.JF_USER }} JF_PASSWORD: ${{ secrets.JF_PASSWORD }} - or + # or # JFrog Platform access token JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }} - run: | jf rt ping ``` -| Important: If both Config Token(`JF_ENV_*`) and separate environment variables(`JF_URL`, ...) are provided, the default config will be the Config Token. To make the above separate environment variables as the default config use `jf c use setup-jfrog-cli-server` | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - -### Storing the connection details using single Config Token - -1. Make sure JFrog CLI is installed on your local machine by running `jf -v`. -2. Configure the details of the JFrog platform by running `jf c add`. -3. Export the details of the JFrog platform you configured, using the server ID you chose. Do this by running `jf c export `. -4. Copy the generated Config Token to the clipboard and save it as a secret on GitHub. - -To use the saved JFrog platform configuration in the workflow, all you need to do it to expose the secret to the workflow. -The secret should be exposed as an environment variable with the _JF*ENV*_ prefix. -Here's how you do this: - -```yml -- uses: jfrog/setup-jfrog-cli@v4 - env: - JF_ENV_1: ${{ secrets.JF_SECRET_ENV_1 }} -- run: | - # Ping the server - jf rt ping -``` - -As you can see in the example above, we created a secret named _JF_SECRET_ENV_1_ and exposed it to the workflow -as the _JF_ENV_1_ environment variable. That's it - the ping command will now ping the configured Artifactory server. - -If you have multiple Config Tokens as secrets, you can use all of them in the workflow as follows: - -```yml -- uses: jfrog/setup-jfrog-cli@v4 - env: - JF_ENV_1: ${{ secrets.JF_SECRET_ENV_1 }} - JF_ENV_2: ${{ secrets.JF_SECRET_ENV_2 }} -- run: | - # Set the utilized JFrog configuration by providing the server ID (configured by the 'jf c add' command). - jf c use local-1 - # Ping local-1 Artifactory server - jf rt ping - # Now use the second sever configuration exposed to the Action. - jf c use local-2 - # Ping local-2 Artifactory server - jf rt ping -``` - -| Important: When exposing more than one JFrog configuration to the Action, you should always add the `jf c use` command to specify the server to use. | -| ---------------------------------------------------------------------------------------------------------------------------------------------------- | -
- Connecting to JFrog using OIDC (OpenID Connect) + 👤 Connecting to JFrog using OIDC (OpenID Connect) ### General The sensitive connection details, such as the access token used by JFrog CLI on the JFrog platform, can be automatically generated by the action instead of storing it as a secret in GitHub. -This is made possible by leveraging the OpenID-Connect (OIDC) protocol. This protocol can authenticate the workflow issuer and supply a valid access token, requiring only the JF_URL environment variable. Learn more about this integration in [this](https://jfrog.com/blog/secure-access-development-jfrog-github-oidc) blog post. +This is made possible by leveraging the OpenID-Connect (OIDC) protocol. +This protocol can authenticate the workflow issuer and supply a valid access token, requiring only the JF_URL environment variable. +Learn more about this integration in [this](https://jfrog.com/blog/secure-access-development-jfrog-github-oidc) blog post. To utilize the OIDC protocol, follow these steps: ### JFrog Platform configuration @@ -152,11 +100,11 @@ To utilize the OIDC protocol, follow these steps: ![Configure OIDC integration](images/configure_oidc_integration.png) | NOTE: | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | The value specified as the 'Provider Name' should be used as the oidc-provider-name input in [Workflow configuration step 2](#workflowstep2) below. | | The 'Audience' field does not represent the 'aud' claim for insertion into the identity-mapping in [Platform configuration step 2](#platformstep2) below. Only the claims included in the Claims Json created during step 2 will be validated. | -
+
2. **Configure an identity mapping**: This phase sets an integration between a particular GitHub repository to the JFrog platform. @@ -173,6 +121,8 @@ To utilize the OIDC protocol, follow these steps: } ``` + + ### Workflow configuration 1. **Set required permissions**: In the course of the protocol's execution, it's imperative to acquire a JSON Web Token (JWT) from GitHub's OIDC provider. To request this token, it's essential to configure the specified permission in the workflow file: @@ -182,7 +132,7 @@ To utilize the OIDC protocol, follow these steps: id-token: write ``` -
+
2. **Pass the 'oidc-provider-name' input to the Action (Required)**: The 'oidc-provider-name' parameter designates the OIDC configuration whose one of its identity mapping should align with the generated JWT claims. This input needs to align with the 'Provider Name' value established within the OIDC configuration in the JFrog Platform. 3. **Pass the 'oidc-audience' input to the Action (Optional)**: The 'oidc-audience' input defines the intended recipients of an ID token (JWT), ensuring access is restricted to authorized recipients for the JFrog Platform. By default, it contains the URL of the GitHub repository owner. It enforces a condition, allowing only workflows within the designated repository/organization to request an access token. Read more about it [here](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#customizing-the-audience-value). @@ -201,6 +151,58 @@ Example step utilizing OpenID Connect:
+
+ ⚙️ Storing the connection details using single Config Token + +### + +1. Make sure JFrog CLI is installed on your local machine by running `jf -v`. +2. Configure the details of the JFrog platform by running `jf c add`. +3. Export the details of the JFrog platform you configured, using the server ID you chose. Do this by running `jf c export `. +4. Copy the generated Config Token to the clipboard and save it as a secret on GitHub. + +To use the saved JFrog platform configuration in the workflow, all you need to do it to expose the secret to the workflow. +The secret should be exposed as an environment variable with the _JF*ENV*_ prefix. +Here's how you do this: + +```yml +- uses: jfrog/setup-jfrog-cli@v4 + env: + JF_ENV_1: ${{ secrets.JF_SECRET_ENV_1 }} +- run: | + # Ping the server + jf rt ping +``` + +As you can see in the example above, we created a secret named _JF_SECRET_ENV_1_ and exposed it to the workflow +as the _JF_ENV_1_ environment variable. That's it - the ping command will now ping the configured Artifactory server. + +If you have multiple Config Tokens as secrets, you can use all of them in the workflow as follows: + +```yml +- uses: jfrog/setup-jfrog-cli@v4 + env: + JF_ENV_1: ${{ secrets.JF_SECRET_ENV_1 }} + JF_ENV_2: ${{ secrets.JF_SECRET_ENV_2 }} +- run: | + # Set the utilized JFrog configuration by providing the server ID (configured by the 'jf c add' command). + jf c use local-1 + # Ping local-1 Artifactory server + jf rt ping + # Now use the second sever configuration exposed to the Action. + jf c use local-2 + # Ping local-2 Artifactory server + jf rt ping +``` + +| Important: When exposing more than one JFrog configuration to the Action, you should always add the `jf c use` command to specify the server to use. | +|------------------------------------------------------------------------------------------------------------------------------------------------------| + +| Important: If both Config Token(`JF_ENV_*`) and separate environment variables(`JF_URL`, ...) are provided, the default config will be the Config Token. To make the above separate environment variables as the default config use `jf c use setup-jfrog-cli-server` | +|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + +
+ ## Setting the build name and build number when publishing build-info to Artifactory The Action automatically sets the following environment variables: @@ -212,9 +214,9 @@ are registered as the build artifacts. ```yml - run: | - jf rt dl artifacts/ - jf rt u aether artifacts/ - jf rt bp + jf rt download "my-repo/artifacts/*" local-dir/ + jf rt upload "local-dir/*" new-repo/my-artifacts/ + jf rt build-publish ``` You may override the default build name and number by setting the above variables in your workflow. @@ -238,7 +240,7 @@ It is also possible to set the latest JFrog CLI version by adding the _version_ ``` | Important: Only JFrog CLI versions 1.46.4 or above are supported. | -| ----------------------------------------------------------------- | +|-------------------------------------------------------------------| ## Setting the JFrog project key @@ -268,22 +270,12 @@ Here's how you do this: env: # JFrog platform url (for example: https://acme.jfrog.io) JF_URL: ${{ vars.JF_URL }} + JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }} - # Basic authentication credentials - JF_USER: ${{ secrets.JF_USER }} - JF_PASSWORD: ${{ secrets.JF_PASSWORD }} - - # JFrog platform access token (if JF_USER and JF_PASSWORD are not provided) - # JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }} - - # Same can be achieved with a Config Token using JF_ENV_1 environment variable - # JF_ENV_1: ${{ secrets.JF_SECRET_ENV_1 }} with: download-repository: jfrog-cli-remote ``` -- See instructions for configuring the JFrog connection details under [Storing JFrog connection details as secrets](#storing-jfrog-connection-details-as-secrets). - ## JFrog Job Summary Jobs using this GitHub action will output a summary of some of the key commands that were performed using JFrog CLI. @@ -293,7 +285,7 @@ The summary can be viewed from the GitHub Actions run page and is enabled by def ### Preconditions To fully leverage from the JFrog Job Summary, one should: 1. Use JFrog CLI version 2.62.0 or above. -2. Set `JF_URL` as a variable rather than a secret (see note below). +2. Set `JF_URL` as a [GitHub Variable](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/variables) rather than a [GitHub secret](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository) (see note below). 3. [Collect build info](https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/build-integration) and [publish](https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/build-integration#publishing-build-info) it using JFrog CLI. > **_NOTE:_** The Job Summary includes direct links to the JFrog Platform UI. From fb032f7216b9288b1c2ec454a9994c5849fcce6d Mon Sep 17 00:00:00 2001 From: Michael Sverdlov Date: Sun, 18 Aug 2024 16:28:29 +0300 Subject: [PATCH 33/56] Update JFrog CLI default version to 2.63.2 (#187) --- action.yml | 2 +- test/main.spec.ts | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/action.yml b/action.yml index f471f4631..80ff837aa 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: "JFrog" inputs: version: description: "JFrog CLI Version" - default: "2.63.0" + default: "2.63.2" required: false download-repository: description: "Remote repository in Artifactory pointing to 'https://releases.jfrog.io/artifactory/jfrog-cli'. Use this parameter in case you don't have an Internet access." diff --git a/test/main.spec.ts b/test/main.spec.ts index a099cbbb8..f91f6712c 100644 --- a/test/main.spec.ts +++ b/test/main.spec.ts @@ -1,7 +1,7 @@ import * as os from 'os'; import * as core from '@actions/core'; -import {Utils, DownloadDetails, JfrogCredentials, JWTTokenData} from '../src/utils'; +import { Utils, DownloadDetails, JfrogCredentials, JWTTokenData } from '../src/utils'; jest.mock('os'); jest.mock('@actions/core'); @@ -247,47 +247,47 @@ test('User agent', () => { describe('extractTokenUser', () => { it('should extract user from subject starting with jfrt@', () => { - const subject : string = 'jfrt@/users/johndoe'; - const result : string = Utils.extractTokenUser(subject); + const subject: string = 'jfrt@/users/johndoe'; + const result: string = Utils.extractTokenUser(subject); expect(result).toBe('johndoe'); }); it('should extract user from subject containing /users/', () => { - const subject : string = '/users/johndoe'; - const result : string = Utils.extractTokenUser(subject); + const subject: string = '/users/johndoe'; + const result: string = Utils.extractTokenUser(subject); expect(result).toBe('johndoe'); }); it('should return original subject when it does not start with jfrt@ or contain /users/', () => { - const subject : string = 'johndoe'; - const result : string = Utils.extractTokenUser(subject); + const subject: string = 'johndoe'; + const result: string = Utils.extractTokenUser(subject); expect(result).toBe(subject); }); it('should handle empty subject', () => { - const subject : string = ''; - const result : string = Utils.extractTokenUser(subject); + const subject: string = ''; + const result: string = Utils.extractTokenUser(subject); expect(result).toBe(subject); }); }); describe('decodeOidcToken', () => { it('should decode valid OIDC token', () => { - const oidcToken : string = + const oidcToken: string = Buffer.from(JSON.stringify({ sub: 'test' })).toString('base64') + '.eyJzdWIiOiJ0ZXN0In0.' + Buffer.from(JSON.stringify({ sub: 'test' })).toString('base64'); - const result : JWTTokenData = Utils.decodeOidcToken(oidcToken); + const result: JWTTokenData = Utils.decodeOidcToken(oidcToken); expect(result).toEqual({ sub: 'test' }); }); it('should throw error for OIDC token with invalid format', () => { - const oidcToken : string = 'invalid.token.format'; + const oidcToken: string = 'invalid.token.format'; expect(() => Utils.decodeOidcToken(oidcToken)).toThrow(SyntaxError); }); it('should throw error for OIDC token without subject', () => { - const oidcToken : string = + const oidcToken: string = Buffer.from(JSON.stringify({ notSub: 'test' })).toString('base64') + '.eyJub3RTdWIiOiJ0ZXN0In0.' + Buffer.from(JSON.stringify({ notSub: 'test' })).toString('base64'); @@ -321,9 +321,9 @@ describe('Job Summaries', () => { myCore.getBooleanInput = jest.fn().mockImplementation(() => { return false; }); - (myCore.exportVariable = jest.fn().mockImplementation((name: string, val: string) => { + myCore.exportVariable = jest.fn().mockImplementation((name: string, val: string) => { process.env[name] = val; - })); + }); Utils.setCliEnv(); expect(process.env.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR).toBe('/tmp'); }); From c4e76b5f51c34ce0caa7cebc298c9d9c012d49cd Mon Sep 17 00:00:00 2001 From: Michael Sverdlov Date: Mon, 19 Aug 2024 12:15:17 +0300 Subject: [PATCH 34/56] Handle JFrog CLI `latest` version missing path on cleanup (#188) --- .github/workflows/test.yml | 10 +++++++-- lib/cleanup.js | 13 ++++++++++-- lib/utils.js | 40 +++++++++++++----------------------- src/cleanup.ts | 15 ++++++++++++-- src/utils.ts | 42 ++++++++++++++------------------------ 5 files changed, 61 insertions(+), 59 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d630690f1..fdb2d838f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,6 +1,11 @@ name: "Test" -on: [push, pull_request] - +on: + push: + branches: + - '**' + tags-ignore: + - '**' + pull_request: jobs: test: runs-on: ${{ matrix.os }} @@ -16,6 +21,7 @@ jobs: # Checkout and install prerequisites - name: Checkout uses: actions/checkout@v4 + - name: Setup NodeJS uses: actions/setup-node@v4 with: diff --git a/lib/cleanup.js b/lib/cleanup.js index 8a2b236b4..0b8d5cd07 100644 --- a/lib/cleanup.js +++ b/lib/cleanup.js @@ -37,8 +37,7 @@ const utils_1 = require("./utils"); function cleanup() { return __awaiter(this, void 0, void 0, function* () { try { - core.startGroup('Cleanup JFrog CLI servers configuration'); - if (!utils_1.Utils.addCachedCliToPath()) { + if (!addCachedCliToPath()) { return; } yield utils_1.Utils.removeJFrogServers(); @@ -54,4 +53,14 @@ function cleanup() { } }); } +function addCachedCliToPath() { + // Get the JFrog CLI path from step state. saveState/getState are methods to pass data between a step, and it's cleanup function. + const jfrogCliPath = core.getState(utils_1.Utils.JFROG_CLI_PATH_STATE); + if (!jfrogCliPath) { + // This means that the JFrog CLI was not installed in the first place, because there was a failure in the installation step. + return false; + } + core.addPath(jfrogCliPath); + return true; +} cleanup(); diff --git a/lib/utils.js b/lib/utils.js index 27a08a7fa..e0a41575d 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -39,9 +39,9 @@ const http_client_1 = require("@actions/http-client"); const toolCache = __importStar(require("@actions/tool-cache")); const fs_1 = require("fs"); const os_1 = require("os"); +const path = __importStar(require("path")); const path_1 = require("path"); const semver_1 = require("semver"); -const path = __importStar(require("path")); var MarkdownSection; (function (MarkdownSection) { MarkdownSection["Upload"] = "upload"; @@ -225,28 +225,14 @@ class Utils { let downloadDetails = Utils.extractDownloadDetails(cliRemote, jfrogCredentials); let url = Utils.getCliUrl(major, version, jfrogFileName, downloadDetails); core.info('Downloading JFrog CLI from ' + url); - let downloadDir = yield toolCache.downloadTool(url, undefined, downloadDetails.auth); + let downloadedExecutable = yield toolCache.downloadTool(url, undefined, downloadDetails.auth); // Cache 'jf' and 'jfrog' executables - yield this.cacheAndAddPath(downloadDir, version, jfFileName); - yield this.cacheAndAddPath(downloadDir, version, jfrogFileName); + yield this.cacheAndAddPath(downloadedExecutable, version, jfFileName); + yield this.cacheAndAddPath(downloadedExecutable, version, jfrogFileName); + // Save the JFrog CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and it's cleanup function. + core.saveState(Utils.JFROG_CLI_PATH_STATE, toolCache.find(jfFileName, version)); }); } - /** - * Fetch the JFrog CLI path from the tool cache and append it to the PATH environment variable. Employ this approach during the cleanup phase. - */ - static addCachedCliToPath() { - let version = core.getInput(Utils.CLI_VERSION_ARG); - if (version === Utils.LATEST_CLI_VERSION) { - version = Utils.LATEST_RELEASE_VERSION; - } - let jfrogCliPath = toolCache.find(Utils.getJfExecutableName(), version); - if (!jfrogCliPath) { - core.warning(`Could not find JFrog CLI version '${version}' in tool cache`); - return false; - } - core.addPath(jfrogCliPath); - return true; - } /** * Try to load the JFrog CLI executables from cache. * @@ -270,13 +256,13 @@ class Utils { } /** * Add JFrog CLI executables to cache and to the system path. - * @param downloadDir - The directory whereby the CLI was downloaded to - * @param version - JFrog CLI version - * @param fileName - 'jf', 'jfrog', 'jf.exe', or 'jfrog.exe' + * @param downloadedExecutable - Path to the downloaded JFrog CLI executable + * @param version - JFrog CLI version + * @param fileName - 'jf', 'jfrog', 'jf.exe', or 'jfrog.exe' */ - static cacheAndAddPath(downloadDir, version, fileName) { + static cacheAndAddPath(downloadedExecutable, version, fileName) { return __awaiter(this, void 0, void 0, function* () { - let cliDir = yield toolCache.cacheFile(downloadDir, fileName, fileName, version); + let cliDir = yield toolCache.cacheFile(downloadedExecutable, fileName, fileName, version); if (!Utils.isWindows()) { (0, fs_1.chmodSync)((0, path_1.join)(cliDir, fileName), 0o555); } @@ -625,6 +611,8 @@ Utils.MIN_CLI_VERSION = '1.46.4'; Utils.LATEST_CLI_VERSION = 'latest'; // The value in the download URL to set to get the latest version Utils.LATEST_RELEASE_VERSION = '[RELEASE]'; +// State name for saving JFrog CLI path to use on cleanup +Utils.JFROG_CLI_PATH_STATE = 'JFROG_CLI_PATH_STATE'; // The default server id name for separate env config Utils.SETUP_JFROG_CLI_SERVER_ID = 'setup-jfrog-cli-server'; // Directory name which holds markdown files for the Workflow summary @@ -644,5 +632,5 @@ Utils.CLI_REMOTE_ARG = 'download-repository'; Utils.OIDC_AUDIENCE_ARG = 'oidc-audience'; // OpenID Connect provider_name input Utils.OIDC_INTEGRATION_PROVIDER_NAME = 'oidc-provider-name'; -// Job Summaries feature flag +// Job Summaries feature disable flag Utils.JOB_SUMMARY_DISABLE = 'disable-job-summary'; diff --git a/src/cleanup.ts b/src/cleanup.ts index 53b956eb2..7728cc4f2 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -3,10 +3,10 @@ import { Utils } from './utils'; async function cleanup() { try { - core.startGroup('Cleanup JFrog CLI servers configuration'); - if (!Utils.addCachedCliToPath()) { + if (!addCachedCliToPath()) { return; } + await Utils.removeJFrogServers(); if (!core.getBooleanInput(Utils.JOB_SUMMARY_DISABLE)) { await Utils.generateWorkflowSummaryMarkdown(); @@ -18,4 +18,15 @@ async function cleanup() { } } +function addCachedCliToPath(): boolean { + // Get the JFrog CLI path from step state. saveState/getState are methods to pass data between a step, and it's cleanup function. + const jfrogCliPath: string = core.getState(Utils.JFROG_CLI_PATH_STATE); + if (!jfrogCliPath) { + // This means that the JFrog CLI was not installed in the first place, because there was a failure in the installation step. + return false; + } + core.addPath(jfrogCliPath); + return true; +} + cleanup(); diff --git a/src/utils.ts b/src/utils.ts index 2d1bb05df..b1c5cfb28 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,13 +1,13 @@ import * as core from '@actions/core'; -import { exec } from '@actions/exec'; +import {exec} from '@actions/exec'; import { HttpClient, HttpClientResponse } from '@actions/http-client'; import * as toolCache from '@actions/tool-cache'; import { chmodSync, existsSync, promises as fs } from 'fs'; import { OutgoingHttpHeaders } from 'http'; import { arch, platform } from 'os'; +import * as path from 'path'; import { join } from 'path'; import { lt } from 'semver'; -import * as path from 'path'; export enum MarkdownSection { Upload = 'upload', @@ -32,6 +32,8 @@ export class Utils { private static readonly LATEST_CLI_VERSION: string = 'latest'; // The value in the download URL to set to get the latest version private static readonly LATEST_RELEASE_VERSION: string = '[RELEASE]'; + // State name for saving JFrog CLI path to use on cleanup + public static readonly JFROG_CLI_PATH_STATE: string = 'JFROG_CLI_PATH_STATE'; // The default server id name for separate env config public static readonly SETUP_JFROG_CLI_SERVER_ID: string = 'setup-jfrog-cli-server'; // Directory name which holds markdown files for the Workflow summary @@ -52,7 +54,7 @@ export class Utils { private static readonly OIDC_AUDIENCE_ARG: string = 'oidc-audience'; // OpenID Connect provider_name input private static readonly OIDC_INTEGRATION_PROVIDER_NAME: string = 'oidc-provider-name'; - // Job Summaries feature flag + // Job Summaries feature disable flag public static readonly JOB_SUMMARY_DISABLE: string = 'disable-job-summary'; /** @@ -243,28 +245,14 @@ export class Utils { let downloadDetails: DownloadDetails = Utils.extractDownloadDetails(cliRemote, jfrogCredentials); let url: string = Utils.getCliUrl(major, version, jfrogFileName, downloadDetails); core.info('Downloading JFrog CLI from ' + url); - let downloadDir: string = await toolCache.downloadTool(url, undefined, downloadDetails.auth); + let downloadedExecutable: string = await toolCache.downloadTool(url, undefined, downloadDetails.auth); // Cache 'jf' and 'jfrog' executables - await this.cacheAndAddPath(downloadDir, version, jfFileName); - await this.cacheAndAddPath(downloadDir, version, jfrogFileName); - } + await this.cacheAndAddPath(downloadedExecutable, version, jfFileName); + await this.cacheAndAddPath(downloadedExecutable, version, jfrogFileName); - /** - * Fetch the JFrog CLI path from the tool cache and append it to the PATH environment variable. Employ this approach during the cleanup phase. - */ - public static addCachedCliToPath(): boolean { - let version: string = core.getInput(Utils.CLI_VERSION_ARG); - if (version === Utils.LATEST_CLI_VERSION) { - version = Utils.LATEST_RELEASE_VERSION; - } - let jfrogCliPath: string = toolCache.find(Utils.getJfExecutableName(), version); - if (!jfrogCliPath) { - core.warning(`Could not find JFrog CLI version '${version}' in tool cache`); - return false; - } - core.addPath(jfrogCliPath); - return true; + // Save the JFrog CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and it's cleanup function. + core.saveState(Utils.JFROG_CLI_PATH_STATE, toolCache.find(jfFileName, version)); } /** @@ -291,12 +279,12 @@ export class Utils { /** * Add JFrog CLI executables to cache and to the system path. - * @param downloadDir - The directory whereby the CLI was downloaded to - * @param version - JFrog CLI version - * @param fileName - 'jf', 'jfrog', 'jf.exe', or 'jfrog.exe' + * @param downloadedExecutable - Path to the downloaded JFrog CLI executable + * @param version - JFrog CLI version + * @param fileName - 'jf', 'jfrog', 'jf.exe', or 'jfrog.exe' */ - private static async cacheAndAddPath(downloadDir: string, version: string, fileName: string) { - let cliDir: string = await toolCache.cacheFile(downloadDir, fileName, fileName, version); + private static async cacheAndAddPath(downloadedExecutable: string, version: string, fileName: string) { + let cliDir: string = await toolCache.cacheFile(downloadedExecutable, fileName, fileName, version); if (!Utils.isWindows()) { chmodSync(join(cliDir, fileName), 0o555); From 2a8318a72f140bb97afe5d7b48692ad15521f0fd Mon Sep 17 00:00:00 2001 From: Michael Sverdlov Date: Tue, 20 Aug 2024 17:39:21 +0300 Subject: [PATCH 35/56] Improve cleanup code (#189) --- .github/workflows/test.yml | 11 ++++++----- lib/cleanup.js | 7 ++++--- lib/utils.js | 25 ++++++++++++++----------- src/cleanup.ts | 7 ++++--- src/utils.ts | 30 +++++++++++++++++------------- 5 files changed, 45 insertions(+), 35 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fdb2d838f..b77ea2bca 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,14 +8,15 @@ on: pull_request: jobs: test: + name: Test (${{ matrix.os }}) - (CLI ${{ matrix.cli-version || 'default' }}) runs-on: ${{ matrix.os }} env: JF_ENV_LOCAL: eyJ2ZXJzaW9uIjoxLCJ1cmwiOiJodHRwOi8vMTI3LjAuMC4xOjgwODEvYXJ0aWZhY3RvcnkvIiwidXNlciI6ImFkbWluIiwicGFzc3dvcmQiOiJBUEI3REVaUlBpSHFIRFRRb2tMa3g5aGh6S1QiLCJzZXJ2ZXJJZCI6ImxvY2FsIn0= strategy: matrix: - os: [ubuntu-latest, windows-latest, macos-13] - version: ["", "latest", "1.46.4"] + os: [ ubuntu-latest, windows-latest, macos-13 ] + cli-version: [ "", "latest", "1.46.4" ] fail-fast: false steps: # Checkout and install prerequisites @@ -29,12 +30,12 @@ jobs: # Run action according to the input version - name: Setup JFrog CLI - if: matrix.version != '' + if: matrix.cli-version != '' uses: ./ with: - version: ${{ matrix.version }} + version: ${{ matrix.cli-version }} - name: Setup default JFrog CLI - if: matrix.version == '' + if: matrix.cli-version == '' uses: ./ # Run --version diff --git a/lib/cleanup.js b/lib/cleanup.js index 0b8d5cd07..e339bbbdf 100644 --- a/lib/cleanup.js +++ b/lib/cleanup.js @@ -37,7 +37,8 @@ const utils_1 = require("./utils"); function cleanup() { return __awaiter(this, void 0, void 0, function* () { try { - if (!addCachedCliToPath()) { + if (!addCachedJfToPath()) { + core.error('Could not find JFrog CLI path in the step state. Skipping cleanup.'); return; } yield utils_1.Utils.removeJFrogServers(); @@ -53,9 +54,9 @@ function cleanup() { } }); } -function addCachedCliToPath() { +function addCachedJfToPath() { // Get the JFrog CLI path from step state. saveState/getState are methods to pass data between a step, and it's cleanup function. - const jfrogCliPath = core.getState(utils_1.Utils.JFROG_CLI_PATH_STATE); + const jfrogCliPath = core.getState(utils_1.Utils.JF_CLI_PATH_STATE); if (!jfrogCliPath) { // This means that the JFrog CLI was not installed in the first place, because there was a failure in the installation step. return false; diff --git a/lib/utils.js b/lib/utils.js index e0a41575d..7b9116e9f 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -227,10 +227,7 @@ class Utils { core.info('Downloading JFrog CLI from ' + url); let downloadedExecutable = yield toolCache.downloadTool(url, undefined, downloadDetails.auth); // Cache 'jf' and 'jfrog' executables - yield this.cacheAndAddPath(downloadedExecutable, version, jfFileName); - yield this.cacheAndAddPath(downloadedExecutable, version, jfrogFileName); - // Save the JFrog CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and it's cleanup function. - core.saveState(Utils.JFROG_CLI_PATH_STATE, toolCache.find(jfFileName, version)); + yield this.cacheAndAddPath(downloadedExecutable, version, jfFileName, jfrogFileName); }); } /** @@ -258,15 +255,21 @@ class Utils { * Add JFrog CLI executables to cache and to the system path. * @param downloadedExecutable - Path to the downloaded JFrog CLI executable * @param version - JFrog CLI version - * @param fileName - 'jf', 'jfrog', 'jf.exe', or 'jfrog.exe' + * @param jfFileName - 'jf' or 'jf.exe' + * @param jfrogFileName - 'jfrog' or 'jfrog.exe' */ - static cacheAndAddPath(downloadedExecutable, version, fileName) { + static cacheAndAddPath(downloadedExecutable, version, jfFileName, jfrogFileName) { return __awaiter(this, void 0, void 0, function* () { - let cliDir = yield toolCache.cacheFile(downloadedExecutable, fileName, fileName, version); + let jfCacheDir = yield toolCache.cacheFile(downloadedExecutable, jfFileName, jfFileName, version); + core.addPath(jfCacheDir); + let jfrogCacheDir = yield toolCache.cacheFile(downloadedExecutable, jfrogFileName, jfrogFileName, version); + core.addPath(jfrogCacheDir); if (!Utils.isWindows()) { - (0, fs_1.chmodSync)((0, path_1.join)(cliDir, fileName), 0o555); + (0, fs_1.chmodSync)((0, path_1.join)(jfCacheDir, jfFileName), 0o555); + (0, fs_1.chmodSync)((0, path_1.join)(jfrogCacheDir, jfrogFileName), 0o555); } - core.addPath(cliDir); + // Save the JF CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and it's cleanup function. + core.saveState(Utils.JF_CLI_PATH_STATE, jfCacheDir); }); } static getCliUrl(major, version, fileName, downloadDetails) { @@ -611,8 +614,8 @@ Utils.MIN_CLI_VERSION = '1.46.4'; Utils.LATEST_CLI_VERSION = 'latest'; // The value in the download URL to set to get the latest version Utils.LATEST_RELEASE_VERSION = '[RELEASE]'; -// State name for saving JFrog CLI path to use on cleanup -Utils.JFROG_CLI_PATH_STATE = 'JFROG_CLI_PATH_STATE'; +// State name for saving JF CLI path to use on cleanup +Utils.JF_CLI_PATH_STATE = 'JF_CLI_PATH_STATE'; // The default server id name for separate env config Utils.SETUP_JFROG_CLI_SERVER_ID = 'setup-jfrog-cli-server'; // Directory name which holds markdown files for the Workflow summary diff --git a/src/cleanup.ts b/src/cleanup.ts index 7728cc4f2..6170b1eba 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -3,7 +3,8 @@ import { Utils } from './utils'; async function cleanup() { try { - if (!addCachedCliToPath()) { + if (!addCachedJfToPath()) { + core.error('Could not find JFrog CLI path in the step state. Skipping cleanup.'); return; } @@ -18,9 +19,9 @@ async function cleanup() { } } -function addCachedCliToPath(): boolean { +function addCachedJfToPath(): boolean { // Get the JFrog CLI path from step state. saveState/getState are methods to pass data between a step, and it's cleanup function. - const jfrogCliPath: string = core.getState(Utils.JFROG_CLI_PATH_STATE); + const jfrogCliPath: string = core.getState(Utils.JF_CLI_PATH_STATE); if (!jfrogCliPath) { // This means that the JFrog CLI was not installed in the first place, because there was a failure in the installation step. return false; diff --git a/src/utils.ts b/src/utils.ts index b1c5cfb28..3fbcc9d7c 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,5 +1,5 @@ import * as core from '@actions/core'; -import {exec} from '@actions/exec'; +import { exec } from '@actions/exec'; import { HttpClient, HttpClientResponse } from '@actions/http-client'; import * as toolCache from '@actions/tool-cache'; import { chmodSync, existsSync, promises as fs } from 'fs'; @@ -32,8 +32,8 @@ export class Utils { private static readonly LATEST_CLI_VERSION: string = 'latest'; // The value in the download URL to set to get the latest version private static readonly LATEST_RELEASE_VERSION: string = '[RELEASE]'; - // State name for saving JFrog CLI path to use on cleanup - public static readonly JFROG_CLI_PATH_STATE: string = 'JFROG_CLI_PATH_STATE'; + // State name for saving JF CLI path to use on cleanup + public static readonly JF_CLI_PATH_STATE: string = 'JF_CLI_PATH_STATE'; // The default server id name for separate env config public static readonly SETUP_JFROG_CLI_SERVER_ID: string = 'setup-jfrog-cli-server'; // Directory name which holds markdown files for the Workflow summary @@ -248,11 +248,7 @@ export class Utils { let downloadedExecutable: string = await toolCache.downloadTool(url, undefined, downloadDetails.auth); // Cache 'jf' and 'jfrog' executables - await this.cacheAndAddPath(downloadedExecutable, version, jfFileName); - await this.cacheAndAddPath(downloadedExecutable, version, jfrogFileName); - - // Save the JFrog CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and it's cleanup function. - core.saveState(Utils.JFROG_CLI_PATH_STATE, toolCache.find(jfFileName, version)); + await this.cacheAndAddPath(downloadedExecutable, version, jfFileName, jfrogFileName); } /** @@ -281,15 +277,23 @@ export class Utils { * Add JFrog CLI executables to cache and to the system path. * @param downloadedExecutable - Path to the downloaded JFrog CLI executable * @param version - JFrog CLI version - * @param fileName - 'jf', 'jfrog', 'jf.exe', or 'jfrog.exe' + * @param jfFileName - 'jf' or 'jf.exe' + * @param jfrogFileName - 'jfrog' or 'jfrog.exe' */ - private static async cacheAndAddPath(downloadedExecutable: string, version: string, fileName: string) { - let cliDir: string = await toolCache.cacheFile(downloadedExecutable, fileName, fileName, version); + private static async cacheAndAddPath(downloadedExecutable: string, version: string, jfFileName: string, jfrogFileName: string) { + let jfCacheDir: string = await toolCache.cacheFile(downloadedExecutable, jfFileName, jfFileName, version); + core.addPath(jfCacheDir); + + let jfrogCacheDir: string = await toolCache.cacheFile(downloadedExecutable, jfrogFileName, jfrogFileName, version); + core.addPath(jfrogCacheDir); if (!Utils.isWindows()) { - chmodSync(join(cliDir, fileName), 0o555); + chmodSync(join(jfCacheDir, jfFileName), 0o555); + chmodSync(join(jfrogCacheDir, jfrogFileName), 0o555); } - core.addPath(cliDir); + + // Save the JF CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and it's cleanup function. + core.saveState(Utils.JF_CLI_PATH_STATE, jfCacheDir); } public static getCliUrl(major: string, version: string, fileName: string, downloadDetails: DownloadDetails): string { From a978f6e1f2aef9a8404e44ad82265c8a237e86bc Mon Sep 17 00:00:00 2001 From: Michael Sverdlov Date: Sun, 1 Sep 2024 10:52:29 +0300 Subject: [PATCH 36/56] Automatic `build-add-git` & `build-publish` on post job run (#185) --- .github/workflows/auto-build-publish-test.yml | 77 ++++++++++++++++++ action.yml | 4 + lib/cleanup.js | 73 +++++++++++++++-- lib/utils.js | 40 ++++++++-- src/cleanup.ts | 78 +++++++++++++++++-- src/utils.ts | 42 ++++++++-- test/main.spec.ts | 6 +- 7 files changed, 292 insertions(+), 28 deletions(-) create mode 100644 .github/workflows/auto-build-publish-test.yml diff --git a/.github/workflows/auto-build-publish-test.yml b/.github/workflows/auto-build-publish-test.yml new file mode 100644 index 000000000..9753a4cd9 --- /dev/null +++ b/.github/workflows/auto-build-publish-test.yml @@ -0,0 +1,77 @@ +name: Auto Build Publish Test +on: + push: + branches: + - master + # Triggers the workflow on labeled PRs only. + pull_request_target: + types: [ labeled ] +# Ensures that only the latest commit is running for each PR at a time. +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + Auto-Build-Publish-Test: + if: contains(github.event.pull_request.labels.*.name, 'safe to test') || github.event_name == 'push' + strategy: + fail-fast: false + matrix: + os: [ ubuntu, windows, macos ] + runs-on: ${{ matrix.os }}-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Setup Go with cache + uses: jfrog/.github/actions/install-go-with-cache@main + + - name: Install local Artifactory + uses: jfrog/.github/actions/install-local-artifactory@main + with: + RTLIC: ${{ secrets.RTLIC }} + + - name: Post Step to Test the Auto Build-Publish post step + uses: gacts/run-and-post-run@v1 + with: + post: | + jf c add --artifactory-url http://localhost:8081/artifactory --user admin --password password; \ + count=$(jf rt search "artifactory-build-info/${GITHUB_WORKFLOW}/${GITHUB_RUN_NUMBER}-*" --count 2>stderr.log); \ + exit_code=$?; \ + cat stderr.log; \ + if [ $exit_code -ne 0 ]; then \ + echo "Command failed with exit code $exit_code."; \ + exit 1; \ + fi; \ + if [ "$count" -eq 0 ]; then \ + echo "No build info found."; \ + exit 1; \ + fi + + - name: Setup JFrog CLI + id: setup-jfrog-cli + uses: ./ + env: + JF_URL: http://localhost:8081/ + JF_USER: admin + JF_PASSWORD: password + + - name: Create NPM Remote Repository JSON + uses: jsdaniell/create-json@v1.2.3 + with: + name: "npm-remote-template.json" + json: '{ + "key": "npm-remote", + "rclass": "remote", + "packageType": "npm", + "url": "https://registry.npmjs.org" + }' + + - name: Configure Artifactory NPM Remote Repository + run: jf rt repo-create npm-remote-template.json + shell: bash + + - name: Add npm modules to local build-info + run: | + jf npm-config --repo-resolve npm-remote + jf npm install \ No newline at end of file diff --git a/action.yml b/action.yml index 80ff837aa..c6be346a1 100644 --- a/action.yml +++ b/action.yml @@ -19,6 +19,10 @@ inputs: description: "Set to true to disable the generation of Job Summaries." default: "false" required: false + disable-auto-build-publish: + description: "By default, if the workflow completes with collected build-info that has not been published using the jf rt build-publish command, the build-info will be automatically published to Artifactory. Set this to true to disable the automatic publication of build-info at the end of the workflow." + default: "false" + required: false outputs: oidc-token: description: "JFrog OIDC token generated by the Setup JFrog CLI when setting oidc-provider-name." diff --git a/lib/cleanup.js b/lib/cleanup.js index e339bbbdf..36e6cb6c2 100644 --- a/lib/cleanup.js +++ b/lib/cleanup.js @@ -36,11 +36,20 @@ const core = __importStar(require("@actions/core")); const utils_1 = require("./utils"); function cleanup() { return __awaiter(this, void 0, void 0, function* () { + if (!addCachedJfToPath()) { + core.error('Could not find JFrog CLI path in the step state. Skipping cleanup.'); + return; + } try { - if (!addCachedJfToPath()) { - core.error('Could not find JFrog CLI path in the step state. Skipping cleanup.'); - return; + if (!core.getBooleanInput(utils_1.Utils.AUTO_BUILD_PUBLISH_DISABLE)) { + yield collectAndPublishBuildInfoIfNeeded(); } + } + catch (error) { + core.warning('failed while attempting to publish build info: ' + error); + } + try { + core.startGroup('Cleanup JFrog CLI servers configuration'); yield utils_1.Utils.removeJFrogServers(); if (!core.getBooleanInput(utils_1.Utils.JOB_SUMMARY_DISABLE)) { yield utils_1.Utils.generateWorkflowSummaryMarkdown(); @@ -56,12 +65,64 @@ function cleanup() { } function addCachedJfToPath() { // Get the JFrog CLI path from step state. saveState/getState are methods to pass data between a step, and it's cleanup function. - const jfrogCliPath = core.getState(utils_1.Utils.JF_CLI_PATH_STATE); - if (!jfrogCliPath) { + const jfCliPath = core.getState(utils_1.Utils.JF_CLI_PATH_STATE); + if (!jfCliPath) { // This means that the JFrog CLI was not installed in the first place, because there was a failure in the installation step. return false; } - core.addPath(jfrogCliPath); + core.addPath(jfCliPath); return true; } +function hasUnpublishedModules(workingDirectory) { + return __awaiter(this, void 0, void 0, function* () { + // Save the old value of the environment variable to revert it later + const origValue = process.env[utils_1.Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]; + try { + // Avoid saving a command summary for this dry-run command + core.exportVariable(utils_1.Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, ''); + // Running build-publish command with a dry-run flag to check if there are any unpublished modules, 'silent' to avoid polluting the logs + const responseStr = yield utils_1.Utils.runCliAndGetOutput(['rt', 'build-publish', '--dry-run'], { silent: true, cwd: workingDirectory }); + // Parse the JSON string to an object + const response = JSON.parse(responseStr); + // Check if the "modules" key exists and if it's an array with more than one item + return response.modules != undefined && Array.isArray(response.modules) && response.modules.length > 0; + } + catch (error) { + core.error('Failed to parse JSON: ' + error); + return false; // Return false if parsing fails + } + finally { + core.exportVariable(utils_1.Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, origValue); + } + }); +} +function collectAndPublishBuildInfoIfNeeded() { + return __awaiter(this, void 0, void 0, function* () { + const workingDirectory = getWorkingDirectory(); + // Check if there are any unpublished modules + if (!(yield hasUnpublishedModules(workingDirectory))) { + return; + } + // The flow here is to collect Git information before publishing the build info. + // We allow this step to fail, and we don't want to fail the entire build publish if they do. + try { + core.startGroup('Collect the Git information'); + yield utils_1.Utils.runCli(['rt', 'build-add-git'], { cwd: workingDirectory }); + } catch (error) { + core.warning('failed while attempting to collect Git information: ' + error); + } finally { + core.endGroup(); + } + core.startGroup('Publish the build info to JFrog Artifactory'); + yield utils_1.Utils.runCli(['rt', 'build-publish'], { cwd: workingDirectory }); + core.endGroup(); + }); +} +function getWorkingDirectory() { + const workingDirectory = process.env.GITHUB_WORKSPACE; + if (!workingDirectory) { + throw new Error('GITHUB_WORKSPACE is not defined.'); + } + return workingDirectory; +} cleanup(); diff --git a/lib/utils.js b/lib/utils.js index 7b9116e9f..727dd7934 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -341,7 +341,7 @@ class Utils { static enableJobSummaries() { let commandSummariesOutputDir = process.env.RUNNER_TEMP; if (commandSummariesOutputDir) { - Utils.exportVariableIfNotSet('JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR', commandSummariesOutputDir); + Utils.exportVariableIfNotSet(Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, commandSummariesOutputDir); } } static exportVariableIfNotSet(key, value) { @@ -394,15 +394,39 @@ class Utils { * This GitHub Action downloads the requested 'jfrog' executable and stores it as 'jfrog' and 'jf'. * Therefore, the 'jf' executable is expected to be in the path also for older CLI versions. * @param args - CLI arguments + * @param options - Execution options */ - static runCli(args) { + static runCli(args, options) { return __awaiter(this, void 0, void 0, function* () { - let res = yield (0, exec_1.exec)('jf', args); + let res = yield (0, exec_1.exec)('jf', args, options); if (res !== core.ExitCode.Success) { throw new Error('JFrog CLI exited with exit code ' + res); } }); } + /** + * Execute JFrog CLI command and capture its output. + * This GitHub Action downloads the requested 'jfrog' executable and stores it as 'jfrog' and 'jf'. + * Therefore, the 'jf' executable is expected to be in the path also for older CLI versions. + * The command's output is captured and returned as a string. + * The command is executed silently, meaning its output will not be printed to the console. + * If the command fails (i.e., exits with a non-success code), an error is thrown. + * @param args - CLI arguments + * @param options + * @returns The standard output of the CLI command as a string. + * @throws An error if the JFrog CLI command exits with a non-success code. + */ + static runCliAndGetOutput(args, options) { + return __awaiter(this, void 0, void 0, function* () { + let output = yield (0, exec_1.getExecOutput)('jf', args, options); + if (output.exitCode !== core.ExitCode.Success) { + core.info(output.stdout); + core.info(output.stderr); + throw new Error('JFrog CLI exited with exit code ' + output.exitCode); + } + return output.stdout; + }); + } /** * If repository input was set, extract CLI download details, * from either a Config Token with a JF_ENV_ prefix or separate env config (JF_URL, JF_USER, JF_PASSWORD, JF_ACCESS_TOKEN). @@ -561,9 +585,9 @@ class Utils { return `📦 Project ${projectKey} packages ` + '\n\n'; } static getJobOutputDirectoryPath() { - const outputDir = process.env.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR; + const outputDir = process.env[Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]; if (!outputDir) { - throw new Error('Jobs home directory is undefined, JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR is not set.'); + throw new Error('Jobs home directory is undefined, ' + Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV + ' is not set.'); } return path.join(outputDir, Utils.JOB_SUMMARY_DIR_NAME); } @@ -620,6 +644,8 @@ Utils.JF_CLI_PATH_STATE = 'JF_CLI_PATH_STATE'; Utils.SETUP_JFROG_CLI_SERVER_ID = 'setup-jfrog-cli-server'; // Directory name which holds markdown files for the Workflow summary Utils.JOB_SUMMARY_DIR_NAME = 'jfrog-command-summary'; +// JFrog CLI command summary output directory environment variable +Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV = 'JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR'; // Workflow summary section files. Order of sections in this array impacts the order in the final markdown. Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES = [ MarkdownSection.Security, @@ -635,5 +661,7 @@ Utils.CLI_REMOTE_ARG = 'download-repository'; Utils.OIDC_AUDIENCE_ARG = 'oidc-audience'; // OpenID Connect provider_name input Utils.OIDC_INTEGRATION_PROVIDER_NAME = 'oidc-provider-name'; -// Job Summaries feature disable flag +// Disable Job Summaries feature flag Utils.JOB_SUMMARY_DISABLE = 'disable-job-summary'; +// Disable auto build info publish feature flag +Utils.AUTO_BUILD_PUBLISH_DISABLE = 'disable-auto-build-publish'; diff --git a/src/cleanup.ts b/src/cleanup.ts index 6170b1eba..ebf8171c2 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -2,12 +2,20 @@ import * as core from '@actions/core'; import { Utils } from './utils'; async function cleanup() { + if (!addCachedJfToPath()) { + core.error('Could not find JFrog CLI path in the step state. Skipping cleanup.'); + return; + } try { - if (!addCachedJfToPath()) { - core.error('Could not find JFrog CLI path in the step state. Skipping cleanup.'); - return; + if (!core.getBooleanInput(Utils.AUTO_BUILD_PUBLISH_DISABLE)) { + await collectAndPublishBuildInfoIfNeeded(); } + } catch (error) { + core.warning('failed while attempting to publish build info: ' + error); + } + try { + core.startGroup('Cleanup JFrog CLI servers configuration'); await Utils.removeJFrogServers(); if (!core.getBooleanInput(Utils.JOB_SUMMARY_DISABLE)) { await Utils.generateWorkflowSummaryMarkdown(); @@ -21,13 +29,71 @@ async function cleanup() { function addCachedJfToPath(): boolean { // Get the JFrog CLI path from step state. saveState/getState are methods to pass data between a step, and it's cleanup function. - const jfrogCliPath: string = core.getState(Utils.JF_CLI_PATH_STATE); - if (!jfrogCliPath) { + const jfCliPath: string = core.getState(Utils.JF_CLI_PATH_STATE); + if (!jfCliPath) { // This means that the JFrog CLI was not installed in the first place, because there was a failure in the installation step. return false; } - core.addPath(jfrogCliPath); + core.addPath(jfCliPath); return true; } +interface BuildPublishResponse { + modules: any[]; +} + +async function hasUnpublishedModules(workingDirectory: string): Promise { + // Save the old value of the environment variable to revert it later + const origValue: string | undefined = process.env[Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]; + try { + // Avoid saving a command summary for this dry-run command + core.exportVariable(Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, ''); + + // Running build-publish command with a dry-run flag to check if there are any unpublished modules, 'silent' to avoid polluting the logs + const responseStr: string = await Utils.runCliAndGetOutput(['rt', 'build-publish', '--dry-run'], { silent: true, cwd: workingDirectory }); + + // Parse the JSON string to an object + const response: BuildPublishResponse = JSON.parse(responseStr); + // Check if the "modules" key exists and if it's an array with more than one item + return response.modules != undefined && Array.isArray(response.modules) && response.modules.length > 0; + } catch (error) { + core.error('Failed to parse JSON: ' + error); + return false; // Return false if parsing fails + } finally { + core.exportVariable(Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, origValue); + } +} + +async function collectAndPublishBuildInfoIfNeeded() { + const workingDirectory: string = getWorkingDirectory(); + // Check if there are any unpublished modules + if (!(await hasUnpublishedModules(workingDirectory))) { + return; + } + + // The flow here is to collect Git information before publishing the build info. + // We allow this step to fail, and we don't want to fail the entire build publish if they do. + + try { + core.startGroup('Collect the Git information'); + await Utils.runCli(['rt', 'build-add-git'], { cwd: workingDirectory }); + } catch (error) { + core.warning('failed while attempting to collect Git information: ' + error); + } finally { + core.endGroup(); + } + + core.startGroup('Publish the build info to JFrog Artifactory'); + await Utils.runCli(['rt', 'build-publish'], { cwd: workingDirectory }); + core.endGroup(); +} + +function getWorkingDirectory(): string { + const workingDirectory: string | undefined = process.env.GITHUB_WORKSPACE; + if (!workingDirectory) { + throw new Error('GITHUB_WORKSPACE is not defined.'); + } + return workingDirectory; +} + cleanup(); diff --git a/src/utils.ts b/src/utils.ts index 3fbcc9d7c..8f7c83b9e 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,5 +1,5 @@ import * as core from '@actions/core'; -import { exec } from '@actions/exec'; +import { exec, ExecOptions, ExecOutput, getExecOutput } from '@actions/exec'; import { HttpClient, HttpClientResponse } from '@actions/http-client'; import * as toolCache from '@actions/tool-cache'; import { chmodSync, existsSync, promises as fs } from 'fs'; @@ -38,6 +38,9 @@ export class Utils { public static readonly SETUP_JFROG_CLI_SERVER_ID: string = 'setup-jfrog-cli-server'; // Directory name which holds markdown files for the Workflow summary private static readonly JOB_SUMMARY_DIR_NAME: string = 'jfrog-command-summary'; + // JFrog CLI command summary output directory environment variable + public static readonly JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV: string = 'JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR'; + // Workflow summary section files. Order of sections in this array impacts the order in the final markdown. public static JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES: MarkdownSection[] = [ MarkdownSection.Security, @@ -54,8 +57,10 @@ export class Utils { private static readonly OIDC_AUDIENCE_ARG: string = 'oidc-audience'; // OpenID Connect provider_name input private static readonly OIDC_INTEGRATION_PROVIDER_NAME: string = 'oidc-provider-name'; - // Job Summaries feature disable flag + // Disable Job Summaries feature flag public static readonly JOB_SUMMARY_DISABLE: string = 'disable-job-summary'; + // Disable auto build info publish feature flag + public static readonly AUTO_BUILD_PUBLISH_DISABLE: string = 'disable-auto-build-publish'; /** * Retrieves server credentials for accessing JFrog's server @@ -378,7 +383,7 @@ export class Utils { private static enableJobSummaries() { let commandSummariesOutputDir: string | undefined = process.env.RUNNER_TEMP; if (commandSummariesOutputDir) { - Utils.exportVariableIfNotSet('JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR', commandSummariesOutputDir); + Utils.exportVariableIfNotSet(Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, commandSummariesOutputDir); } } @@ -436,14 +441,37 @@ export class Utils { * This GitHub Action downloads the requested 'jfrog' executable and stores it as 'jfrog' and 'jf'. * Therefore, the 'jf' executable is expected to be in the path also for older CLI versions. * @param args - CLI arguments + * @param options - Execution options */ - public static async runCli(args: string[]) { - let res: number = await exec('jf', args); + public static async runCli(args: string[], options?: ExecOptions) { + let res: number = await exec('jf', args, options); if (res !== core.ExitCode.Success) { throw new Error('JFrog CLI exited with exit code ' + res); } } + /** + * Execute JFrog CLI command and capture its output. + * This GitHub Action downloads the requested 'jfrog' executable and stores it as 'jfrog' and 'jf'. + * Therefore, the 'jf' executable is expected to be in the path also for older CLI versions. + * The command's output is captured and returned as a string. + * The command is executed silently, meaning its output will not be printed to the console. + * If the command fails (i.e., exits with a non-success code), an error is thrown. + * @param args - CLI arguments + * @param options + * @returns The standard output of the CLI command as a string. + * @throws An error if the JFrog CLI command exits with a non-success code. + */ + public static async runCliAndGetOutput(args: string[], options?: ExecOptions): Promise { + let output: ExecOutput = await getExecOutput('jf', args, options); + if (output.exitCode !== core.ExitCode.Success) { + core.info(output.stdout); + core.info(output.stderr); + throw new Error('JFrog CLI exited with exit code ' + output.exitCode); + } + return output.stdout; + } + /** * If repository input was set, extract CLI download details, * from either a Config Token with a JF_ENV_ prefix or separate env config (JF_URL, JF_USER, JF_PASSWORD, JF_ACCESS_TOKEN). @@ -608,9 +636,9 @@ export class Utils { } private static getJobOutputDirectoryPath(): string { - const outputDir: string | undefined = process.env.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR; + const outputDir: string | undefined = process.env[Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]; if (!outputDir) { - throw new Error('Jobs home directory is undefined, JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR is not set.'); + throw new Error('Jobs home directory is undefined, ' + Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV + ' is not set.'); } return path.join(outputDir, Utils.JOB_SUMMARY_DIR_NAME); } diff --git a/test/main.spec.ts b/test/main.spec.ts index f91f6712c..40b3f844c 100644 --- a/test/main.spec.ts +++ b/test/main.spec.ts @@ -304,7 +304,7 @@ describe('Job Summaries', () => { describe('Command Summaries Disable Flag', () => { const myCore: jest.Mocked = core as any; beforeEach(() => { - delete process.env.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR; + delete process.env[Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]; delete process.env.RUNNER_TEMP; }); @@ -313,7 +313,7 @@ describe('Job Summaries', () => { return true; }); Utils.setCliEnv(); - expect(process.env.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR).toBeUndefined(); + expect(process.env[Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]).toBeUndefined(); }); it('should set JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR if disable-job-summary is false', () => { @@ -325,7 +325,7 @@ describe('Job Summaries', () => { process.env[name] = val; }); Utils.setCliEnv(); - expect(process.env.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR).toBe('/tmp'); + expect(process.env[Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]).toBe('/tmp'); }); }); }); From c462cde39a4d49aec5dc528e5d4c9894e4ef8158 Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Sun, 1 Sep 2024 13:39:52 +0300 Subject: [PATCH 37/56] Command Summary - New UI (#186) --- .github/workflows/test.yml | 1 - action.yml | 2 +- images/job_summary.png | Bin 237268 -> 244227 bytes images/summary_header.png | Bin 0 -> 16731 bytes lib/cleanup.js | 25 ++++++-- lib/utils.js | 111 +++++++++++++----------------------- src/cleanup.ts | 19 +++++-- src/utils.ts | 114 +++++++++++++------------------------ test/main.spec.ts | 19 +------ 9 files changed, 117 insertions(+), 174 deletions(-) create mode 100644 images/summary_header.png diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b77ea2bca..62ef62546 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,7 +22,6 @@ jobs: # Checkout and install prerequisites - name: Checkout uses: actions/checkout@v4 - - name: Setup NodeJS uses: actions/setup-node@v4 with: diff --git a/action.yml b/action.yml index c6be346a1..8a8d7c409 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: "JFrog" inputs: version: description: "JFrog CLI Version" - default: "2.63.2" + default: "2.66.0" required: false download-repository: description: "Remote repository in Artifactory pointing to 'https://releases.jfrog.io/artifactory/jfrog-cli'. Use this parameter in case you don't have an Internet access." diff --git a/images/job_summary.png b/images/job_summary.png index 2fc02dbd82d8a35408529fc86f0edf12e15ae20e..99b1805e227bbfbf8a227bb485b6726eef402c53 100644 GIT binary patch literal 244227 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 pLe(KY%9ov{mND*5QLPHGitKX7q(YX_m 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�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%0D+3@ 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 z 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 z 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 VZh4OD?f*IQ^oj0c$RnGG{{=fvuLA%8 literal 237268 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

t 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 H8vK6%?xS6^ diff --git a/images/summary_header.png b/images/summary_header.png new file mode 100644 index 0000000000000000000000000000000000000000..e0272c63207f0e597ca695098bc0d9ab1380ebce GIT binary patch literal 16731 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 iG4G@D?+Wi9F((K`@>J~w5PzD0BrBx|E|D<$^nU the content of the markdown file as string, warped in a collapsable section. */ - static readCLIMarkdownSectionsAndWrap() { + static readCommandSummaryMarkdown() { return __awaiter(this, void 0, void 0, function* () { - const outputDir = Utils.getJobOutputDirectoryPath(); - let markdownContent = ''; - const sectionContents = {}; - // Read all sections. - for (const sectionName of Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES) { - const fullPath = path.join(outputDir, sectionName, 'markdown.md'); - if ((0, fs_1.existsSync)(fullPath)) { - sectionContents[sectionName] = yield Utils.readSummarySection(fullPath, sectionName); - } - } - // If build info was published, remove generic upload section to avoid duplications with generic modules. - if (sectionContents[MarkdownSection.BuildInfo] != '') { - sectionContents[MarkdownSection.Upload] = ''; - } - // Append sections in order. - for (const sectionName of Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES) { - markdownContent += sectionContents[sectionName] || ''; + let markdownContent = yield Utils.readMarkdownContent(); + if (markdownContent === '') { + return ''; } - return markdownContent ? Utils.wrapContent(markdownContent) : ''; + // Check if the header can be accessed via the internet to decide if to use the image or the text header + this.isSummaryHeaderAccessible = yield this.isHeaderPngAccessible(); + core.debug('Header image is accessible: ' + this.isSummaryHeaderAccessible); + return Utils.wrapContent(markdownContent); }); } - static readSummarySection(fullPath, section) { + static readMarkdownContent() { return __awaiter(this, void 0, void 0, function* () { - let content = ''; - try { - content = yield fs_1.promises.readFile(fullPath, 'utf-8'); - return Utils.wrapCollapsableSection(section, content); - } - catch (error) { - throw new Error('failed to read section file: ' + fullPath + ' ' + error); + const outputDir = Utils.getJobOutputDirectoryPath(); + if ((0, fs_1.existsSync)(outputDir)) { + return yield fs_1.promises.readFile(path.join(outputDir, 'markdown.md'), 'utf-8'); } + return ''; }); } static getMarkdownHeader() { let mainTitle; - if (Utils.isColorSchemeSupported()) { - mainTitle = `# $\\textcolor{green}{\\textsf{ 🐸 JFrog Job Summary}}$` + '\n\n'; + if (this.isSummaryHeaderAccessible) { + mainTitle = `Summary-Header` + '\n\n'; } else { mainTitle = `# 🐸 JFrog Job Summary` + '\n\n'; } return mainTitle + Utils.getProjectPackagesLink(); } - /** - * Check if the color scheme is supported in the GitHub UI. - * Currently, GitHub enterprise does not support the color LaTex scheme $\textcolor{}. - * This scheme is part of the LaTeX/Mathematics scheme. - * - * Currently, the scheme is not supported by GitHub Enterprise version 3.13, - * which is the latest version at the time of writing this comment. - * - * For more info about the scheme see: - * https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions - * - * @returns true if the color scheme is supported, false otherwise. - */ - static isColorSchemeSupported() { - let serverUrl = process.env.GITHUB_SERVER_URL || ''; - return serverUrl.startsWith('https://github.com'); - } /** * Gets the project packages link to be displayed in the summary * If the project is undefined, it will resolve to 'all' section in the UI. @@ -582,7 +551,7 @@ class Utils { } let projectKey = process.env.JF_PROJECT ? process.env.JF_PROJECT : ''; let projectPackagesUrl = platformUrl + 'ui/packages' + '?projectKey=' + projectKey; - return `📦 Project ${projectKey} packages ` + '\n\n'; + return ` 🐸 View package details on the JFrog platform ` + '\n\n'; } static getJobOutputDirectoryPath() { const outputDir = process.env[Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]; @@ -598,29 +567,29 @@ class Utils { yield fs_1.promises.rm(outputDir, { recursive: true }); }); } - static wrapCollapsableSection(section, markdown) { - let sectionTitle; - switch (section) { - case MarkdownSection.Upload: - sectionTitle = `📁 Files uploaded to Artifactory by this workflow`; - break; - case MarkdownSection.BuildInfo: - sectionTitle = `📦 Build info published to Artifactory by this workflow`; - break; - case MarkdownSection.Security: - sectionTitle = `🔒 Security Status`; - break; - default: - throw new Error(`Failed to get unknown section: ${section}, title.`); - } - return `\n\n\n

\n\n ${sectionTitle}

\n\n ${markdown} \n\n
\n\n\n`; - } static wrapContent(fileContent) { return Utils.getMarkdownHeader() + fileContent + Utils.getMarkdownFooter(); } static getMarkdownFooter() { return '\n\n # \n\n The above Job Summary was generated by the Setup JFrog CLI GitHub Action '; } + static isHeaderPngAccessible() { + return __awaiter(this, void 0, void 0, function* () { + const url = this.MARKDOWN_HEADER_PNG_URL; + const httpClient = new http_client_1.HttpClient(); + try { + const response = yield httpClient.head(url); + return response.message.statusCode === 200; + } + catch (error) { + core.warning('No internet access to the header image, using the text header instead.'); + return false; + } + finally { + httpClient.dispose(); + } + }); + } } exports.Utils = Utils; // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -665,3 +634,5 @@ Utils.OIDC_INTEGRATION_PROVIDER_NAME = 'oidc-provider-name'; Utils.JOB_SUMMARY_DISABLE = 'disable-job-summary'; // Disable auto build info publish feature flag Utils.AUTO_BUILD_PUBLISH_DISABLE = 'disable-auto-build-publish'; +// Source URL holding the markdown header image +Utils.MARKDOWN_HEADER_PNG_URL = 'https://media.jfrog.com/wp-content/uploads/2024/09/01120106/summary_header.png'; diff --git a/src/cleanup.ts b/src/cleanup.ts index ebf8171c2..f508781c0 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -6,20 +6,31 @@ async function cleanup() { core.error('Could not find JFrog CLI path in the step state. Skipping cleanup.'); return; } + // Auto-publish build info if needed try { if (!core.getBooleanInput(Utils.AUTO_BUILD_PUBLISH_DISABLE)) { + core.startGroup('Build Info Auto-Publish'); await collectAndPublishBuildInfoIfNeeded(); + core.endGroup(); } } catch (error) { core.warning('failed while attempting to publish build info: ' + error); } - + // Generate job summary try { - core.startGroup('Cleanup JFrog CLI servers configuration'); - await Utils.removeJFrogServers(); if (!core.getBooleanInput(Utils.JOB_SUMMARY_DISABLE)) { - await Utils.generateWorkflowSummaryMarkdown(); + core.startGroup('Generating Job Summary'); + await Utils.runCli(['generate-summary-markdown']); + await Utils.setMarkdownAsJobSummary(); + core.endGroup(); } + } catch (error) { + core.warning('failed while attempting to generate job summary: ' + error); + } + // Cleanup JFrog CLI servers configuration + try { + core.startGroup('Cleanup JFrog CLI servers configuration'); + await Utils.removeJFrogServers(); } catch (error) { core.setFailed((error).message); } finally { diff --git a/src/utils.ts b/src/utils.ts index 8f7c83b9e..809c1be32 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -61,6 +61,9 @@ export class Utils { public static readonly JOB_SUMMARY_DISABLE: string = 'disable-job-summary'; // Disable auto build info publish feature flag public static readonly AUTO_BUILD_PUBLISH_DISABLE: string = 'disable-auto-build-publish'; + // Source URL holding the markdown header image + private static MARKDOWN_HEADER_PNG_URL: string = 'https://media.jfrog.com/wp-content/uploads/2024/09/01120106/summary_header.png'; + private static isSummaryHeaderAccessible: boolean; /** * Retrieves server credentials for accessing JFrog's server @@ -525,17 +528,17 @@ export class Utils { } /** - * Generates GitHub workflow Summary Markdown. + * Generates GitHub workflow unified Summary report. * This function runs as part of post-workflow cleanup function, * collects existing section markdown files generated by the CLI, - * and constructs a single markdown file, to be displayed in the GitHub UI. + * and constructs a single Markdown file, to be displayed in the GitHub UI. */ - public static async generateWorkflowSummaryMarkdown() { + public static async setMarkdownAsJobSummary() { try { - // Read all sections and construct the final markdown file - const markdownContent: string = await this.readCLIMarkdownSectionsAndWrap(); + // Read all sections and construct the final Markdown file + const markdownContent: string = await this.readCommandSummaryMarkdown(); if (markdownContent.length == 0) { - core.debug('No job summaries sections found. Workflow summary will not be generated.'); + core.debug('No job summary file found. Workflow summary will not be generated.'); return; } // Write to GitHub's job summary @@ -553,70 +556,35 @@ export class Utils { * This function reads each section file and wraps it with a markdown header * @returns the content of the markdown file as string, warped in a collapsable section. */ - private static async readCLIMarkdownSectionsAndWrap(): Promise { - const outputDir: string = Utils.getJobOutputDirectoryPath(); - let markdownContent: string = ''; - const sectionContents: { [key: string]: string } = {}; - - // Read all sections. - for (const sectionName of Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES) { - const fullPath: string = path.join(outputDir, sectionName, 'markdown.md'); - if (existsSync(fullPath)) { - sectionContents[sectionName] = await Utils.readSummarySection(fullPath, sectionName); - } - } - - // If build info was published, remove generic upload section to avoid duplications with generic modules. - if (sectionContents[MarkdownSection.BuildInfo] != '') { - sectionContents[MarkdownSection.Upload] = ''; - } - - // Append sections in order. - for (const sectionName of Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES) { - markdownContent += sectionContents[sectionName] || ''; + private static async readCommandSummaryMarkdown(): Promise { + let markdownContent: string = await Utils.readMarkdownContent(); + if (markdownContent === '') { + return ''; } - - return markdownContent ? Utils.wrapContent(markdownContent) : ''; + // Check if the header can be accessed via the internet to decide if to use the image or the text header + this.isSummaryHeaderAccessible = await this.isHeaderPngAccessible(); + core.debug('Header image is accessible: ' + this.isSummaryHeaderAccessible); + return Utils.wrapContent(markdownContent); } - private static async readSummarySection(fullPath: string, section: MarkdownSection) { - let content: string = ''; - try { - content = await fs.readFile(fullPath, 'utf-8'); - return Utils.wrapCollapsableSection(section, content); - } catch (error) { - throw new Error('failed to read section file: ' + fullPath + ' ' + error); + private static async readMarkdownContent() { + const outputDir: string = Utils.getJobOutputDirectoryPath(); + if (existsSync(outputDir)) { + return await fs.readFile(path.join(outputDir, 'markdown.md'), 'utf-8'); } + return ''; } private static getMarkdownHeader(): string { let mainTitle: string; - if (Utils.isColorSchemeSupported()) { - mainTitle = `# $\\textcolor{green}{\\textsf{ 🐸 JFrog Job Summary}}$` + '\n\n'; + if (this.isSummaryHeaderAccessible) { + mainTitle = `Summary-Header` + '\n\n'; } else { mainTitle = `# 🐸 JFrog Job Summary` + '\n\n'; } return mainTitle + Utils.getProjectPackagesLink(); } - /** - * Check if the color scheme is supported in the GitHub UI. - * Currently, GitHub enterprise does not support the color LaTex scheme $\textcolor{}. - * This scheme is part of the LaTeX/Mathematics scheme. - * - * Currently, the scheme is not supported by GitHub Enterprise version 3.13, - * which is the latest version at the time of writing this comment. - * - * For more info about the scheme see: - * https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions - * - * @returns true if the color scheme is supported, false otherwise. - */ - static isColorSchemeSupported(): boolean { - let serverUrl: string = process.env.GITHUB_SERVER_URL || ''; - return serverUrl.startsWith('https://github.com'); - } - /** * Gets the project packages link to be displayed in the summary * If the project is undefined, it will resolve to 'all' section in the UI. @@ -632,7 +600,7 @@ export class Utils { } let projectKey: string = process.env.JF_PROJECT ? process.env.JF_PROJECT : ''; let projectPackagesUrl: string = platformUrl + 'ui/packages' + '?projectKey=' + projectKey; - return `📦 Project ${projectKey} packages ` + '\n\n'; + return ` 🐸 View package details on the JFrog platform ` + '\n\n'; } private static getJobOutputDirectoryPath(): string { @@ -649,24 +617,6 @@ export class Utils { await fs.rm(outputDir, { recursive: true }); } - private static wrapCollapsableSection(section: MarkdownSection, markdown: string): string { - let sectionTitle: string; - switch (section) { - case MarkdownSection.Upload: - sectionTitle = `📁 Files uploaded to Artifactory by this workflow`; - break; - case MarkdownSection.BuildInfo: - sectionTitle = `📦 Build info published to Artifactory by this workflow`; - break; - case MarkdownSection.Security: - sectionTitle = `🔒 Security Status`; - break; - default: - throw new Error(`Failed to get unknown section: ${section}, title.`); - } - return `\n\n\n
\n\n ${sectionTitle}

\n\n ${markdown} \n\n
\n\n\n`; - } - private static wrapContent(fileContent: string) { return Utils.getMarkdownHeader() + fileContent + Utils.getMarkdownFooter(); } @@ -674,6 +624,20 @@ export class Utils { private static getMarkdownFooter() { return '\n\n # \n\n The above Job Summary was generated by the Setup JFrog CLI GitHub Action '; } + + private static async isHeaderPngAccessible(): Promise { + const url: string = this.MARKDOWN_HEADER_PNG_URL; + const httpClient: HttpClient = new HttpClient(); + try { + const response: HttpClientResponse = await httpClient.head(url); + return response.message.statusCode === 200; + } catch (error) { + core.warning('No internet access to the header image, using the text header instead.'); + return false; + } finally { + httpClient.dispose(); + } + } } export interface DownloadDetails { diff --git a/test/main.spec.ts b/test/main.spec.ts index 40b3f844c..ca864b635 100644 --- a/test/main.spec.ts +++ b/test/main.spec.ts @@ -298,7 +298,7 @@ describe('decodeOidcToken', () => { describe('Job Summaries', () => { describe('Job summaries sanity', () => { it('should not crash if no files were found', async () => { - expect(async () => await Utils.generateWorkflowSummaryMarkdown()).not.toThrow(); + expect(async () => await Utils.setMarkdownAsJobSummary()).not.toThrow(); }); }); describe('Command Summaries Disable Flag', () => { @@ -329,20 +329,3 @@ describe('Job Summaries', () => { }); }); }); - -describe('isColorSchemeSupported', () => { - it('should return true if GITHUB_SERVER_URL includes github.com', () => { - process.env.GITHUB_SERVER_URL = 'https://github.com'; - expect(Utils.isColorSchemeSupported()).toBe(true); - }); - - it('should return false if GITHUB_SERVER_URL does not include github.com', () => { - process.env.GITHUB_SERVER_URL = 'https://enterprise.github.com'; - expect(Utils.isColorSchemeSupported()).toBe(false); - }); - - it('should return false if GITHUB_SERVER_URL is undefined', () => { - delete process.env.GITHUB_SERVER_URL; - expect(Utils.isColorSchemeSupported()).toBe(false); - }); -}); From ddac45621bbdbf8f9745db9515799aa8c7049fda Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Sun, 1 Sep 2024 13:50:40 +0300 Subject: [PATCH 38/56] Bump version from 4.2.2 to 4.3.0 (#191) --- node_modules/.package-lock.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index a3cf1dcfd..daf5e7afb 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.2.2", + "version": "4.3.0", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package-lock.json b/package-lock.json index 3b56a0e41..b93ead297 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.2.2", + "version": "4.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@jfrog/setup-jfrog-cli", - "version": "4.2.2", + "version": "4.3.0", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 395257097..4eb7b4d94 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.2.2", + "version": "4.3.0", "private": true, "description": "Setup JFrog CLI in GitHub Actions", "main": "lib/main.js", From 16b3a6e8ed57fdb571abf40a89842947214a105d Mon Sep 17 00:00:00 2001 From: Robi Nino Date: Sun, 1 Sep 2024 17:18:00 +0300 Subject: [PATCH 39/56] Update documentation (#193) --- README.md | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 0e63b54a1..14ed43a04 100644 --- a/README.md +++ b/README.md @@ -278,27 +278,33 @@ Here's how you do this: ## JFrog Job Summary -Jobs using this GitHub action will output a summary of some of the key commands that were performed using JFrog CLI. +Workflows using this GitHub action will output a summary of some of the key commands that were performed using JFrog CLI. The summary can be viewed from the GitHub Actions run page and is enabled by default. ### Preconditions To fully leverage from the JFrog Job Summary, one should: -1. Use JFrog CLI version 2.62.0 or above. -2. Set `JF_URL` as a [GitHub Variable](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/variables) rather than a [GitHub secret](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository) (see note below). -3. [Collect build info](https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/build-integration) and [publish](https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/build-integration#publishing-build-info) it using JFrog CLI. +1. Use JFrog CLI version 2.66.0 or above. +2. Set `JF_URL` as a [GitHub Variable](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/variables) rather than a [GitHub Secret](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository) (see note below). -> **_NOTE:_** The Job Summary includes direct links to the JFrog Platform UI. +> **_NOTE:_** The Job Summary includes direct links to the JFrog Platform UI, for applicable licenses. For the links to function correctly, `JF_URL` should be set as a variable rather than a secret. This is to prevent GitHub from masking the URL. -Example JFrog Job Summary: +### Default Behavior: -![JFrog-Job-Summary](images/job_summary.png) +By default, the [build-info](https://jfrog.com/help/r/jfrog-pipelines-documentation/buildinfo) collected during the workflow will be automatically published to Artifactory when the workflow completes. +This behavior is disabled if the `jf rt build-publish` command was manually run during the workflow, or if requested explicitly by setting the `disable-auto-build-publish` input to `true`: -Job summaries can be disabled by setting the `disable-job-summary` input to `true`. +```yml +- uses: jfrog/setup-jfrog-cli@v4 + with: + disable-auto-build-publish: true +``` + +To disable the JFrog Job Summary altogether, set the `disable-job-summary` input to `true`: ```yml - uses: jfrog/setup-jfrog-cli@v4 @@ -306,6 +312,10 @@ Job summaries can be disabled by setting the `disable-job-summary` input to `tru disable-job-summary: true ``` +### JFrog Job Summary Example: + +![JFrog-Job-Summary](images/job_summary.png) + ### Behind the scenes The **setup-jfrog-cli GitHub Action** leverages the **Command Summaries** feature of the JFrog CLI to generate a detailed summary of the entire workflow. From 91e6626845b68edadac4b65727d0956c3c1791ff Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Mon, 2 Sep 2024 11:25:48 +0300 Subject: [PATCH 40/56] Fix summary header image not loading (#192) --- images/job_summary.png | Bin 244227 -> 89510 bytes images/summary_header.png | Bin 16731 -> 0 bytes lib/cleanup.js | 2 -- lib/utils.js | 21 ++++++++++++++------- src/cleanup.ts | 2 -- src/utils.ts | 21 ++++++++++++++------- 6 files changed, 28 insertions(+), 18 deletions(-) delete mode 100644 images/summary_header.png diff --git a/images/job_summary.png b/images/job_summary.png index 99b1805e227bbfbf8a227bb485b6726eef402c53..1c10d19613e91ca6ab3d6755486e3b9f18cb1947 100644 GIT binary patch literal 89510 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 pLe(KY%9ov{mND*5QLPHGitKX7q(YX_m zZ>p0^KxUfZeMJGbV`5G{-^jkcuR8)bI-oGW(yg7Mh4$8x(JyZgb5T|nrFJZ&qNj6E zVl2LVuXJW*35vu<5?KD0S$t)VeoVbZDLA((!heDL z44bCkw~;s*7sT~G4`Hp7(Q+C}?2$n{-dQSpC|BM=ZZpghdW zULZHaecliA_w=Ux`qe50hpS5)famzA!cQ~^UKL2^N6qK!_PT5bW&jzFxf@H63@WVL zrNJ%YbiC4A=XOxQC+-Lz$qQ-{d{@mr+j<*f**x0Juv~4}uUmTA)={{0Qz*B*tmaG0 zN_+jleTz%;4xgbRwwd?mp)PAORd0rhJNxp4LB4_|GZY&OLI6dWSc~5XG*!1ynr#X* z5|Dx?3l|Q}@u^t#+Cg?g%fesNms<9`pA8E;e4#v84wn!if+#t|avlaP0x#FqJm9RL z_F2e)q~OxYZXDYCzur57`|KFty%Rr*mPDMsy1ES+cC8+BSu&M*2rlBAwjV3@o4&?B zBR(#K`cafnW})mYQ{p2B7P9!_+SoKk3Yb!H$h=*GwsaR91~TxD_fhIS2_+1>{vJ29 z#vOHRiMUF%p6>JsBb4jBk5xj2ER~GgtJ{+KPa3hwXDOE}(dL1AvmrKN*=ym;nRd#s%YZb+Hun7XoyT0@|z_eejWx;&6~!?hn_y#!WFi z5twS|LfHRW+LvelF2y&l1Nw@u^jEt3v9ACzxS+Ba^vUuD-Sf$@7&v&%vpa~-m3n?^ z0qF&y~-c`sS0KZlYT0*gDW-=C65Xdv}eXV-3xEg}{Y@N`{7>UdJQo zw^-e)HPFdP?x`b{1fkGZegv<>Pd;sX;4xF;FYC##sn*XnBWJx1qW*^2GSvUY%^P!5 zvEV76FyhT=&jSY%$<{ZOn4?af8!0|^EjPSMNo<@*2yYAn|Bf^8?lWwGF`8F*G+Q#5 zBE*L}lmTHm(4L-q6woWOX#=7Lm1dqiq5=lns8Xs>$ajFL@wf)aWNc5-Pp-m&KfZMX zFQB8zd9~Sd7^(Dab^iy!zQ2V3*Dxzo%fCYYB1wW{mFn|?Ie7O;5B9W4j;gPvFnd}r4Q0w30vTSx0+$tN68Tltv zxNN3*(}q@%TRGfcy4B4&i7>IUL)ZyG1rtVc@3;T?XUmvaC!A6|Tv_*B+cH{;Hku z6_YXMwiEh?qTh!ngginhr z8J?y6+W3nHz)lGNPM-Ru%^M^Lf?QP&L@y~RW>!6|%U==&nw&T4uv1(L1y8$3&%3&R zVv#DR982uN^%j&n+_n~td4^f-g9Z#24rjDF`@X%FXxi#2db_WjByBKwjA^oMH(u_= zJ=w>w=&5HUb(Y1M=iKV74*Rh>La>R#Retqp^M7afgsF`GRC;o~r>h^tw9_)NavvD5 zq&Z&38PFcx?I6SAwMZIxBD83%GI%pvPVQ)P)dG7fH`@|1gO%@Ir%a<&72Q{70CSeJ zGd@)k8SYRTn<|`ogEwLoKf^GD2I_5S(48w58%HYR*vs&eDhti!M&soiVgsSRSrLaE zmP@slZ+HlOhEKbTGHMl*R+9-96oXRBc>;GDzmx4Ll)?7ZxmUM|8Yr=k#1CX}nZG*^ zin2AX>iPz4UJY?;Do3&2wm7aC6`6hi;0&Z`ys@DSFM<=s4qQlp6J|{hp|H?gN@k#|^q&*Z+o)^U&bQTvF zkj2y`Az7Uq-Jv?ZZya5O1!xAy&f)lIbFpPdAX1cio*iM_|8!tJ%9*3+R>(SW*vp$G zOhGmL8?c`y9&G+z*O7NUUVqB+j_81Bi*E6l2H>Ekdsa~%EP=ELb`dmW{&x*N{~^r^ zWm@l0OHCq63{^P?YOwqctem?{PGl9@Z?$53AHDrLJL2;Lax}#VNQwD9CIl;*h{)C5 zZ<|}}U9(fUDfnKdxQc`eli1e8#gBZG3tQtaMcnnruIKLIC}GM#hw3q`7Ku;+l4E*t z8dqWM=;^#;i)mNQw6>f6d(1pK$)3x-@dgw*!SB}DL}aslE2^D9vvb~sGt1}_(t&Q- z>UYuKI^K-9#nqX9NcAGuDRPjpivM#Y$WPnD{w%RpcyYoYMrHX*P$wjvwzWB; zUhTJ~#kSnRg^`7f?4 zzZavJlkU8Kdsh)D3^~z0IX&91iQrFp-d<^17NF(O`)&+j z+hXB1W-Q<1U%{7=r2UC3pD37x9uYz*k&l(kh%ZC4N&hGqYTR!1yG7r6a`#3 zqPIK(>md`{8V@nYN_HZ&b?mJEJbHo;nUJhUxEGg5KOmRH{@cQ*z@CYp;SET2Rwost-mpDaBih&@gug=eG`Da=p!)a%*Gg>1ei6l&;eeek78#Cb}& zU~6ybS9G$0XdUSEM^`t)N0%gDuUIqSYvT#wnjd1ZX2IEgZ=b4tw*rn+}=t}BlY zk9ww?%jlF?t|u9Jgx&;YSMzNUxPXCj()>|EzB5u|HLN}>H`V$EBDXT5hgvM|FWbjH z-!vDrOdts4<#v?#e2m$2hz;PsUSzC7tN=ABmtCc>S4sx{JGV&XeuE69v~2Hv^Ubnv z4#GtxI~|6*I9L?V372^6!ua@SJ`e^3llPXl23AZa#PxDPaM1=m>iHP}^j!cW*>uby zI@sd;81aPk6*rKe-@4IS-Y@$YNg*@C-h4m~a{$jt$KTL&Uij z7$1`?MY%1c-Dt_8A>f6YnMWdJUxz1+w*5ueZ9j&tbBHPoQtB3%6X7@s~iCIlp@rAGa6Mnr@<6?`sD@(O=8{gH9>YduZl0m76IiTRX~t#gIE>&LWle%`tMMxRre-Oz`N+ zz)W>YpV_N%W^{f!R-z(Fq#RGSxReI;pYN?qo?aqZ&Vwp$MYw{~Ea9i(#dKpN*>g%p zw$^AuS-dP6+~=e%WjcxnJOe)sgVVNz?VULtO3+m(*gtL#eh@@S!l!j*jZ@Q^_W>F3 z?@*6q-LSns&%wo{L-ynVDwmY?)ZBRvlLPfK&y@-$F2@Ofh!Lzno%^$3fyV!MNaSPRD8tD2qm}Mfg4!AsBfi)z@}Rx%&u*N|>2S6Xn>jJc%)vYi zQ}lIl9pNl7H9s+3h1NQ<$$I(-BXY8i|Ctf{^Q|*E`H&@n*1Cf98=2%Gb=H){Ni_T$ zAlkJp+YiU(Vd*nll+8r%uJS|Dcx%%)f99YoFWI&tBD0}GEQ+pJxpB+8BY?tE-)zz1 zzI=7+4Q>A-S#h54WAR=CyAwZZmc2e>e(%A$%_+A`s#MDCSbh_m`m8%A+yW|&+2<*> zMqS4jOf(4_vdNnEt~UaI7G1_a%{+R>s|qawTkBE3_Kol4P;P?l%EB6N*e4!PZm}e7 zH3SGW{Lx}QMW$`&R*{%qRv2T#?VXXRDA`5e0ApA~?qjL{Z)1#Ul;5KlxkzrpG!-W^ z$eJ}dTfUq}g_{k%TFeYyU=8{Q6enlsdQ6iS?H#evlWq@`&wZ`Wvi>QSymbXLt{icb zxS|459*z-}XqsfuD@9p4xQ4F}J9rZfbg9)A>UDjCDoFWiQ0okEah(Y6(=9efC2zIg zwetGAzxU{#W2Q+~8@t&FXO|Q(gHD!RWctB29km7bM1_%{-jiM7wpa+bQp}dxrP7A$ zMNfCJ2|0p}?@tVzXJH8FNF-598Q1u8SoI`%fONrMYEcB$d z4A2<<9iV^m$A+@^zY6)xC8IG|=+4OWlX=kSxHC#ts$LNIVNa-vu=?r0`SojhVMqOR zrMZY{)~%h3)8ps(zk0q@WpG^ox&;KN0^*gDD%;lYbM#q4_Meg!x7L^v?U0$|@;LJO*z7th=JEnRF}G(YPFPuzIX{UfoCIYHP{hm7f_s2@aj z1Z>n=(YuBJW_>bf**1RQfC8HSL9PQ(P!IRG+nn7rVQFXFtweAS@&A*ex=*jUA!$8% zZ0_^d9>);*JnfLv%QYDVh7CaGO{X(}Ch|Lf=J?a#*N0=~svX7x01r$#V*RXTU4eRC zPCP_$PHn{sdvs{L{K`>b?V?dWj`VF4-U}Y5@AP_4jg~$9H9}Ke-4XKw+I=^q1HNIf zcyBFY*3^7gy|@*Zr(xjPkE$lLo3*0=i(dVp#n$2UFN9(6p$1`)tgpLv{8%%i^*1W- z={cIN9Ei*YeL=*>HhZq)CLF3HP3Dg(p7 zhOyE8rYcx85AcN=3|mNlYLuS`=W_6?wi&z4$p7NELgm!&U1Dw>&aif<{m}+_p>uu) zJ+5>&g_vW{dGO|Tn{!6h;c#jteXFhM{~`!YvDi9|iZDZXCg6AdS{*czF+{5(fHUKvrCr_Tn#U}c0vi-s+V~7p=3_JdMiH=AGW9o%%B|J4!X34RX(CY z7TKI+9a9;FYxS^)Y}5YRTI)t!2hcSX#3fcpA%322wYD3FRtl)rbIWq=9LK}x2b|PN z()1LNnRO=74_pZXQ5XBuN!Gmf7Q4*?NNAg3+abp1;>@N|1Z!h-jkR4w6r+8Yb<7O8 zPI!m!1i7l2x_E>(&!uOmqHiD3FuSa66amezbfjlaHguruU5<`>Fqc$y_(HHEwJUbB z-rT6MR#*7q@Q*dZi65_jUyd?b3KNCj8x9FFa z;1v8LsOL&sG>^)oIvWL@r-+J<7M1>bpeg0hu4_gDdhRL;`j_B6N3Gu)R?{*l$`2Ee zAVP5lvPZr@I}&JRZy~lyTW}H2{uW<|?x26AI4uB(R^wWj$5`h!Gf8s4cI%=#$Yo%G z{8~?4srQ__SEj}R5#ilS6!7wXgh@9G^PO=ds2!)-e3(aB@#FT&2yYMMlZ)%`us^~3 zFYO~OD?prRoC5eAQF)B4L)p7BysAceu^VQ-0Khft`2-kd$)5*mtOAp#<5r)g2%;LL z%5*jvs`ksyuL|6IHIcvi@t2wAn(8o$d9)GGZiw&y+xKbOp|af%bHyArE{45PG-qC( z(}S;-f+zJO3@LULrQ7z8%8=gcc6k5Uv&7#hXi;Bk%`;KwhBx>!DDT*~=+9t(Tgm^9 zkdot84K9GL;MrJj;toYWLbL54XB5TU)AzIWork}(vw5>{McgTp|LWBT^CxeeP9E)T z)ae1zgg!&n>CXy=o|}2}uwi`8A^5;HhDDb~6IFb^B=!v(mvh`f`?HG1fUHo?sutu1 zV(>K6js)m!ksv^0!iXBB1S@ zG;QIxGktYKBY38lQU+mn7f#X;$h6DEU(d})1y%z5k<;BPxp!oM0f?_4MBTtkkNxzQ zFM=cmg~@PM-hizgy>ykPCkBHBK`%eAOgbm!zBs*Gbp|C_b1DF)AVV7*ud?@C&y)xU z`R_g@FG$`<{7s`;?50ly&!oji){Ky~R5(7&6`((saI|h@WPaN_7F@FMvES|BS?x#b zyZZ(0w!~vgc72cLdfuww8qOw#eaDuC4J4Xgct(szmtgCnCv9BZKbtT|P|jy0*BfBZ z=FcO9ipD^?<{#Rj3!?LydN6>sZ6uZGz4nkuq}GZ3par%YIvv z!l)+Q_o*HIvvk#`$o&Xn9Fm^A_nmtFJJ_c3DE&*D(or~uZDeScO3_n!{@Fr8jZUdO5lKiKYC zF=JLcIdz9@CbyeTv;0}K(4y}Zv^e=j>LjYjo|zFA8s2A38mN+EDIw!X-9qzq`vWVzvk35~}z>bnUtCfM=Ht%IHz^xFyU18e0L z#+dGI|8h2!N7}n>(4&|OuZA{sSkBzc4t*w?mfsl{%`ea1l?RGt=vv0AYo1~Wh(Fc= z$@i&Bq+$==UwAP5B!nfeJZV*-U=Ce0aU##3YLgCrQmrAxVD9*sxVy@AU`z6oo-FRv zd0O=O)Z-N6scGN00mZpERr!ioHPq-0DMDieMK^0rW9>Zb%mF z!_qX`yW^V7FV%AUOywHp4L6Hk_M&HjU!XVFtDl%t=I9FFQ8x$puViFA70sNd5}WYb z84x-2p}p)c;_toEl9uIxh&_&xu7}L3*tS8yJ&Byjv8){Wztt zI*4qqc^V6+^y5^eAV!Sn{hMDYPiE@j5!u2{LU@XXu^f9 zNASNNUB4`EC0}X>gHeT=n@wamH1Kr@!lyGogA*MtH|QcbZ_Dk0Ha|?45;$3s770rM zf?;3m!|I(597o7Eg5K@Lw@v+oK&AM$zpY?dcl$NzGfI~O@M zoB@AIjXE(-h5Eqn2=}vPaiReygYi9)jC@%Oe`RMthV}hZ%%G){#zD6`om3Lj3E<=} zDr}-Q%Z=}L`)>iF@K$l~{U^AKf988?m`R>Ht#bwGq}mWGH|c@O5rl z71> z`0n2lQY`BVCX0l!L0?k!-H@-_Wiu$Za_1Q`C3uEzXqp))I1JVVkj`$@ZM+iHft*|o z%ry=_$XdfD_$NWE1X4&PSM0k1K*XZiRpZ{WB>pkmNg0%`dF&K{c@p_Toe;AV-pc;#)_lquCkrq&v4y_lH;MA2wX@J?ILUs za%Xa$nKPf8&1qTtDR|pxa#E?-lHn9xwOED18OZrWsz2>*iHMc6hG2ImV^xe!Lz!cE z_=_S3lMCQE=PI}RLDwJW2I2p;-1^)lXyAF->cY8c%~SSU;oJXSP%~|-K2hmuIatlA z*A#^v5_VqWsg=1|3BPx6>9y5Q>Ee^C1kw5Et$eyR+Z2^Z9G{k`6Aj(R1i!NBT_Gvk z@JE;P*KfQ(s53Y3&^h2+{e|uW=LlJ(bo~ss5UXmofpKbK!+QH`K(Ql`n_oSM0&fY^ z`<-qXsR|OX^Z%`va%sT$lk{np$-=VRHkqZrg%JXf`kFGRZw?!l}mLNZ^KMnCcP*R&n)L27Uf&(8?47B#L+}-Nq->At9g%(T3oMAEhl9@w;l0dEA5H0Zz(MsPXUZ#6`Ln4B2J_8Z#^)?Xm zMgEF6(HQpOLS|M&Ll`XCD%03Gd9ZtPbK^9;1J8Jo#pp!n^tfVv^_RZP0<&Zf(+<+c z-RD&9?KzF?lRGHkID98aQL$&$OG{LdLPM7ius>|__AKVisg z-^_cQY-1is^4bZxJZ0ExJ-xIy$R3{jvY1{Pp)U_LT-W+)C9083roxYd|ITYs5m2W8%AGnCb)%

?^_*C^#)MT4{({^z6lCQu?)jUyslAi`c~Cysp-M}2BRWoiDX(A%{JNJdB#2e|y9M-}R-k-b8`dHYW#L?D))_*})YMoA zr7)Y8ZHI&uo!Y&t%}x>y{39v~`z%DK0Tt-ONY}k}1x}Ku&O)o(@dZVeacmA6Yb_cf z&37w})Dga!fxz-PSoeu;ibf75|B8w5I9R59k5dD?*5TYsJI8S&%4Hc zmba|v6fc*epluau@xM0m`+-$FH#xma?@0*1d6tHKFhw=izG`p4l0Ay8NM0{+G_os( zcznSD3TkivG7Yzkg&96-`uF|pJan3Ch@>n*@|_w$9{f{*25;5n7?>BXimi@xr07J= zVvbg=H5-&$kgI+!)=lf-7L4n^5Jjubr zp5CT;u=*KI9~kqU&Y_;KhaRlTIn_Bp?Q!6vK=1kRuzKa~DXg;csiXCrP#}X@ogqPG zM}8rgcC08a8>q}(r1&pm^?p9B4yvJO|JJUU$jI< z5lZFM*&vQg_8%=F>ImAO9)tTAoSviwHV2FH*1UABiYC5ww(z-hecL8_A?^CpKk^zx zVY-dDZ_3w4j4U#`Q6J9eef~M}Pw7km<|I}f7D~sd?Pxq#09{r%z*cqUzuyyWnig3CN5@QTWVWTJOG%MR~RDUX%rRB|a`ht|CbTTb~&NAO4cG1!GH;u3;?*G#$KR5$?lu zBftayq6&s}1Bi)`bS-^OgA%-`TnYh4Emgg0<^c5MfJ-D%Izi&+H|&mObI% z$6W!V)*Z~U1N+@e;$_YmHUHG3RV2@Mq~6$3|5NtWA}Gu178u+3aJfv{4Z5j%yKksd z`D9B4G?csXbYLR>+g7h?Qvn=(Q|+-^wIoW(UUeg3?%rVI!wI`raN0p}oVRWMGEuMv zBvHf{!CvS!=!FD14VVbawD;(=pgx;Xqa>ZfBz;|Yn9x5@>Io{dbZuY*_ zdzSg?U3kB_5gTuxiYmd)#FGnAT|XEEOeB6f^kpb0gA;c81B|v@5itZ=PZ9gs~ zzdTwZ&)OXz^gqkHBH&ZkVtZLUKlzWlaLorZra;R{GxvW}GMvs$Fshqivx5~Gmd!tk z(lT@JYU3Qn!U8*MWk#=8Z>zl$moj(bR5)O9c0 zoi4WZjXe0V$_ZWKXuF7u*cbV0*mJZUTXZ`X4qp-_{mAs4PAoqDrV-lNTjh(=7*DP; zWTMBx!+Xwa9{Ap${!1hS*EyZz{m&{rwf9qP_jx{7ROkYEe1u4Us!45w^1HyVVs-{_ zCtv5}V_V|w+KufXm2#Zu7XE(1TD@X#(O(#qI`{Oyu$ znqABZ%&ji#HF>Of6iHL`1QimN_Z1{o)ou07NBB=fbd3>*?6wUQq6yYX5Bw-m?N<9- zT00W>clwPF;r1QX$1*_(16yyR=M-Qa%2KjUG!CXxpMgsUvMg5tWzbDpePSRF4BTxv z;?P$s2i$#CB+R%riUpY7d!j`9q)d6g zjY-M$F@|ipbt7(TUI@c7C%)O$ooRqhF(O(LHQoJ%!@vE=4u}x#oVw@``@9Rvf*Wmo z4j8$z07F(j%=6^^5?YddNA#4l!h!5wj*aM=Qjk2G-ie^hXkE7ic>>!jE@KSzffjP@ z1X-If2Xa)pMf$Urd|Bd7%vag`Z*KP>YO%j?p4ah`w5$Ht$srTZ>@_EiO!N-Cu>{SsUeFJz`-=E zSYkI%uK$M3xS_T=m@Yb`B5{VNQHeoK@l+zYF3(ov9)_D%n%msx9T%O?epIoEw`Pe| z5RqMv()EiG#Ue4T#|JC7@0<+-6dP};Q!$fCKFRn@4Of3N5gYAw!Q|r>+KQ)6T9FNQ+mq5SYpgJ8L)i0TK+`4D?w#WQ9Gdf z?G(3&I~Rg6n&8BXk5@0DbYsrE#(V}Iif=7SV@`T;d+P*1k?{swH~i_li)0$;XM8Y=;RquHR&cDx znNTVuBz3+*wC~E5mtI~T7dwfKFBOCA-eESyb^ee-@t4#==H`NZ$(6?>=Z@q@Cj>O30fq@Srw<4 zLpySckL$(|O}DJM)F#3^68+H%Q(B&(f+_EG(QdPQ#KZkNOKlQD}=vVfU$7)8w8nT)PvWq$4 zwj62)4Hna}H@nFCniXNFt=lXkV^~PGJ-Po#Chp z^&gqP2gqf~z(Jm7+ z7N?Iri))!OPAr5+RqdFZ`!{JCJ1GLk5YuT@f7h12ajChGFU|N;E~(_fth7++q87ap zTFVA-vas4&yo*l4+Zs2e@Z6YS-=F)_@XKvv&=xr-D_TJ$*& z4X5xJ2Pbdo65KkfN#6s1$L|4Fj5dmP)Px>i7nHOAL^jwzPkM{J*CyM!Kr83Nu&4Bb zFOj>BJ|kV9J$;*ZOb&lcY&-h1cUIfc7e2CHV8-}d=9i{0#XiESnQfHVRx)uB{#w|e zM0QwRs_(WiRtyj9V~_xZ?8%p!U5w7fSZwT7D5`>e0wJ^JueY(}HWSUDHz2X9e;%{# zj=hunEfIZ>_=z=P<;LcyN6uNas-&`X6MGLzm1}ZBu2t8!BHiY3;$_!jG7-Q=5)L5+maYnU#xWUQ@MC~!f3T+Rcd(LNmUEzJSD|_GO(-CZS^FjN!o8|hi z^XAuU{;6B=?U3jF&zxZzTab&GD~QaDhGuYAh*X&MglGi^op#jZ!{p5uyBe;m@3ce| z*9#Zq)(w{I3vFI>MQEml6SkdN8rQDkB{{!%^6c&}wNQ8KW`5~i%fI8Njaf|cGx9Mt zR!=Dab$M1PZZqToN$ssv{dmjYB9D29nL;OhDv!9s$_m>*TvEh&6kGjR;(vl* zu)6vuiaS6Hc)SMj_&?o6Ui`_>SN7BGAtRLI$;(Gb1naAEcnKywiPLP|;dEwmvDp<| zRz_L1C1bA)MQ?kEB{t7V~0!bG7G=0 z*ZJ9zr0_nU@roXq`lqL5Ul(U72s6?2g!KYtFDJADEmnfRFwArVE4mYCft~#V^$ngC zJ1It{8yx^yU?V?A1xTiF^S?jJG;Xi+y}IJik1Qp3>uj};Lf%y}f!$X9S4u`sx13Fm ztYktT3mI4av3L{+0Y%}L6gY(>B3HTsSs01!u9!Giy2OQ&+!qn?w>qD0X|RZDLM};> zW0_j5&AU`JW219~>i6#|s`PH$VdJxS$MlwcqnBur9$e7I`sk`G}VOf6&IIt3-wjGv} zTyF>t8%)0(N75_$u|oLG^4rar`4I&D9iPm|Rm7pM$!}f}^1M~o(oOht26Yng&FukW zsIcSSUWxTpTnGP~B;`XY)UN)%Xhcpj;XIgiy+E6HwnF1`2|Ajxob?iPzJoAY=mjp0 z_yT=GZa`iJL<5_7b{rBt71m$p%%u@-wXlc$8^0yqmPb&tg;5*J)+dQ~YYBjWg`v|* z3n%tt$xSmg$%r=cnbYJ;-{q|+MATt=gORxQgTv;!Tj2L-4G^G{&F?J=mE8vr+^R9p zUrAc7<{EU`XRz(yUG#Dxwyl!GLmk>yQH>M!%c7nO@%1nBPq|z_CWj{k@V$jz%^3hef#sW{h4ei03(IzJkAZa%?<=bK9H~POCv7Q-qV40Gf${l61 z3qUULAu2d|I-0MyfJow}vPLRSdF)2{qw@&*W8G9uFsPW?rp~|1{L)7J#h;1k@`Cz6 z+7Zq0Ml|5ljlwU2i-HCXSViw%m=}kB_4^~~=!vfDG@uKHB&mL>V^B}T6)`UkbJwBgXF6 zd@a9zWlv#wSfs>K*XsNR&Fxn<4l4P2@xoXJD@JIxaovvfL-|G3Yp+V9SU{T>_eky+ z?sH=Al7Ujs9mZaIyL&ftR-!}S>T~EL4RE|`ICb8_c`+kiWz!LM3j$KK(G8`)%oRU> z5VVqWNzR@S!uh7&MlaGPDj0iNXJ0ud9UEcI{3tsR{jxD)_AH9SJ^nf630}T#K8}8M z%My*leyOBl;hq(~urJ~Uz=(i!bOr61_fn?Rx-UrZBIV{`1jl>oT2IkJTPM8YMNeFb z%y5fZ!-=#Uh<5rLZy3)Oqu^{A6~aQ)XW;-h?)^E^irN!7E{zwdbzPIZrzpMD3OAYT zudl^{J>z_tR8-FRc(B$Aon&-407ljt_mb$kK+(XT#hv*jviNh51UvSe@zv7X{{BwB z26pf8Rq3QYe}Y;Wd->2TdFl@fnQwM^W1>`!x6EIKyz$UMlw-GZeCq7KUiiq>}t@jYeeEKIJ& zvz%3j7=GN>l#h?!ZDn>CKRAkrAmHcHQ|)5#{|Fo#0kYbKqt{_#!dEV;uQEG?y<~}} z{H9Ac5~2|n+uUcqx}#z|<5-V7W*f@JE&?m66|8-dNFnsYoF1~>Q1$5%cYsBWt$eiG zJHuD0Z{YH~nN_X>7sw3N(O*;?82e@(Atb-;2`%k2WGmjt27=oYTdhP(eb}E+!xg#} zmpIYrexl$^=vnb@mgO-Ya9>l2Ox^nIk6Itc!^J;)Wn$Fqe=%u;e>=}Bd$KgBZTE&SmkJx*k zETxocz7~!ZOcF=I1&a8L(vF>uycA75Z`Jm;-7)?e+#Z1(r3sonz7YkLk!(7%`|-YV ztE=-zuX|EqD9p+swZjWG;x%OA|;Hj%%3`*X?hzl}`kIR>`k;jT+=#RmVCfPZ}NXUK8=CLvo4Naxv!i`?7hvPRnK z-nYvAvDwB0d9kjCiJV;v#WgJmHg4_^^X(Bf2`(v12IW)Wf?b8~#yVGe_$vp-<>$ng zaZL|hLNr78UZZ-#<>G&`SxFX+>a%~Bm@nIxZDrNR%HKZojuIG$Rv+?{D{!z+f zwLgBFz1n+@UV6mVdvE15Xw&JOv2<^4R1F%H+ z^AAx`f?!9lk@zx(11G0Da z-gB+J)|%g(^ZT@~4=dLvx^N*9xRxh);@#443Ww{B#qD;RqVoUNOHS3!Kmz_SaYNcF?;KR<^ z<~QB{rk70%sva;cwG6Tx9e!7SufzMl{IXrxTEvS~v*@!0vP$K0IxFct)4~TB)tK4A z7J8dmq#}_Z-YNY`MomGWg}$Cal)jMB-T6 zc{cA82Mh&&+kYp4`fq$q2e-3)`L{ab-(A(nU!7K|J@(Us>n*a80k6=!W3s<;v7Z=G z&1co=ZHh{YF6pS|aFOp9!H<6vX8L7Vb3bZcecEYe5KK9m6^D@rdGtCt4OP_wJ`+sM z9dovs+IN!;aGVTH`t<0SMZKScJ>}p33&1oeUXVidUIU+CRj{7!ClS2~$RCj`O5^?| zR=yt1aK8?~!oj-<0}T;SGjPpyNf700Q)&`RNM#Vroz_+z@}{Z*4=Ottk8IPN2Mc@T z%ZPg>h_z=$ESe?)+gdyv;=`(({c=z&8qO-KZ4?Jm>gKTNqV?^hINjTO2Su~1vnx|w zu=?g?jZ+*?i{de9m^_=h|SOQ53z1Lu2 zh{WkPoy;aj*6XLDFjm#FcOxcoAKW4?l-kjbU&|E2@x}d);|!Bkhvx=;(n22AlxubM zJhJ=x@IS$_uE2HorfOFHXFwendg&UaWlh%4jf(uyLfY4`g(dgRA=KQSBkjRG!gDcF zA#ZSg`2;v4C%nhk#|bE@cs#XqcgJEPM^w%y2kP*8Hm+DAo-?KfzFRXmSfA%fdj5{Z*5K>1~%8YnU`Wo?Mv&d9f zco9#uu>l8+$2s(IF?H;EcrEONNL#Yc(H7T)RL0LT=4UvRuUh(2_Fe7ua5kOJnU=@? ze>j$WOlNoF{Xjm3_r~$qPu=8-{%V;I`#I%7+T<(l4l*Uv=v%pG8r29$Vc79Q%M6?u z)+iY4D$XfjOE1(M#lLxYON^Dl>?^llnRYxi)hqBIAC?dUeRurAaiBBGN`V$~f^1hx z;uKL(MwLA_x2I0#b<=}E?{*IQe{Ayy>vhrMn~MV%Exc6x#hJ&`k2ro>sZm9)F!&xv zG|wTalPd~s2Cr}h9g+J`76QZrS;7zATztd8L=BUArJ}UU41G+U&3wo&;%63&ein%j z&FZyW1iZMo0ysPJfrk~H7 z=Vf)OC_LzEPkT()HQ3Pi=#L(DrPs^OSatCi#6eA8Aml*Apffm<;M@OjtDY+K-5I9nQy%k}hx%LNsS+@2c;-vFXyGtalR|tLqgt97no}vUS z+Q~^DFLwx=*EEh*IGwoZ02v|5&J@&NVnBPVnoCcfv}{TF*gX)zH+_bIsR+tZAb?N1 zW{R_SspOU+!dxRyv4C9){23##>=BF9BPay`A7MCzl1I;S%1Pak<{NE<`by^bE*}); z?s##1FMDg}ZWrSkwqm=>a}i!$y)5MAztr)7_5u*9gtEeC)n8}xCw{9;GR7I>2kyB+ z)8D_#O01^cxh1TDJZCXepH(fpYMX0uM_-j6<)oJD!rHy{nxd8&QlYrL**JKm>2+pp zxu16ko!s2CKY#4=-qH&T{gKaP7LHxbLo{t($_}u*jH8!==#jg&GFQ!~xTS#YfG+Ok zVh6RnyP)8+q8)lz+2d`MG1GGQ*Oneq606S-Hei>O(xt1Vj`zRmYf?V2vA69{7Q>#i zbnes^&vmI?E6?Yj%$Rx?-eBGwKqM;X0^`KvCPcibFJ_B4ig<2Ie{k?rYTJAveO?Hq zt4$KzYx~tBTa{ZXVfls|A>ePpnqU~Liu!`}HvCzb0jk_7=1mW_Vp-*g!>jA9w9cuY z+jC!bMll)PTX0t zIj^)cJ<6vUK4KYls>E=mQ-Qp-$}P(4@#OW;jjc@>`k}?z{I|u*4+j85O~k1`cFVVI znfTgp-k847`CDai;O#%n{fcUi+RT08NFLdn0YdcW^3r$@PzW~r z&PTu(923Y1t)-2ipK=Pj)i*!C*-^NLD1rA}$bMgm9WHeWjKf_M4tpr41-7|alE)T; z(W$Wgeznt+>#Ih11upHm>qF)4)-~;oZF*t7L0J%>M)O9?cW42Qn=2aK^K}%Qs~!LF z^>o;$-HQewH54Pj->KZSO_o}Eb3t3h5vb8KZrtJ4OUuo6fBWeEx&CYrbV_Umefn~m zaiHPr6U*){Pm?^nz74$vQxMdQNo9!x94^=E-3~X4vQ$g2_1&S#$xOj)79>zZObPr zHkZOYC*O8PWn_~bOR`)|brt5)2BK{=DX8!)gPelw3v105QnUssG2XAz@+}-QQ2brt zt>4fA^xe26JkPM;x6Vh453F-HMnM>7F1i4nKoLA9;G@>d`JOl80k~1}>SNg&X(4VrgBeyQSx4#h>efg@f^ep6*^U|@zpDTKexDO;57?S}YSzD>&|w^cZ2 zI3o<;F9A(Ol?E7ocvaUM&uR+xjPqCv&fN4n3D*7skh!B+hdWnMky23E7? z^n$dL=)J@jtTOs2>qYYk{&+I65Gj2q8RRfgRL8J1hOIznygCeI ztSa88pizb*$CWZB)bjIk$Q4idjyy}u{E}6)vEdBUb)&dlv*wAr)xGl;z7W3o zldh`~Vtw4K}00|HDdfvEr6L-VbfA zutG*wc#VFHUYBUc#=1Xm;^@`9Gc{u10eUhPzmG#M-Byj}i*5271@!_xxE7CUSfTdQ z{OQt1zgtJr1Ea36qVAYk!)RdeGxmG-R+TgLH+7>f-v?}sz8&ro#q)8I!Dkk_mvYef z^B><%^%n3>2cuRZ4+vveyIt{v)oJj{*HTDfWxWW`6@VE#@9~jUN_rQ zd@fQ7q3V-)*n5=J;@X0A6p0oQwGvW4weT(5 z8;dV$=R3QkJR}MymtHu2~)DGk9vw52#^Rs~Qe`hM~~&JOJfFMmq?w_eb{ zIcvxBSyF$sCcfuAFrVh)RNtkAQTz}w;4Q4=ZSGl7p*h0C2L^ui8O{B?&Ixp3*@>;? z4+-qH7L=+x!Gn<6RauNW_u{>VLjK2T9yu?C(F(yq9)`#B8jhBU``BdbljfbXta>O` z$e-2`Z#KPrDxP_HaE4!r;`kPK-=^~sm$SwZzzxxL>pfQBZKA&Zz-6tmW5@k>mzDEo zjz9&)YgJmKCDW{vr2y`|oGIZ>9HzX&8Km@=sCw&&L6 zFO>QuhK12yPTxRYq`PZmh#JS%;`=WY%@sKtmD~o>3_IK9H~V+ zSWnrOZ%^LV7xdNuc#)1Du4Vl{cCDJl!}+(xUi?el^yjbtc~V|)H~TmiPu6Sp#rYWa z!Rht(KN%BjN{zmv`v+E2{Ey49nP?u+KmTq2&lrgRoAY_#m;7!2^JKyQcNE9}|GNO9 zuJS9DOdx){imDT+W(;9sn)*Y>_r!Kejd>e1!kFO+3r@R4KOc(5j=mGF`#()GcGgFr zlW7eCqc2j?TbOc4C2@P`GN#ekkASYupfl1?V=R9EMn_HRsq$)&Z_v5@?~$aM1d;Xy zx&J{CJz2r(G6;Uftzxd7ud;=yTT$j&iLS8sd6BHr5z6>cJj)<4O#F-)zr!$%eh?Y~ ztm%1Yr|SRgV1(r~V2K$t0Q6%OfVg?>F2H>HCLy1IbcQk}>`SXG2Xk|kiFCIlXx6i< z`S`(9!~dPz6I6gagoL{^{O4$7DW;_>Ftf6{ zIs4HU2V|2R>s%8REB89eQkXvOO7@MuIpmd*E>|1`rRclr1}?*-sbllM8N5bXnUCO} z^Uibu@;`Yb%9evnO(R&O&NZyM$~g*4>%)&cbs%?b7y>E(*Xm=|ohimdT_X-Ehc(M6?@{2==yo-{`N3Sz-XZJgT+SVL5* zYGiL+b=X#CiFr4�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%0D+3@ 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 z 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 z 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 VZh4OD?f*IQ^oj0c$RnGG{{=fvuLA%8 diff --git a/images/summary_header.png b/images/summary_header.png deleted file mode 100644 index e0272c63207f0e597ca695098bc0d9ab1380ebce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16731 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 + '\n\n'; + mainTitle = `![JFrog Job Summary Header](${this.MARKDOWN_HEADER_PNG_URL})` + '\n\n'; } else { mainTitle = `# 🐸 JFrog Job Summary` + '\n\n'; @@ -550,7 +551,10 @@ class Utils { platformUrl = platformUrl + '/'; } let projectKey = process.env.JF_PROJECT ? process.env.JF_PROJECT : ''; - let projectPackagesUrl = platformUrl + 'ui/packages' + '?projectKey=' + projectKey; + let projectPackagesUrl = platformUrl + 'ui/packages'; + if (projectKey) { + projectPackagesUrl += '?projectKey=' + projectKey; + } return ` 🐸 View package details on the JFrog platform ` + '\n\n'; } static getJobOutputDirectoryPath() { @@ -571,7 +575,7 @@ class Utils { return Utils.getMarkdownHeader() + fileContent + Utils.getMarkdownFooter(); } static getMarkdownFooter() { - return '\n\n # \n\n The above Job Summary was generated by the Setup JFrog CLI GitHub Action '; + return '\n\n # \n\n The above Job Summary was generated by the Setup JFrog CLI GitHub Action '; } static isHeaderPngAccessible() { return __awaiter(this, void 0, void 0, function* () { @@ -634,5 +638,8 @@ Utils.OIDC_INTEGRATION_PROVIDER_NAME = 'oidc-provider-name'; Utils.JOB_SUMMARY_DISABLE = 'disable-job-summary'; // Disable auto build info publish feature flag Utils.AUTO_BUILD_PUBLISH_DISABLE = 'disable-auto-build-publish'; -// Source URL holding the markdown header image +// URL for the markdown header image +// This is hosted statically because its usage is outside the context of the JFrog setup action. +// It cannot be linked to the repository, as GitHub serves the image from a CDN, +// which gets blocked by the browser, resulting in an empty image. Utils.MARKDOWN_HEADER_PNG_URL = 'https://media.jfrog.com/wp-content/uploads/2024/09/01120106/summary_header.png'; diff --git a/src/cleanup.ts b/src/cleanup.ts index f508781c0..01be9fd53 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -9,9 +9,7 @@ async function cleanup() { // Auto-publish build info if needed try { if (!core.getBooleanInput(Utils.AUTO_BUILD_PUBLISH_DISABLE)) { - core.startGroup('Build Info Auto-Publish'); await collectAndPublishBuildInfoIfNeeded(); - core.endGroup(); } } catch (error) { core.warning('failed while attempting to publish build info: ' + error); diff --git a/src/utils.ts b/src/utils.ts index 809c1be32..bf401ed6b 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -61,7 +61,10 @@ export class Utils { public static readonly JOB_SUMMARY_DISABLE: string = 'disable-job-summary'; // Disable auto build info publish feature flag public static readonly AUTO_BUILD_PUBLISH_DISABLE: string = 'disable-auto-build-publish'; - // Source URL holding the markdown header image + // URL for the markdown header image + // This is hosted statically because its usage is outside the context of the JFrog setup action. + // It cannot be linked to the repository, as GitHub serves the image from a CDN, + // which gets blocked by the browser, resulting in an empty image. private static MARKDOWN_HEADER_PNG_URL: string = 'https://media.jfrog.com/wp-content/uploads/2024/09/01120106/summary_header.png'; private static isSummaryHeaderAccessible: boolean; @@ -568,17 +571,18 @@ export class Utils { } private static async readMarkdownContent() { - const outputDir: string = Utils.getJobOutputDirectoryPath(); - if (existsSync(outputDir)) { - return await fs.readFile(path.join(outputDir, 'markdown.md'), 'utf-8'); + const markdownFilePath: string = path.join(Utils.getJobOutputDirectoryPath(), 'markdown.md'); + if (existsSync(markdownFilePath)) { + return await fs.readFile(markdownFilePath, 'utf-8'); } + core.debug(`No job summary file found. at ${markdownFilePath}.`); return ''; } private static getMarkdownHeader(): string { let mainTitle: string; if (this.isSummaryHeaderAccessible) { - mainTitle = `Summary-Header` + '\n\n'; + mainTitle = `![JFrog Job Summary Header](${this.MARKDOWN_HEADER_PNG_URL})` + '\n\n'; } else { mainTitle = `# 🐸 JFrog Job Summary` + '\n\n'; } @@ -599,7 +603,10 @@ export class Utils { platformUrl = platformUrl + '/'; } let projectKey: string = process.env.JF_PROJECT ? process.env.JF_PROJECT : ''; - let projectPackagesUrl: string = platformUrl + 'ui/packages' + '?projectKey=' + projectKey; + let projectPackagesUrl: string = platformUrl + 'ui/packages'; + if (projectKey) { + projectPackagesUrl += '?projectKey=' + projectKey; + } return ` 🐸 View package details on the JFrog platform ` + '\n\n'; } @@ -622,7 +629,7 @@ export class Utils { } private static getMarkdownFooter() { - return '\n\n # \n\n The above Job Summary was generated by the Setup JFrog CLI GitHub Action '; + return '\n\n # \n\n The above Job Summary was generated by the Setup JFrog CLI GitHub Action '; } private static async isHeaderPngAccessible(): Promise { From 49baf487a27fec41633b9c4f3f2eed893c63cc5c Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Mon, 2 Sep 2024 15:43:55 +0300 Subject: [PATCH 41/56] Fix Job Summary disabled on self hosted machines (#194) --- lib/utils.js | 34 ++++++++++++++-------------------- src/utils.ts | 38 ++++++++++++++++---------------------- test/main.spec.ts | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 42 deletions(-) diff --git a/lib/utils.js b/lib/utils.js index f57c860c3..db6925ab6 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -32,7 +32,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.Utils = exports.MarkdownSection = void 0; +exports.Utils = void 0; const core = __importStar(require("@actions/core")); const exec_1 = require("@actions/exec"); const http_client_1 = require("@actions/http-client"); @@ -42,12 +42,6 @@ const os_1 = require("os"); const path = __importStar(require("path")); const path_1 = require("path"); const semver_1 = require("semver"); -var MarkdownSection; -(function (MarkdownSection) { - MarkdownSection["Upload"] = "upload"; - MarkdownSection["BuildInfo"] = "build-info"; - MarkdownSection["Security"] = "security"; -})(MarkdownSection || (exports.MarkdownSection = MarkdownSection = {})); class Utils { /** * Retrieves server credentials for accessing JFrog's server @@ -175,9 +169,8 @@ class Utils { // Main OIDC user parsing logic if (subject.startsWith('jfrt@') || subject.includes('/users/')) { let lastSlashIndex = subject.lastIndexOf('/'); - let userSubstring = subject.substring(lastSlashIndex + 1); // Return the user extracted from the token - return userSubstring; + return subject.substring(lastSlashIndex + 1); } // No parsing was needed, returning original sub from the token as the user return subject; @@ -336,13 +329,11 @@ class Utils { } /** * Enabling job summary is done by setting the output dir for the summaries. - * If the output dir is not set, the CLI won't generate the summary markdown files. + * If the output dir is not set, the CLI won't generate the summary Markdown files. */ static enableJobSummaries() { - let commandSummariesOutputDir = process.env.RUNNER_TEMP; - if (commandSummariesOutputDir) { - Utils.exportVariableIfNotSet(Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, commandSummariesOutputDir); - } + let tempDir = this.getTempDirectory(); + Utils.exportVariableIfNotSet(Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, tempDir); } static exportVariableIfNotSet(key, value) { if (!process.env[key]) { @@ -594,6 +585,15 @@ class Utils { } }); } + static getTempDirectory() { + // Determine the temporary directory path, prioritizing RUNNER_TEMP + // Runner_Temp is set on GitHub machines, but on self-hosted it could be unset. + const tempDir = process.env.RUNNER_TEMP || (0, os_1.tmpdir)(); + if (!tempDir) { + throw new Error('Failed to determine the temporary directory'); + } + return tempDir; + } } exports.Utils = Utils; // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -619,12 +619,6 @@ Utils.SETUP_JFROG_CLI_SERVER_ID = 'setup-jfrog-cli-server'; Utils.JOB_SUMMARY_DIR_NAME = 'jfrog-command-summary'; // JFrog CLI command summary output directory environment variable Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV = 'JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR'; -// Workflow summary section files. Order of sections in this array impacts the order in the final markdown. -Utils.JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES = [ - MarkdownSection.Security, - MarkdownSection.BuildInfo, - MarkdownSection.Upload, -]; // Inputs // Version input Utils.CLI_VERSION_ARG = 'version'; diff --git a/src/utils.ts b/src/utils.ts index bf401ed6b..f9a765da9 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -2,19 +2,13 @@ import * as core from '@actions/core'; import { exec, ExecOptions, ExecOutput, getExecOutput } from '@actions/exec'; import { HttpClient, HttpClientResponse } from '@actions/http-client'; import * as toolCache from '@actions/tool-cache'; -import { chmodSync, existsSync, promises as fs } from 'fs'; +import { chmodSync, existsSync, mkdirSync, promises as fs } from 'fs'; import { OutgoingHttpHeaders } from 'http'; -import { arch, platform } from 'os'; +import { arch, platform, tmpdir } from 'os'; import * as path from 'path'; import { join } from 'path'; import { lt } from 'semver'; -export enum MarkdownSection { - Upload = 'upload', - BuildInfo = 'build-info', - Security = 'security', -} - export class Utils { // eslint-disable-next-line @typescript-eslint/no-var-requires public static readonly USER_AGENT: string = 'setup-jfrog-cli-github-action/' + require('../package.json').version; @@ -41,13 +35,6 @@ export class Utils { // JFrog CLI command summary output directory environment variable public static readonly JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV: string = 'JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR'; - // Workflow summary section files. Order of sections in this array impacts the order in the final markdown. - public static JOB_SUMMARY_MARKDOWN_SECTIONS_NAMES: MarkdownSection[] = [ - MarkdownSection.Security, - MarkdownSection.BuildInfo, - MarkdownSection.Upload, - ]; - // Inputs // Version input private static readonly CLI_VERSION_ARG: string = 'version'; @@ -204,9 +191,8 @@ export class Utils { // Main OIDC user parsing logic if (subject.startsWith('jfrt@') || subject.includes('/users/')) { let lastSlashIndex: number = subject.lastIndexOf('/'); - let userSubstring: string = subject.substring(lastSlashIndex + 1); // Return the user extracted from the token - return userSubstring; + return subject.substring(lastSlashIndex + 1); } // No parsing was needed, returning original sub from the token as the user return subject; @@ -384,13 +370,11 @@ export class Utils { /** * Enabling job summary is done by setting the output dir for the summaries. - * If the output dir is not set, the CLI won't generate the summary markdown files. + * If the output dir is not set, the CLI won't generate the summary Markdown files. */ private static enableJobSummaries() { - let commandSummariesOutputDir: string | undefined = process.env.RUNNER_TEMP; - if (commandSummariesOutputDir) { - Utils.exportVariableIfNotSet(Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, commandSummariesOutputDir); - } + let tempDir: string = this.getTempDirectory(); + Utils.exportVariableIfNotSet(Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, tempDir); } private static exportVariableIfNotSet(key: string, value: string) { @@ -645,6 +629,16 @@ export class Utils { httpClient.dispose(); } } + + private static getTempDirectory(): string { + // Determine the temporary directory path, prioritizing RUNNER_TEMP + // Runner_Temp is set on GitHub machines, but on self-hosted it could be unset. + const tempDir: string = process.env.RUNNER_TEMP || tmpdir(); + if (!tempDir) { + throw new Error('Failed to determine the temporary directory'); + } + return tempDir; + } } export interface DownloadDetails { diff --git a/test/main.spec.ts b/test/main.spec.ts index ca864b635..4464fd497 100644 --- a/test/main.spec.ts +++ b/test/main.spec.ts @@ -2,6 +2,7 @@ import * as os from 'os'; import * as core from '@actions/core'; import { Utils, DownloadDetails, JfrogCredentials, JWTTokenData } from '../src/utils'; +import { tmpdir } from 'os'; jest.mock('os'); jest.mock('@actions/core'); @@ -327,5 +328,40 @@ describe('Job Summaries', () => { Utils.setCliEnv(); expect(process.env[Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]).toBe('/tmp'); }); + + it('should handle self-hosted machines and set JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR based on OS temp dir', () => { + // Mock os.tmpdir() to simulate different OS temp directories + const tempDir: string = '/mocked-temp-dir'; + jest.spyOn(os, 'tmpdir').mockReturnValue(tempDir); + + myCore.getBooleanInput = jest.fn().mockImplementation(() => { + return false; + }); + myCore.exportVariable = jest.fn().mockImplementation((name: string, val: string) => { + process.env[name] = val; + }); + + Utils.setCliEnv(); + + expect(process.env[Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]).toBe(tempDir); + }); + + it('Should throw error when failing to get temp dir', () => { + // Mock os.tmpdir() to return an empty string + jest.spyOn(os, 'tmpdir').mockReturnValue(''); + + myCore.getBooleanInput = jest.fn().mockImplementation(() => { + return false; + }); + myCore.exportVariable = jest.fn().mockImplementation((name: string, val: string) => { + process.env[name] = val; + }); + + // Expect the function to throw an error + expect(() => Utils.setCliEnv()).toThrow('Failed to determine the temporary directory'); + + // Restore the mock to avoid affecting other tests + jest.restoreAllMocks(); + }); }); }); From 17e59283bc4ec12a483e74263c2e7d635bbb2606 Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Mon, 2 Sep 2024 16:27:46 +0300 Subject: [PATCH 42/56] Upgrade version to 4.3.1 (#195) --- node_modules/.package-lock.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index daf5e7afb..4640ab75d 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.0", + "version": "4.3.1", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package-lock.json b/package-lock.json index b93ead297..cbbebccbf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.0", + "version": "4.3.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.0", + "version": "4.3.1", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 4eb7b4d94..b8ae12234 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.0", + "version": "4.3.1", "private": true, "description": "Setup JFrog CLI in GitHub Actions", "main": "lib/main.js", From 900773d1b0dcc7c4ac0a39b32bec08112be8906b Mon Sep 17 00:00:00 2001 From: Michael Sverdlov Date: Mon, 2 Sep 2024 18:08:26 +0300 Subject: [PATCH 43/56] Fix missing cached JFrog CLI path on cleanup task (#197) --- lib/utils.js | 2 ++ src/utils.ts | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/utils.js b/lib/utils.js index db6925ab6..d7fbdb144 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -240,6 +240,8 @@ class Utils { if (jfExecDir && jfrogExecDir) { core.addPath(jfExecDir); core.addPath(jfrogExecDir); + // Save the JF CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and it's cleanup function. + core.saveState(Utils.JF_CLI_PATH_STATE, jfExecDir); return true; } return false; diff --git a/src/utils.ts b/src/utils.ts index f9a765da9..6909fe052 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -2,7 +2,7 @@ import * as core from '@actions/core'; import { exec, ExecOptions, ExecOutput, getExecOutput } from '@actions/exec'; import { HttpClient, HttpClientResponse } from '@actions/http-client'; import * as toolCache from '@actions/tool-cache'; -import { chmodSync, existsSync, mkdirSync, promises as fs } from 'fs'; +import { chmodSync, existsSync, promises as fs } from 'fs'; import { OutgoingHttpHeaders } from 'http'; import { arch, platform, tmpdir } from 'os'; import * as path from 'path'; @@ -265,6 +265,8 @@ export class Utils { if (jfExecDir && jfrogExecDir) { core.addPath(jfExecDir); core.addPath(jfrogExecDir); + // Save the JF CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and it's cleanup function. + core.saveState(Utils.JF_CLI_PATH_STATE, jfExecDir); return true; } return false; From cb282f675d5f7add022d9b5e5fa139bb4e6ae9e3 Mon Sep 17 00:00:00 2001 From: Michael Sverdlov Date: Mon, 2 Sep 2024 18:55:52 +0300 Subject: [PATCH 44/56] Update to version 4.3.2 (#198) --- node_modules/.package-lock.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 4640ab75d..f7aaab84c 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.1", + "version": "4.3.2", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package-lock.json b/package-lock.json index cbbebccbf..293044005 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.1", + "version": "4.3.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.1", + "version": "4.3.2", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index b8ae12234..90ee79604 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.1", + "version": "4.3.2", "private": true, "description": "Setup JFrog CLI in GitHub Actions", "main": "lib/main.js", From b5613d0b223218f5b2698c5b3a7e6a86d3b80560 Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Tue, 3 Sep 2024 19:13:05 +0300 Subject: [PATCH 45/56] Update Job Summary header (#199) --- images/job_summary.png | Bin 89510 -> 90023 bytes lib/utils.js | 22 +++++++++++++++------- src/utils.ts | 23 ++++++++++++++++------- 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/images/job_summary.png b/images/job_summary.png index 1c10d19613e91ca6ab3d6755486e3b9f18cb1947..520f02580c7c56acf647f9d56655bb5fee6b8ec8 100644 GIT binary patch literal 90023 zcmc$`2~bm86E2Fgf`|%;%A}$qAfPhODk=&x50N23RA!k8k%T086i^XR5s(=K0YMT) z0wEBhpx`0QQ-CC3jEo@(QwR`3UO4AJ|GTf=x%H}Uy<0a`RCZR?-g~X?Ufo}R-HWGo zHWuQdM@2&

mHrQZjpQU);X;$(}uT_MLfq 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ྪQM}nH94!l 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 https://platformUrl/ui/packages?projectKey=projectKey */ static getProjectPackagesLink() { - let platformUrl = process.env.JF_URL; + let platformUrl = this.getPlatformUrl(); if (!platformUrl) { return ''; } - if (!platformUrl.endsWith('/')) { - platformUrl = platformUrl + '/'; - } let projectKey = process.env.JF_PROJECT ? process.env.JF_PROJECT : ''; let projectPackagesUrl = platformUrl + 'ui/packages'; if (projectKey) { @@ -550,6 +548,16 @@ class Utils { } return ` 🐸 View package details on the JFrog platform ` + '\n\n'; } + static getPlatformUrl() { + let platformUrl = process.env.JF_URL; + if (!platformUrl) { + return ''; + } + if (!platformUrl.endsWith('/')) { + platformUrl = platformUrl + '/'; + } + return platformUrl; + } static getJobOutputDirectoryPath() { const outputDir = process.env[Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]; if (!outputDir) { @@ -638,4 +646,4 @@ Utils.AUTO_BUILD_PUBLISH_DISABLE = 'disable-auto-build-publish'; // This is hosted statically because its usage is outside the context of the JFrog setup action. // It cannot be linked to the repository, as GitHub serves the image from a CDN, // which gets blocked by the browser, resulting in an empty image. -Utils.MARKDOWN_HEADER_PNG_URL = 'https://media.jfrog.com/wp-content/uploads/2024/09/01120106/summary_header.png'; +Utils.MARKDOWN_HEADER_PNG_URL = 'https://media.jfrog.com/wp-content/uploads/2024/09/02161430/jfrog-job-summary.svg'; diff --git a/src/utils.ts b/src/utils.ts index 6909fe052..849c43b15 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -52,7 +52,7 @@ export class Utils { // This is hosted statically because its usage is outside the context of the JFrog setup action. // It cannot be linked to the repository, as GitHub serves the image from a CDN, // which gets blocked by the browser, resulting in an empty image. - private static MARKDOWN_HEADER_PNG_URL: string = 'https://media.jfrog.com/wp-content/uploads/2024/09/01120106/summary_header.png'; + private static MARKDOWN_HEADER_PNG_URL: string = 'https://media.jfrog.com/wp-content/uploads/2024/09/02161430/jfrog-job-summary.svg'; private static isSummaryHeaderAccessible: boolean; /** @@ -265,7 +265,7 @@ export class Utils { if (jfExecDir && jfrogExecDir) { core.addPath(jfExecDir); core.addPath(jfrogExecDir); - // Save the JF CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and it's cleanup function. + // Save the JF CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and its cleanup function. core.saveState(Utils.JF_CLI_PATH_STATE, jfExecDir); return true; } @@ -568,7 +568,8 @@ export class Utils { private static getMarkdownHeader(): string { let mainTitle: string; if (this.isSummaryHeaderAccessible) { - mainTitle = `![JFrog Job Summary Header](${this.MARKDOWN_HEADER_PNG_URL})` + '\n\n'; + let platformUrl: string = Utils.getPlatformUrl(); + mainTitle = `[![JFrog Job Summary Header](${this.MARKDOWN_HEADER_PNG_URL})](${platformUrl})` + '\n\n'; } else { mainTitle = `# 🐸 JFrog Job Summary` + '\n\n'; } @@ -581,13 +582,10 @@ export class Utils { * @return https://platformUrl/ui/packages?projectKey=projectKey */ private static getProjectPackagesLink(): string { - let platformUrl: string | undefined = process.env.JF_URL; + let platformUrl: string = this.getPlatformUrl(); if (!platformUrl) { return ''; } - if (!platformUrl.endsWith('/')) { - platformUrl = platformUrl + '/'; - } let projectKey: string = process.env.JF_PROJECT ? process.env.JF_PROJECT : ''; let projectPackagesUrl: string = platformUrl + 'ui/packages'; if (projectKey) { @@ -596,6 +594,17 @@ export class Utils { return ` 🐸 View package details on the JFrog platform ` + '\n\n'; } + private static getPlatformUrl(): string { + let platformUrl: string | undefined = process.env.JF_URL; + if (!platformUrl) { + return ''; + } + if (!platformUrl.endsWith('/')) { + platformUrl = platformUrl + '/'; + } + return platformUrl; + } + private static getJobOutputDirectoryPath(): string { const outputDir: string | undefined = process.env[Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]; if (!outputDir) { From c10541d991233c292bcb3386a71dc069eb8f0c91 Mon Sep 17 00:00:00 2001 From: Michael Sverdlov Date: Wed, 4 Sep 2024 19:51:17 +0300 Subject: [PATCH 46/56] Fix 'jf' path on cleanup and validate JobSummary supported CLI version (#201) --- .github/workflows/auto-build-publish-test.yml | 4 + lib/cleanup.js | 129 ++++++++++++------ lib/utils.js | 94 ++++++++----- node_modules/.package-lock.json | 2 +- package-lock.json | 4 +- package.json | 2 +- src/cleanup.ts | 119 +++++++++++----- src/utils.ts | 101 ++++++++------ test/main.spec.ts | 8 +- 9 files changed, 304 insertions(+), 159 deletions(-) diff --git a/.github/workflows/auto-build-publish-test.yml b/.github/workflows/auto-build-publish-test.yml index 9753a4cd9..2fd6ea549 100644 --- a/.github/workflows/auto-build-publish-test.yml +++ b/.github/workflows/auto-build-publish-test.yml @@ -13,11 +13,13 @@ concurrency: jobs: Auto-Build-Publish-Test: + name: Auto-Build-Publish-Test (${{ matrix.os }}) - (CLI ${{ matrix.cli-version }}) if: contains(github.event.pull_request.labels.*.name, 'safe to test') || github.event_name == 'push' strategy: fail-fast: false matrix: os: [ ubuntu, windows, macos ] + cli-version: [ "latest", "2.66.0" ] runs-on: ${{ matrix.os }}-latest steps: - name: Checkout Repository @@ -51,6 +53,8 @@ jobs: - name: Setup JFrog CLI id: setup-jfrog-cli uses: ./ + with: + version: ${{ matrix.cli-version }} env: JF_URL: http://localhost:8081/ JF_USER: admin diff --git a/lib/cleanup.js b/lib/cleanup.js index 18caf506c..5c64c53e0 100644 --- a/lib/cleanup.js +++ b/lib/cleanup.js @@ -36,31 +36,12 @@ const core = __importStar(require("@actions/core")); const utils_1 = require("./utils"); function cleanup() { return __awaiter(this, void 0, void 0, function* () { - if (!addCachedJfToPath()) { - core.error('Could not find JFrog CLI path in the step state. Skipping cleanup.'); + if (!utils_1.Utils.loadFromCache(core.getInput(utils_1.Utils.CLI_VERSION_ARG))) { + core.warning('Could not find JFrog CLI executable. Skipping cleanup.'); return; } - // Auto-publish build info if needed - try { - if (!core.getBooleanInput(utils_1.Utils.AUTO_BUILD_PUBLISH_DISABLE)) { - yield collectAndPublishBuildInfoIfNeeded(); - } - } - catch (error) { - core.warning('failed while attempting to publish build info: ' + error); - } - // Generate job summary - try { - if (!core.getBooleanInput(utils_1.Utils.JOB_SUMMARY_DISABLE)) { - core.startGroup('Generating Job Summary'); - yield utils_1.Utils.runCli(['generate-summary-markdown']); - yield utils_1.Utils.setMarkdownAsJobSummary(); - core.endGroup(); - } - } - catch (error) { - core.warning('failed while attempting to generate job summary: ' + error); - } + // Run post tasks related to Build Info (auto build publish, job summary) + yield buildInfoPostTasks(); // Cleanup JFrog CLI servers configuration try { core.startGroup('Cleanup JFrog CLI servers configuration'); @@ -74,36 +55,65 @@ function cleanup() { } }); } -function addCachedJfToPath() { - // Get the JFrog CLI path from step state. saveState/getState are methods to pass data between a step, and it's cleanup function. - const jfCliPath = core.getState(utils_1.Utils.JF_CLI_PATH_STATE); - if (!jfCliPath) { - // This means that the JFrog CLI was not installed in the first place, because there was a failure in the installation step. - return false; - } - core.addPath(jfCliPath); - return true; +/** + * Executes post tasks related to build information. + * + * This function performs several tasks after the main build process: + * 1. Checks if auto build publish and job summary are disabled. + * 2. Verifies connection to JFrog Artifactory. + * 3. Collects and publishes build information if needed. + * 4. Generates a job summary if required. + */ +function buildInfoPostTasks() { + return __awaiter(this, void 0, void 0, function* () { + const disableAutoBuildPublish = core.getBooleanInput(utils_1.Utils.AUTO_BUILD_PUBLISH_DISABLE); + const disableJobSummary = core.getBooleanInput(utils_1.Utils.JOB_SUMMARY_DISABLE) || !utils_1.Utils.isJobSummarySupported(); + if (disableAutoBuildPublish && disableJobSummary) { + core.info(`Both auto-build-publish and job-summary are disabled. Skipping Build Info post tasks.`); + return; + } + // Check connection to Artifactory before proceeding with build info post tasks + if (!(yield checkConnectionToArtifactory())) { + return; + } + // Auto-publish build info if needed + if (!disableAutoBuildPublish) { + yield collectAndPublishBuildInfoIfNeeded(); + } + else { + core.info('Auto build info publish is disabled. Skipping auto build info collection and publishing'); + } + // Generate job summary if not disabled and the JFrog CLI version supports it + if (!disableJobSummary) { + yield generateJobSummary(); + } + else { + core.info('Job summary is disabled. Skipping job summary generation'); + } + }); } function hasUnpublishedModules(workingDirectory) { return __awaiter(this, void 0, void 0, function* () { // Save the old value of the environment variable to revert it later const origValue = process.env[utils_1.Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]; try { + core.startGroup('Check for unpublished modules'); // Avoid saving a command summary for this dry-run command core.exportVariable(utils_1.Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, ''); // Running build-publish command with a dry-run flag to check if there are any unpublished modules, 'silent' to avoid polluting the logs - const responseStr = yield utils_1.Utils.runCliAndGetOutput(['rt', 'build-publish', '--dry-run'], { silent: true, cwd: workingDirectory }); + const responseStr = yield utils_1.Utils.runCliAndGetOutput(['rt', 'build-publish', '--dry-run'], { cwd: workingDirectory }); // Parse the JSON string to an object const response = JSON.parse(responseStr); // Check if the "modules" key exists and if it's an array with more than one item return response.modules != undefined && Array.isArray(response.modules) && response.modules.length > 0; } catch (error) { - core.error('Failed to parse JSON: ' + error); - return false; // Return false if parsing fails + core.warning('Failed to check if there are any unpublished modules: ' + error); + return false; } finally { core.exportVariable(utils_1.Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, origValue); + core.endGroup(); } }); } @@ -121,14 +131,19 @@ function collectAndPublishBuildInfoIfNeeded() { yield utils_1.Utils.runCli(['rt', 'build-add-git'], { cwd: workingDirectory }); } catch (error) { - core.warning('failed while attempting to collect Git information: ' + error); + core.warning('Failed while attempting to collect Git information: ' + error); + } + finally { + core.endGroup(); + } + // Publish the build info to Artifactory + try { + core.startGroup('Publish the build info to JFrog Artifactory'); + yield utils_1.Utils.runCli(['rt', 'build-publish'], { cwd: workingDirectory }); } finally { core.endGroup(); } - core.startGroup('Publish the build info to JFrog Artifactory'); - yield utils_1.Utils.runCli(['rt', 'build-publish'], { cwd: workingDirectory }); - core.endGroup(); }); } function getWorkingDirectory() { @@ -138,4 +153,40 @@ function getWorkingDirectory() { } return workingDirectory; } +function checkConnectionToArtifactory() { + return __awaiter(this, void 0, void 0, function* () { + try { + core.startGroup('Checking connection to JFrog Artifactory'); + const pingResult = yield utils_1.Utils.runCliAndGetOutput(['rt', 'ping']); + if (pingResult !== 'OK') { + core.debug(`Ping result: ${pingResult}`); + core.warning('Could not connect to Artifactory. Skipping Build Info post tasks.'); + return false; + } + return true; + } + catch (error) { + core.warning(`An error occurred while trying to connect to Artifactory: ${error}. Skipping Build Info post tasks.`); + return false; + } + finally { + core.endGroup(); + } + }); +} +function generateJobSummary() { + return __awaiter(this, void 0, void 0, function* () { + try { + core.startGroup('Generating Job Summary'); + yield utils_1.Utils.runCli(['generate-summary-markdown']); + yield utils_1.Utils.setMarkdownAsJobSummary(); + } + catch (error) { + core.warning('Failed while attempting to generate job summary: ' + error); + } + finally { + core.endGroup(); + } + }); +} cleanup(); diff --git a/lib/utils.js b/lib/utils.js index 451ff0fa7..4f82aceec 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -200,48 +200,45 @@ class Utils { return __awaiter(this, void 0, void 0, function* () { let version = core.getInput(Utils.CLI_VERSION_ARG); let cliRemote = core.getInput(Utils.CLI_REMOTE_ARG); - let major = version.split('.')[0]; - if (version === Utils.LATEST_CLI_VERSION) { - version = Utils.LATEST_RELEASE_VERSION; - major = '2'; - } - else if ((0, semver_1.lt)(version, this.MIN_CLI_VERSION)) { + const isLatestVer = version === Utils.LATEST_CLI_VERSION; + if (!isLatestVer && (0, semver_1.lt)(version, this.MIN_CLI_VERSION)) { throw new Error('Requested to download JFrog CLI version ' + version + ' but must be at least ' + this.MIN_CLI_VERSION); } - let jfFileName = Utils.getJfExecutableName(); - let jfrogFileName = Utils.getJFrogExecutableName(); - if (this.loadFromCache(jfFileName, jfrogFileName, version)) { - // Download is not needed + if (!isLatestVer && this.loadFromCache(version)) { + core.info('Found JFrog CLI in cache. No need to download'); return; } // Download JFrog CLI let downloadDetails = Utils.extractDownloadDetails(cliRemote, jfrogCredentials); - let url = Utils.getCliUrl(major, version, jfrogFileName, downloadDetails); + let url = Utils.getCliUrl(version, Utils.getJFrogExecutableName(), downloadDetails); core.info('Downloading JFrog CLI from ' + url); let downloadedExecutable = yield toolCache.downloadTool(url, undefined, downloadDetails.auth); // Cache 'jf' and 'jfrog' executables - yield this.cacheAndAddPath(downloadedExecutable, version, jfFileName, jfrogFileName); + yield this.cacheAndAddPath(downloadedExecutable, version); }); } /** * Try to load the JFrog CLI executables from cache. * - * @param jfFileName - 'jf' or 'jf.exe' - * @param jfrogFileName - 'jfrog' or 'jfrog.exe' * @param version - JFrog CLI version * @returns true if the CLI executable was loaded from cache and added to path */ - static loadFromCache(jfFileName, jfrogFileName, version) { - if (version === Utils.LATEST_RELEASE_VERSION) { - return false; - } - let jfExecDir = toolCache.find(jfFileName, version); - let jfrogExecDir = toolCache.find(jfrogFileName, version); + static loadFromCache(version) { + const jfFileName = Utils.getJfExecutableName(); + const jfrogFileName = Utils.getJFrogExecutableName(); + if (version === Utils.LATEST_CLI_VERSION) { + // If the version is 'latest', we keep it on cache as 100.100.100 + version = Utils.LATEST_SEMVER; + } + const jfExecDir = toolCache.find(jfFileName, version); + const jfrogExecDir = toolCache.find(jfrogFileName, version); if (jfExecDir && jfrogExecDir) { core.addPath(jfExecDir); core.addPath(jfrogExecDir); - // Save the JF CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and its cleanup function. - core.saveState(Utils.JF_CLI_PATH_STATE, jfExecDir); + if (!Utils.isWindows()) { + (0, fs_1.chmodSync)((0, path_1.join)(jfExecDir, jfFileName), 0o555); + (0, fs_1.chmodSync)((0, path_1.join)(jfrogExecDir, jfrogFileName), 0o555); + } return true; } return false; @@ -250,11 +247,15 @@ class Utils { * Add JFrog CLI executables to cache and to the system path. * @param downloadedExecutable - Path to the downloaded JFrog CLI executable * @param version - JFrog CLI version - * @param jfFileName - 'jf' or 'jf.exe' - * @param jfrogFileName - 'jfrog' or 'jfrog.exe' */ - static cacheAndAddPath(downloadedExecutable, version, jfFileName, jfrogFileName) { + static cacheAndAddPath(downloadedExecutable, version) { return __awaiter(this, void 0, void 0, function* () { + if (version === Utils.LATEST_CLI_VERSION) { + // If the version is 'latest', we keep it on cache as 100.100.100 as GitHub actions cache supports only semver versions + version = Utils.LATEST_SEMVER; + } + const jfFileName = Utils.getJfExecutableName(); + const jfrogFileName = Utils.getJFrogExecutableName(); let jfCacheDir = yield toolCache.cacheFile(downloadedExecutable, jfFileName, jfFileName, version); core.addPath(jfCacheDir); let jfrogCacheDir = yield toolCache.cacheFile(downloadedExecutable, jfrogFileName, jfrogFileName, version); @@ -263,13 +264,25 @@ class Utils { (0, fs_1.chmodSync)((0, path_1.join)(jfCacheDir, jfFileName), 0o555); (0, fs_1.chmodSync)((0, path_1.join)(jfrogCacheDir, jfrogFileName), 0o555); } - // Save the JF CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and it's cleanup function. - core.saveState(Utils.JF_CLI_PATH_STATE, jfCacheDir); }); } - static getCliUrl(major, version, fileName, downloadDetails) { - let architecture = 'jfrog-cli-' + Utils.getArchitecture(); - let artifactoryUrl = downloadDetails.artifactoryUrl.replace(/\/$/, ''); + /** + * Get the JFrog CLI download URL. + * @param version - Requested version + * @param fileName - Executable file name + * @param downloadDetails - Source Artifactory details + */ + static getCliUrl(version, fileName, downloadDetails) { + const architecture = 'jfrog-cli-' + Utils.getArchitecture(); + const artifactoryUrl = downloadDetails.artifactoryUrl.replace(/\/$/, ''); + let major; + if (version === Utils.LATEST_CLI_VERSION) { + version = Utils.LATEST_RELEASE_VERSION; + major = '2'; + } + else { + major = version.split('.')[0]; + } return `${artifactoryUrl}/${downloadDetails.repository}/v${major}/${version}/${architecture}/${fileName}`; } // Get Config Tokens created on your local machine using JFrog CLI. @@ -411,11 +424,14 @@ class Utils { */ static runCliAndGetOutput(args, options) { return __awaiter(this, void 0, void 0, function* () { - let output = yield (0, exec_1.getExecOutput)('jf', args, options); + let output; + output = yield (0, exec_1.getExecOutput)('jf', args, Object.assign(Object.assign({}, options), { ignoreReturnCode: true })); if (output.exitCode !== core.ExitCode.Success) { - core.info(output.stdout); - core.info(output.stderr); - throw new Error('JFrog CLI exited with exit code ' + output.exitCode); + if (options === null || options === void 0 ? void 0 : options.silent) { + core.info(output.stdout); + core.info(output.stderr); + } + throw new Error(`JFrog CLI exited with exit code ${output.exitCode}`); } return output.stdout; }); @@ -467,6 +483,10 @@ class Utils { } return; } + static isJobSummarySupported() { + const version = core.getInput(Utils.CLI_VERSION_ARG); + return version === Utils.LATEST_CLI_VERSION || (0, semver_1.gt)(version, Utils.MIN_CLI_VERSION_JOB_SUMMARY); + } /** * Generates GitHub workflow unified Summary report. * This function runs as part of post-workflow cleanup function, @@ -621,14 +641,16 @@ Utils.MIN_CLI_VERSION = '1.46.4'; Utils.LATEST_CLI_VERSION = 'latest'; // The value in the download URL to set to get the latest version Utils.LATEST_RELEASE_VERSION = '[RELEASE]'; -// State name for saving JF CLI path to use on cleanup -Utils.JF_CLI_PATH_STATE = 'JF_CLI_PATH_STATE'; +// Placeholder CLI version to use to keep 'latest' in cache. +Utils.LATEST_SEMVER = '100.100.100'; // The default server id name for separate env config Utils.SETUP_JFROG_CLI_SERVER_ID = 'setup-jfrog-cli-server'; // Directory name which holds markdown files for the Workflow summary Utils.JOB_SUMMARY_DIR_NAME = 'jfrog-command-summary'; // JFrog CLI command summary output directory environment variable Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV = 'JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR'; +// Minimum JFrog CLI version supported for job summary command +Utils.MIN_CLI_VERSION_JOB_SUMMARY = '2.66.0'; // Inputs // Version input Utils.CLI_VERSION_ARG = 'version'; diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index f7aaab84c..280e17aca 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.2", + "version": "4.3.3", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package-lock.json b/package-lock.json index 293044005..b7e4facbf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.2", + "version": "4.3.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.2", + "version": "4.3.3", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 90ee79604..4c8437d61 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.2", + "version": "4.3.3", "private": true, "description": "Setup JFrog CLI in GitHub Actions", "main": "lib/main.js", diff --git a/src/cleanup.ts b/src/cleanup.ts index 01be9fd53..0f1b86807 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -2,29 +2,13 @@ import * as core from '@actions/core'; import { Utils } from './utils'; async function cleanup() { - if (!addCachedJfToPath()) { - core.error('Could not find JFrog CLI path in the step state. Skipping cleanup.'); + if (!Utils.loadFromCache(core.getInput(Utils.CLI_VERSION_ARG))) { + core.warning('Could not find JFrog CLI executable. Skipping cleanup.'); return; } - // Auto-publish build info if needed - try { - if (!core.getBooleanInput(Utils.AUTO_BUILD_PUBLISH_DISABLE)) { - await collectAndPublishBuildInfoIfNeeded(); - } - } catch (error) { - core.warning('failed while attempting to publish build info: ' + error); - } - // Generate job summary - try { - if (!core.getBooleanInput(Utils.JOB_SUMMARY_DISABLE)) { - core.startGroup('Generating Job Summary'); - await Utils.runCli(['generate-summary-markdown']); - await Utils.setMarkdownAsJobSummary(); - core.endGroup(); - } - } catch (error) { - core.warning('failed while attempting to generate job summary: ' + error); - } + // Run post tasks related to Build Info (auto build publish, job summary) + await buildInfoPostTasks(); + // Cleanup JFrog CLI servers configuration try { core.startGroup('Cleanup JFrog CLI servers configuration'); @@ -36,15 +20,41 @@ async function cleanup() { } } -function addCachedJfToPath(): boolean { - // Get the JFrog CLI path from step state. saveState/getState are methods to pass data between a step, and it's cleanup function. - const jfCliPath: string = core.getState(Utils.JF_CLI_PATH_STATE); - if (!jfCliPath) { - // This means that the JFrog CLI was not installed in the first place, because there was a failure in the installation step. - return false; +/** + * Executes post tasks related to build information. + * + * This function performs several tasks after the main build process: + * 1. Checks if auto build publish and job summary are disabled. + * 2. Verifies connection to JFrog Artifactory. + * 3. Collects and publishes build information if needed. + * 4. Generates a job summary if required. + */ +async function buildInfoPostTasks() { + const disableAutoBuildPublish: boolean = core.getBooleanInput(Utils.AUTO_BUILD_PUBLISH_DISABLE); + const disableJobSummary: boolean = core.getBooleanInput(Utils.JOB_SUMMARY_DISABLE) || !Utils.isJobSummarySupported(); + if (disableAutoBuildPublish && disableJobSummary) { + core.info(`Both auto-build-publish and job-summary are disabled. Skipping Build Info post tasks.`); + return; + } + + // Check connection to Artifactory before proceeding with build info post tasks + if (!(await checkConnectionToArtifactory())) { + return; + } + + // Auto-publish build info if needed + if (!disableAutoBuildPublish) { + await collectAndPublishBuildInfoIfNeeded(); + } else { + core.info('Auto build info publish is disabled. Skipping auto build info collection and publishing'); + } + + // Generate job summary if not disabled and the JFrog CLI version supports it + if (!disableJobSummary) { + await generateJobSummary(); + } else { + core.info('Job summary is disabled. Skipping job summary generation'); } - core.addPath(jfCliPath); - return true; } interface BuildPublishResponse { @@ -55,21 +65,23 @@ async function hasUnpublishedModules(workingDirectory: string): Promise // Save the old value of the environment variable to revert it later const origValue: string | undefined = process.env[Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV]; try { + core.startGroup('Check for unpublished modules'); // Avoid saving a command summary for this dry-run command core.exportVariable(Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, ''); // Running build-publish command with a dry-run flag to check if there are any unpublished modules, 'silent' to avoid polluting the logs - const responseStr: string = await Utils.runCliAndGetOutput(['rt', 'build-publish', '--dry-run'], { silent: true, cwd: workingDirectory }); + const responseStr: string = await Utils.runCliAndGetOutput(['rt', 'build-publish', '--dry-run'], { cwd: workingDirectory }); // Parse the JSON string to an object const response: BuildPublishResponse = JSON.parse(responseStr); // Check if the "modules" key exists and if it's an array with more than one item return response.modules != undefined && Array.isArray(response.modules) && response.modules.length > 0; } catch (error) { - core.error('Failed to parse JSON: ' + error); - return false; // Return false if parsing fails + core.warning('Failed to check if there are any unpublished modules: ' + error); + return false; } finally { core.exportVariable(Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV, origValue); + core.endGroup(); } } @@ -82,19 +94,22 @@ async function collectAndPublishBuildInfoIfNeeded() { // The flow here is to collect Git information before publishing the build info. // We allow this step to fail, and we don't want to fail the entire build publish if they do. - try { core.startGroup('Collect the Git information'); await Utils.runCli(['rt', 'build-add-git'], { cwd: workingDirectory }); } catch (error) { - core.warning('failed while attempting to collect Git information: ' + error); + core.warning('Failed while attempting to collect Git information: ' + error); } finally { core.endGroup(); } - core.startGroup('Publish the build info to JFrog Artifactory'); - await Utils.runCli(['rt', 'build-publish'], { cwd: workingDirectory }); - core.endGroup(); + // Publish the build info to Artifactory + try { + core.startGroup('Publish the build info to JFrog Artifactory'); + await Utils.runCli(['rt', 'build-publish'], { cwd: workingDirectory }); + } finally { + core.endGroup(); + } } function getWorkingDirectory(): string { @@ -105,4 +120,34 @@ function getWorkingDirectory(): string { return workingDirectory; } +async function checkConnectionToArtifactory(): Promise { + try { + core.startGroup('Checking connection to JFrog Artifactory'); + const pingResult: string = await Utils.runCliAndGetOutput(['rt', 'ping']); + if (pingResult !== 'OK') { + core.debug(`Ping result: ${pingResult}`); + core.warning('Could not connect to Artifactory. Skipping Build Info post tasks.'); + return false; + } + return true; + } catch (error) { + core.warning(`An error occurred while trying to connect to Artifactory: ${error}. Skipping Build Info post tasks.`); + return false; + } finally { + core.endGroup(); + } +} + +async function generateJobSummary() { + try { + core.startGroup('Generating Job Summary'); + await Utils.runCli(['generate-summary-markdown']); + await Utils.setMarkdownAsJobSummary(); + } catch (error) { + core.warning('Failed while attempting to generate job summary: ' + error); + } finally { + core.endGroup(); + } +} + cleanup(); diff --git a/src/utils.ts b/src/utils.ts index 849c43b15..96e68448c 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -7,7 +7,7 @@ import { OutgoingHttpHeaders } from 'http'; import { arch, platform, tmpdir } from 'os'; import * as path from 'path'; import { join } from 'path'; -import { lt } from 'semver'; +import { gt, lt } from 'semver'; export class Utils { // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -26,18 +26,20 @@ export class Utils { private static readonly LATEST_CLI_VERSION: string = 'latest'; // The value in the download URL to set to get the latest version private static readonly LATEST_RELEASE_VERSION: string = '[RELEASE]'; - // State name for saving JF CLI path to use on cleanup - public static readonly JF_CLI_PATH_STATE: string = 'JF_CLI_PATH_STATE'; + // Placeholder CLI version to use to keep 'latest' in cache. + public static readonly LATEST_SEMVER: string = '100.100.100'; // The default server id name for separate env config public static readonly SETUP_JFROG_CLI_SERVER_ID: string = 'setup-jfrog-cli-server'; // Directory name which holds markdown files for the Workflow summary private static readonly JOB_SUMMARY_DIR_NAME: string = 'jfrog-command-summary'; // JFrog CLI command summary output directory environment variable public static readonly JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV: string = 'JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR'; + // Minimum JFrog CLI version supported for job summary command + private static readonly MIN_CLI_VERSION_JOB_SUMMARY: string = '2.66.0'; // Inputs // Version input - private static readonly CLI_VERSION_ARG: string = 'version'; + public static readonly CLI_VERSION_ARG: string = 'version'; // Download repository input private static readonly CLI_REMOTE_ARG: string = 'download-repository'; // OpenID Connect audience input @@ -223,50 +225,48 @@ export class Utils { public static async getAndAddCliToPath(jfrogCredentials: JfrogCredentials) { let version: string = core.getInput(Utils.CLI_VERSION_ARG); let cliRemote: string = core.getInput(Utils.CLI_REMOTE_ARG); - let major: string = version.split('.')[0]; - if (version === Utils.LATEST_CLI_VERSION) { - version = Utils.LATEST_RELEASE_VERSION; - major = '2'; - } else if (lt(version, this.MIN_CLI_VERSION)) { + const isLatestVer: boolean = version === Utils.LATEST_CLI_VERSION; + + if (!isLatestVer && lt(version, this.MIN_CLI_VERSION)) { throw new Error('Requested to download JFrog CLI version ' + version + ' but must be at least ' + this.MIN_CLI_VERSION); } - - let jfFileName: string = Utils.getJfExecutableName(); - let jfrogFileName: string = Utils.getJFrogExecutableName(); - if (this.loadFromCache(jfFileName, jfrogFileName, version)) { - // Download is not needed + if (!isLatestVer && this.loadFromCache(version)) { + core.info('Found JFrog CLI in cache. No need to download'); return; } - // Download JFrog CLI let downloadDetails: DownloadDetails = Utils.extractDownloadDetails(cliRemote, jfrogCredentials); - let url: string = Utils.getCliUrl(major, version, jfrogFileName, downloadDetails); + let url: string = Utils.getCliUrl(version, Utils.getJFrogExecutableName(), downloadDetails); core.info('Downloading JFrog CLI from ' + url); let downloadedExecutable: string = await toolCache.downloadTool(url, undefined, downloadDetails.auth); // Cache 'jf' and 'jfrog' executables - await this.cacheAndAddPath(downloadedExecutable, version, jfFileName, jfrogFileName); + await this.cacheAndAddPath(downloadedExecutable, version); } /** * Try to load the JFrog CLI executables from cache. * - * @param jfFileName - 'jf' or 'jf.exe' - * @param jfrogFileName - 'jfrog' or 'jfrog.exe' * @param version - JFrog CLI version * @returns true if the CLI executable was loaded from cache and added to path */ - private static loadFromCache(jfFileName: string, jfrogFileName: string, version: string): boolean { - if (version === Utils.LATEST_RELEASE_VERSION) { - return false; + public static loadFromCache(version: string): boolean { + const jfFileName: string = Utils.getJfExecutableName(); + const jfrogFileName: string = Utils.getJFrogExecutableName(); + if (version === Utils.LATEST_CLI_VERSION) { + // If the version is 'latest', we keep it on cache as 100.100.100 + version = Utils.LATEST_SEMVER; } - let jfExecDir: string = toolCache.find(jfFileName, version); - let jfrogExecDir: string = toolCache.find(jfrogFileName, version); + const jfExecDir: string = toolCache.find(jfFileName, version); + const jfrogExecDir: string = toolCache.find(jfrogFileName, version); if (jfExecDir && jfrogExecDir) { core.addPath(jfExecDir); core.addPath(jfrogExecDir); - // Save the JF CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and its cleanup function. - core.saveState(Utils.JF_CLI_PATH_STATE, jfExecDir); + + if (!Utils.isWindows()) { + chmodSync(join(jfExecDir, jfFileName), 0o555); + chmodSync(join(jfrogExecDir, jfrogFileName), 0o555); + } return true; } return false; @@ -276,10 +276,14 @@ export class Utils { * Add JFrog CLI executables to cache and to the system path. * @param downloadedExecutable - Path to the downloaded JFrog CLI executable * @param version - JFrog CLI version - * @param jfFileName - 'jf' or 'jf.exe' - * @param jfrogFileName - 'jfrog' or 'jfrog.exe' */ - private static async cacheAndAddPath(downloadedExecutable: string, version: string, jfFileName: string, jfrogFileName: string) { + private static async cacheAndAddPath(downloadedExecutable: string, version: string) { + if (version === Utils.LATEST_CLI_VERSION) { + // If the version is 'latest', we keep it on cache as 100.100.100 as GitHub actions cache supports only semver versions + version = Utils.LATEST_SEMVER; + } + const jfFileName: string = Utils.getJfExecutableName(); + const jfrogFileName: string = Utils.getJFrogExecutableName(); let jfCacheDir: string = await toolCache.cacheFile(downloadedExecutable, jfFileName, jfFileName, version); core.addPath(jfCacheDir); @@ -290,16 +294,27 @@ export class Utils { chmodSync(join(jfCacheDir, jfFileName), 0o555); chmodSync(join(jfrogCacheDir, jfrogFileName), 0o555); } - - // Save the JF CLI path to use on cleanup. saveState/getState are methods to pass data between a step, and it's cleanup function. - core.saveState(Utils.JF_CLI_PATH_STATE, jfCacheDir); } - public static getCliUrl(major: string, version: string, fileName: string, downloadDetails: DownloadDetails): string { - let architecture: string = 'jfrog-cli-' + Utils.getArchitecture(); - let artifactoryUrl: string = downloadDetails.artifactoryUrl.replace(/\/$/, ''); + /** + * Get the JFrog CLI download URL. + * @param version - Requested version + * @param fileName - Executable file name + * @param downloadDetails - Source Artifactory details + */ + public static getCliUrl(version: string, fileName: string, downloadDetails: DownloadDetails): string { + const architecture: string = 'jfrog-cli-' + Utils.getArchitecture(); + const artifactoryUrl: string = downloadDetails.artifactoryUrl.replace(/\/$/, ''); + let major: string; + if (version === Utils.LATEST_CLI_VERSION) { + version = Utils.LATEST_RELEASE_VERSION; + major = '2'; + } else { + major = version.split('.')[0]; + } return `${artifactoryUrl}/${downloadDetails.repository}/v${major}/${version}/${architecture}/${fileName}`; } + // Get Config Tokens created on your local machine using JFrog CLI. // The Tokens configured with JF_ENV_ environment variables. public static getConfigTokens(): Set { @@ -455,11 +470,14 @@ export class Utils { * @throws An error if the JFrog CLI command exits with a non-success code. */ public static async runCliAndGetOutput(args: string[], options?: ExecOptions): Promise { - let output: ExecOutput = await getExecOutput('jf', args, options); + let output: ExecOutput; + output = await getExecOutput('jf', args, { ...options, ignoreReturnCode: true }); if (output.exitCode !== core.ExitCode.Success) { - core.info(output.stdout); - core.info(output.stderr); - throw new Error('JFrog CLI exited with exit code ' + output.exitCode); + if (options?.silent) { + core.info(output.stdout); + core.info(output.stderr); + } + throw new Error(`JFrog CLI exited with exit code ${output.exitCode}`); } return output.stdout; } @@ -516,6 +534,11 @@ export class Utils { return; } + public static isJobSummarySupported(): boolean { + const version: string = core.getInput(Utils.CLI_VERSION_ARG); + return version === Utils.LATEST_CLI_VERSION || gt(version, Utils.MIN_CLI_VERSION_JOB_SUMMARY); + } + /** * Generates GitHub workflow unified Summary report. * This function runs as part of post-workflow cleanup function, diff --git a/test/main.spec.ts b/test/main.spec.ts index 4464fd497..2b4cbdeab 100644 --- a/test/main.spec.ts +++ b/test/main.spec.ts @@ -168,11 +168,11 @@ describe('JFrog CLI V1 URL Tests', () => { test.each(cases)('CLI Url for %s-%s', (platform, arch, fileName, expectedUrl) => { myOs.platform.mockImplementation(() => platform); myOs.arch.mockImplementation(() => arch); - let cliUrl: string = Utils.getCliUrl('1', '1.2.3', fileName, Utils.DEFAULT_DOWNLOAD_DETAILS); + let cliUrl: string = Utils.getCliUrl('1.2.3', fileName, Utils.DEFAULT_DOWNLOAD_DETAILS); expect(cliUrl).toBe(DEFAULT_CLI_URL + expectedUrl); process.env.JF_ENV_LOCAL = V1_CONFIG; - cliUrl = Utils.getCliUrl('1', '1.2.3', fileName, Utils.extractDownloadDetails('jfrog-cli-remote', {} as JfrogCredentials)); + cliUrl = Utils.getCliUrl('1.2.3', fileName, Utils.extractDownloadDetails('jfrog-cli-remote', {} as JfrogCredentials)); expect(cliUrl).toBe(CUSTOM_CLI_URL + expectedUrl); }); }); @@ -193,11 +193,11 @@ describe('JFrog CLI V2 URL Tests', () => { myOs.platform.mockImplementation(() => platform); myOs.arch.mockImplementation(() => arch); - let cliUrl: string = Utils.getCliUrl('2', '2.3.4', fileName, Utils.extractDownloadDetails('', {} as JfrogCredentials)); + let cliUrl: string = Utils.getCliUrl('2.3.4', fileName, Utils.extractDownloadDetails('', {} as JfrogCredentials)); expect(cliUrl).toBe(DEFAULT_CLI_URL + expectedUrl); process.env.JF_ENV_LOCAL = V2_CONFIG; - cliUrl = Utils.getCliUrl('2', '2.3.4', fileName, Utils.extractDownloadDetails('jfrog-cli-remote', {} as JfrogCredentials)); + cliUrl = Utils.getCliUrl('2.3.4', fileName, Utils.extractDownloadDetails('jfrog-cli-remote', {} as JfrogCredentials)); expect(cliUrl).toBe(CUSTOM_CLI_URL + expectedUrl); }); }); From 4ddfa9d53317ab9f279d65203481b76ae4b15c70 Mon Sep 17 00:00:00 2001 From: Robi Nino Date: Wed, 4 Sep 2024 20:02:30 +0300 Subject: [PATCH 47/56] Documentation Improvements (#204) --- README.md | 118 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 71 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index 14ed43a04..bb73e6b1e 100644 --- a/README.md +++ b/README.md @@ -14,12 +14,13 @@ - [Overview](#overview) - [Usage](#usage) - [Authentication Methods](#Authentication-Methods) -- [Setting the build name and build number when publishing build-info to Artifactory](#setting-the-build-name-and-build-number-when-publishing-build-info-to-artifactory) -- [Setting JFrog CLI version](#setting-jfrog-cli-version) -- [Setting the JFrog project key](#setting-the-jfrog-project-key) -- [Downloading JFrog CLI from Artifactory](#downloading-jfrog-cli-from-artifactory) +- [General Configuration](#general-configuration) + - [Setting Build Name and Number for Build Info Publication](#setting-build-name-and-number-for-build-info-publication) + - [Setting JFrog CLI Version](#setting-jfrog-cli-version) + - [Setting the JFrog Project Key](#setting-the-jfrog-project-key) + - [Downloading JFrog CLI from Artifactory](#downloading-jfrog-cli-from-artifactory) - [JFrog Job Summary](#jfrog-job-summary) -- [Example projects](#example-projects) +- [Example Projects](#example-projects) - [Contributions](#contributions) - [References](#references) @@ -29,54 +30,22 @@ This GitHub Action downloads, installs and configures [JFrog CLI](https://docs.j Additionally, the Action incorporates the following features when utilizing JFrog CLI to interact with the JFrog Platform: -- Three distinct methods are available for authenticating with the JFrog Platform. Explore more details [here](#Authentication-Methods) -- There's no need to add the _build name_ and _build number_ options and arguments to commands which accept them. - All build related operations will be automatically recorded with the _Workflow Name_ as build name and _Run Number_ as build number. +- **Versatile authentication methods** - Three distinct methods are available for [authenticating](#Authentication-Methods) with the JFrog Platform. +- **Seamless build info generation** - All build related operations will be automatically recorded, and the collected build info will be published at the end of the workflow. There's no need to add the _build name_ and _build number_ options and arguments to commands which accept them, and no need to run `jf rt build-publish` for the build to be published. +- **Extensive Job Summary** - A detailed summary of key JFrog CLI commands executed during the workflow will be generated and displayed in the GitHub Actions run page. ## Usage ```yml - uses: jfrog/setup-jfrog-cli@v4 -- run: jf --version # + Authentication method +- run: jf --version ``` ## Authentication Methods JFrog CLI integrates with the JFrog Platform. In order to facilitate this connection, certain connection details of the JFrog Platform must be provided. -There exist three methods to provide these details, and you only need to choose **one** method: - -

- 🔐 Storing the connection details using environment variables - -### -The connection details of the JFrog platform used by this action can be stored as [GitHub secrets](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository) (or [GitHub Variables](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/variables) for non-secret values) - -You can set the connection details to your JFrog Platform by using one of the following combinations: - -1. JF_URL (no authentication) -2. JF_URL + JF_USER + JF_PASSWORD (basic authentication) -3. JF_URL + JF_ACCESS_TOKEN (authentication using a JFrog Access Token) - -You can use these environment variables in your workflow as follows: - -```yml -- uses: jfrog/setup-jfrog-cli@v4 - env: - # JFrog Platform url - JF_URL: ${{ vars.JF_URL }} # or 'https://acme.jfrog.io' - - # Basic authentication credentials - JF_USER: ${{ secrets.JF_USER }} - JF_PASSWORD: ${{ secrets.JF_PASSWORD }} - # or - # JFrog Platform access token - JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }} -- run: | - jf rt ping -``` - -
+There are three methods to provide these details, and you only need to choose **one** method:
👤 Connecting to JFrog using OIDC (OpenID Connect) @@ -151,6 +120,38 @@ Example step utilizing OpenID Connect:
+
+ 🔐 Storing the connection details using environment variables + +### +The connection details of the JFrog platform used by this action can be stored as [GitHub secrets](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository) (or [GitHub Variables](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/variables) for non-secret values) + +You can set the connection details to your JFrog Platform by using one of the following combinations: + +1. JF_URL (no authentication) +2. JF_URL + JF_USER + JF_PASSWORD (basic authentication) +3. JF_URL + JF_ACCESS_TOKEN (authentication using a JFrog Access Token) + +You can use these environment variables in your workflow as follows: + +```yml +- uses: jfrog/setup-jfrog-cli@v4 + env: + # JFrog Platform url + JF_URL: ${{ vars.JF_URL }} # or 'https://acme.jfrog.io' + + # Basic authentication credentials + JF_USER: ${{ secrets.JF_USER }} + JF_PASSWORD: ${{ secrets.JF_PASSWORD }} + # or + # JFrog Platform access token + JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }} +- run: | + jf rt ping +``` + +
+
⚙️ Storing the connection details using single Config Token @@ -203,8 +204,12 @@ If you have multiple Config Tokens as secrets, you can use all of them in the wo
-## Setting the build name and build number when publishing build-info to Artifactory +## General Configuration +
+ Setting build name and number for build info publication to Artifactory +### Setting Build Name and Number for Build Info Publication +Build info collection and publication to Artifactory happens seamlessly when using the action in your workflow.\ The Action automatically sets the following environment variables: _JFROG_CLI_BUILD_NAME_ and _JFROG_CLI_BUILD_NUMBER_ with the workflow name and run number respectively. You therefore don't need to specify the build name and build number on any of the build related JFrog CLI commands. @@ -219,9 +224,18 @@ are registered as the build artifacts. jf rt build-publish ``` -You may override the default build name and number by setting the above variables in your workflow. +You may override the default build name and number by setting the following environment variables in your workflow: +```yml +env: + JFROG_CLI_BUILD_NAME: "Custom build name" + JFROG_CLI_BUILD_NUMBER: "123" +``` +
+ +
+ Setting JFrog CLI version -## Setting JFrog CLI version +### Setting JFrog CLI Version By default, the JFrog CLI version set in [action.yml](https://github.com/jfrog/setup-jfrog-cli/blob/master/action.yml) is used. To set a specific version, add the _version_ input as follows: @@ -242,7 +256,12 @@ It is also possible to set the latest JFrog CLI version by adding the _version_ | Important: Only JFrog CLI versions 1.46.4 or above are supported. | |-------------------------------------------------------------------| -## Setting the JFrog project key +
+ +
+ Setting the JFrog project key + +### Setting the JFrog Project Key [JFrog Projects](https://jfrog.com/help/r/jfrog-platform-administration-documentation/projects) are a management entity that hosts all your resources related to a specific project, such as repositories, builds and Release Bundles. @@ -255,8 +274,12 @@ You can set the project key in the environment variable ```JF_PROJECT``` to avoi env: JF_PROJECT: "project-key" ``` +
-## Downloading JFrog CLI from Artifactory +
+ Downloading JFrog CLI from Artifactory + +### Downloading JFrog CLI from Artifactory If your agent has no Internet access, you can configure the workflow to download JFrog CLI from a [remote repository](https://www.jfrog.com/confluence/display/JFROG/Remote+Repositories) in your JFrog Artifactory, which is configured to proxy the official download URL. @@ -275,6 +298,7 @@ Here's how you do this: with: download-repository: jfrog-cli-remote ``` +
## JFrog Job Summary From 254dc2cf526bc226eb8abe3db35bfd0cba64ed71 Mon Sep 17 00:00:00 2001 From: Robi Nino Date: Wed, 4 Sep 2024 20:31:26 +0300 Subject: [PATCH 48/56] Support uploading code scanning sarif (#203) --- README.md | 34 +- images/code-scanning.png | Bin 0 -> 324848 bytes lib/cleanup.js | 3 + lib/utils.js | 96 +- node_modules/.package-lock.json | 199 + node_modules/@actions/github/LICENSE.md | 9 + node_modules/@actions/github/README.md | 98 + node_modules/@actions/github/lib/context.d.ts | 32 + node_modules/@actions/github/lib/context.js | 55 + .../@actions/github/lib/context.js.map | 1 + node_modules/@actions/github/lib/github.d.ts | 11 + node_modules/@actions/github/lib/github.js | 41 + .../@actions/github/lib/github.js.map | 1 + .../@actions/github/lib/interfaces.d.ts | 40 + .../@actions/github/lib/interfaces.js | 4 + .../@actions/github/lib/interfaces.js.map | 1 + .../@actions/github/lib/internal/utils.d.ts | 9 + .../@actions/github/lib/internal/utils.js | 70 + .../@actions/github/lib/internal/utils.js.map | 1 + node_modules/@actions/github/lib/utils.d.ts | 15 + node_modules/@actions/github/lib/utils.js | 59 + node_modules/@actions/github/lib/utils.js.map | 1 + node_modules/@actions/github/package.json | 49 + node_modules/@octokit/auth-token/LICENSE | 21 + node_modules/@octokit/auth-token/README.md | 285 + .../@octokit/auth-token/dist-node/index.js | 79 + .../auth-token/dist-node/index.js.map | 7 + .../@octokit/auth-token/dist-src/auth.js | 17 + .../@octokit/auth-token/dist-src/hook.js | 12 + .../@octokit/auth-token/dist-src/index.js | 19 + .../dist-src/with-authorization-prefix.js | 9 + .../@octokit/auth-token/dist-types/auth.d.ts | 2 + .../@octokit/auth-token/dist-types/hook.d.ts | 2 + .../@octokit/auth-token/dist-types/index.d.ts | 7 + .../@octokit/auth-token/dist-types/types.d.ts | 33 + .../dist-types/with-authorization-prefix.d.ts | 6 + .../@octokit/auth-token/dist-web/index.js | 52 + .../@octokit/auth-token/dist-web/index.js.map | 7 + node_modules/@octokit/auth-token/package.json | 44 + node_modules/@octokit/core/LICENSE | 21 + node_modules/@octokit/core/README.md | 448 + node_modules/@octokit/core/dist-node/index.js | 163 + .../@octokit/core/dist-node/index.js.map | 7 + node_modules/@octokit/core/dist-src/index.js | 133 + .../@octokit/core/dist-src/version.js | 4 + .../@octokit/core/dist-types/index.d.ts | 31 + .../@octokit/core/dist-types/types.d.ts | 44 + .../@octokit/core/dist-types/version.d.ts | 1 + node_modules/@octokit/core/dist-web/index.js | 138 + .../@octokit/core/dist-web/index.js.map | 7 + node_modules/@octokit/core/package.json | 64 + node_modules/@octokit/endpoint/LICENSE | 21 + node_modules/@octokit/endpoint/README.md | 410 + .../@octokit/endpoint/dist-node/index.js | 378 + .../@octokit/endpoint/dist-node/index.js.map | 7 + .../@octokit/endpoint/dist-src/defaults.js | 17 + .../dist-src/endpoint-with-defaults.js | 9 + .../@octokit/endpoint/dist-src/index.js | 6 + .../@octokit/endpoint/dist-src/merge.js | 27 + .../@octokit/endpoint/dist-src/parse.js | 70 + .../dist-src/util/add-query-parameters.js | 16 + .../util/extract-url-variable-names.js | 14 + .../endpoint/dist-src/util/is-plain-object.js | 14 + .../endpoint/dist-src/util/lowercase-keys.js | 12 + .../endpoint/dist-src/util/merge-deep.js | 18 + .../@octokit/endpoint/dist-src/util/omit.js | 12 + .../util/remove-undefined-properties.js | 11 + .../endpoint/dist-src/util/url-template.js | 133 + .../@octokit/endpoint/dist-src/version.js | 4 + .../endpoint/dist-src/with-defaults.js | 16 + .../endpoint/dist-types/defaults.d.ts | 2 + .../dist-types/endpoint-with-defaults.d.ts | 3 + .../@octokit/endpoint/dist-types/index.d.ts | 1 + .../@octokit/endpoint/dist-types/merge.d.ts | 2 + .../@octokit/endpoint/dist-types/parse.d.ts | 2 + .../dist-types/util/add-query-parameters.d.ts | 4 + .../util/extract-url-variable-names.d.ts | 1 + .../dist-types/util/is-plain-object.d.ts | 1 + .../dist-types/util/lowercase-keys.d.ts | 5 + .../endpoint/dist-types/util/merge-deep.d.ts | 1 + .../endpoint/dist-types/util/omit.d.ts | 5 + .../util/remove-undefined-properties.d.ts | 1 + .../dist-types/util/url-template.d.ts | 3 + .../@octokit/endpoint/dist-types/version.d.ts | 1 + .../endpoint/dist-types/with-defaults.d.ts | 2 + .../@octokit/endpoint/dist-web/index.js | 351 + .../@octokit/endpoint/dist-web/index.js.map | 7 + node_modules/@octokit/endpoint/package.json | 45 + node_modules/@octokit/graphql/LICENSE | 21 + node_modules/@octokit/graphql/README.md | 409 + .../@octokit/graphql/dist-node/index.js | 154 + .../@octokit/graphql/dist-node/index.js.map | 7 + .../@octokit/graphql/dist-src/error.js | 21 + .../@octokit/graphql/dist-src/graphql.js | 66 + .../@octokit/graphql/dist-src/index.js | 23 + .../@octokit/graphql/dist-src/version.js | 4 + .../graphql/dist-src/with-defaults.js | 15 + .../@octokit/graphql/dist-types/error.d.ts | 13 + .../@octokit/graphql/dist-types/graphql.d.ts | 3 + .../@octokit/graphql/dist-types/index.d.ts | 5 + .../@octokit/graphql/dist-types/types.d.ts | 55 + .../@octokit/graphql/dist-types/version.d.ts | 1 + .../graphql/dist-types/with-defaults.d.ts | 3 + .../@octokit/graphql/dist-web/index.js | 127 + .../@octokit/graphql/dist-web/index.js.map | 7 + node_modules/@octokit/graphql/package.json | 49 + node_modules/@octokit/openapi-types/LICENSE | 7 + node_modules/@octokit/openapi-types/README.md | 17 + .../@octokit/openapi-types/package.json | 21 + .../@octokit/openapi-types/types.d.ts | 110231 ++++++++++++++ .../@octokit/plugin-paginate-rest/LICENSE | 7 + .../@octokit/plugin-paginate-rest/README.md | 269 + .../plugin-paginate-rest/dist-node/index.js | 398 + .../dist-node/index.js.map | 7 + .../dist-src/compose-paginate.js | 8 + .../generated/paginating-endpoints.js | 239 + .../plugin-paginate-rest/dist-src/index.js | 22 + .../plugin-paginate-rest/dist-src/iterator.js | 38 + .../normalize-paginated-list-response.js | 31 + .../plugin-paginate-rest/dist-src/paginate.js | 34 + .../dist-src/paginating-endpoints.js | 15 + .../plugin-paginate-rest/dist-src/version.js | 4 + .../dist-types/compose-paginate.d.ts | 2 + .../generated/paginating-endpoints.d.ts | 1750 + .../dist-types/index.d.ts | 15 + .../dist-types/iterator.d.ts | 20 + .../normalize-paginated-list-response.d.ts | 18 + .../dist-types/paginate.d.ts | 3 + .../dist-types/paginating-endpoints.d.ts | 3 + .../dist-types/types.d.ts | 242 + .../dist-types/version.d.ts | 1 + .../plugin-paginate-rest/dist-web/index.js | 368 + .../dist-web/index.js.map | 7 + .../@octokit/openapi-types/LICENSE | 7 + .../@octokit/openapi-types/README.md | 17 + .../@octokit/openapi-types/package.json | 20 + .../@octokit/openapi-types/types.d.ts | 118541 +++++++++++++++ .../node_modules/@octokit/types/LICENSE | 7 + .../node_modules/@octokit/types/README.md | 65 + .../types/dist-types/AuthInterface.d.ts | 31 + .../types/dist-types/EndpointDefaults.d.ts | 21 + .../types/dist-types/EndpointInterface.d.ts | 65 + .../types/dist-types/EndpointOptions.d.ts | 7 + .../@octokit/types/dist-types/Fetch.d.ts | 4 + .../GetResponseTypeFromEndpointMethod.d.ts | 5 + .../types/dist-types/OctokitResponse.d.ts | 17 + .../types/dist-types/RequestError.d.ts | 11 + .../types/dist-types/RequestHeaders.d.ts | 15 + .../types/dist-types/RequestInterface.d.ts | 34 + .../types/dist-types/RequestMethod.d.ts | 4 + .../types/dist-types/RequestOptions.d.ts | 14 + .../types/dist-types/RequestParameters.d.ts | 45 + .../dist-types/RequestRequestOptions.d.ts | 20 + .../types/dist-types/ResponseHeaders.d.ts | 21 + .../@octokit/types/dist-types/Route.d.ts | 4 + .../@octokit/types/dist-types/Signal.d.ts | 6 + .../types/dist-types/StrategyInterface.d.ts | 4 + .../@octokit/types/dist-types/Url.d.ts | 4 + .../@octokit/types/dist-types/VERSION.d.ts | 1 + .../types/dist-types/generated/Endpoints.d.ts | 3797 + .../@octokit/types/dist-types/index.d.ts | 21 + .../node_modules/@octokit/types/package.json | 46 + .../plugin-paginate-rest/package.json | 52 + .../plugin-rest-endpoint-methods/LICENSE | 7 + .../plugin-rest-endpoint-methods/README.md | 76 + .../dist-node/index.js | 2165 + .../dist-node/index.js.map | 7 + .../dist-src/endpoints-to-methods.js | 125 + .../dist-src/generated/endpoints.js | 1992 + .../dist-src/generated/method-types.js | 0 .../parameters-and-response-types.js | 0 .../dist-src/index.js | 21 + .../dist-src/version.js | 4 + .../dist-types/endpoints-to-methods.d.ts | 3 + .../dist-types/generated/endpoints.d.ts | 3 + .../dist-types/generated/method-types.d.ts | 12336 ++ .../parameters-and-response-types.d.ts | 3739 + .../dist-types/index.d.ts | 11 + .../dist-types/types.d.ts | 18 + .../dist-types/version.d.ts | 1 + .../dist-web/index.js | 2137 + .../dist-web/index.js.map | 7 + .../@octokit/openapi-types/LICENSE | 7 + .../@octokit/openapi-types/README.md | 17 + .../@octokit/openapi-types/package.json | 20 + .../@octokit/openapi-types/types.d.ts | 118541 +++++++++++++++ .../node_modules/@octokit/types/LICENSE | 7 + .../node_modules/@octokit/types/README.md | 65 + .../types/dist-types/AuthInterface.d.ts | 31 + .../types/dist-types/EndpointDefaults.d.ts | 21 + .../types/dist-types/EndpointInterface.d.ts | 65 + .../types/dist-types/EndpointOptions.d.ts | 7 + .../@octokit/types/dist-types/Fetch.d.ts | 4 + .../GetResponseTypeFromEndpointMethod.d.ts | 5 + .../types/dist-types/OctokitResponse.d.ts | 17 + .../types/dist-types/RequestError.d.ts | 11 + .../types/dist-types/RequestHeaders.d.ts | 15 + .../types/dist-types/RequestInterface.d.ts | 34 + .../types/dist-types/RequestMethod.d.ts | 4 + .../types/dist-types/RequestOptions.d.ts | 14 + .../types/dist-types/RequestParameters.d.ts | 45 + .../dist-types/RequestRequestOptions.d.ts | 20 + .../types/dist-types/ResponseHeaders.d.ts | 21 + .../@octokit/types/dist-types/Route.d.ts | 4 + .../@octokit/types/dist-types/Signal.d.ts | 6 + .../types/dist-types/StrategyInterface.d.ts | 4 + .../@octokit/types/dist-types/Url.d.ts | 4 + .../@octokit/types/dist-types/VERSION.d.ts | 1 + .../types/dist-types/generated/Endpoints.d.ts | 3797 + .../@octokit/types/dist-types/index.d.ts | 21 + .../node_modules/@octokit/types/package.json | 46 + .../plugin-rest-endpoint-methods/package.json | 60 + node_modules/@octokit/request-error/LICENSE | 21 + node_modules/@octokit/request-error/README.md | 88 + .../@octokit/request-error/dist-node/index.js | 92 + .../request-error/dist-node/index.js.map | 7 + .../@octokit/request-error/dist-src/index.js | 56 + .../request-error/dist-types/index.d.ts | 33 + .../request-error/dist-types/types.d.ts | 9 + .../@octokit/request-error/dist-web/index.js | 57 + .../request-error/dist-web/index.js.map | 7 + .../@octokit/request-error/package.json | 48 + node_modules/@octokit/request/LICENSE | 21 + node_modules/@octokit/request/README.md | 579 + .../@octokit/request/dist-node/index.js | 224 + .../@octokit/request/dist-node/index.js.map | 7 + .../request/dist-src/fetch-wrapper.js | 140 + .../request/dist-src/get-buffer-response.js | 6 + .../@octokit/request/dist-src/index.js | 12 + .../request/dist-src/is-plain-object.js | 14 + .../@octokit/request/dist-src/version.js | 4 + .../request/dist-src/with-defaults.js | 27 + .../request/dist-types/fetch-wrapper.d.ts | 9 + .../dist-types/get-buffer-response.d.ts | 1 + .../@octokit/request/dist-types/index.d.ts | 1 + .../request/dist-types/is-plain-object.d.ts | 1 + .../@octokit/request/dist-types/version.d.ts | 1 + .../request/dist-types/with-defaults.d.ts | 2 + .../@octokit/request/dist-web/index.js | 198 + .../@octokit/request/dist-web/index.js.map | 7 + node_modules/@octokit/request/package.json | 55 + node_modules/@octokit/types/LICENSE | 7 + node_modules/@octokit/types/README.md | 65 + .../types/dist-types/AuthInterface.d.ts | 31 + .../types/dist-types/EndpointDefaults.d.ts | 21 + .../types/dist-types/EndpointInterface.d.ts | 65 + .../types/dist-types/EndpointOptions.d.ts | 7 + .../@octokit/types/dist-types/Fetch.d.ts | 4 + .../GetResponseTypeFromEndpointMethod.d.ts | 5 + .../types/dist-types/OctokitResponse.d.ts | 17 + .../types/dist-types/RequestError.d.ts | 11 + .../types/dist-types/RequestHeaders.d.ts | 15 + .../types/dist-types/RequestInterface.d.ts | 34 + .../types/dist-types/RequestMethod.d.ts | 4 + .../types/dist-types/RequestOptions.d.ts | 14 + .../types/dist-types/RequestParameters.d.ts | 45 + .../dist-types/RequestRequestOptions.d.ts | 21 + .../types/dist-types/ResponseHeaders.d.ts | 21 + .../@octokit/types/dist-types/Route.d.ts | 4 + .../@octokit/types/dist-types/Signal.d.ts | 6 + .../types/dist-types/StrategyInterface.d.ts | 4 + .../@octokit/types/dist-types/Url.d.ts | 4 + .../@octokit/types/dist-types/VERSION.d.ts | 1 + .../types/dist-types/generated/Endpoints.d.ts | 3813 + .../@octokit/types/dist-types/index.d.ts | 21 + node_modules/@octokit/types/package.json | 47 + node_modules/before-after-hook/LICENSE | 201 + node_modules/before-after-hook/README.md | 653 + node_modules/before-after-hook/index.d.ts | 186 + node_modules/before-after-hook/index.js | 61 + node_modules/before-after-hook/lib/add.js | 46 + .../before-after-hook/lib/register.js | 27 + node_modules/before-after-hook/lib/remove.js | 19 + node_modules/before-after-hook/package.json | 71 + node_modules/deprecation/LICENSE | 15 + node_modules/deprecation/README.md | 77 + node_modules/deprecation/dist-node/index.js | 20 + node_modules/deprecation/dist-src/index.js | 14 + .../deprecation/dist-types/index.d.ts | 3 + node_modules/deprecation/dist-web/index.js | 16 + node_modules/deprecation/package.json | 34 + node_modules/once/LICENSE | 15 + node_modules/once/README.md | 79 + node_modules/once/once.js | 42 + node_modules/once/package.json | 33 + node_modules/universal-user-agent/LICENSE.md | 7 + node_modules/universal-user-agent/README.md | 25 + .../universal-user-agent/dist-node/index.js | 18 + .../dist-node/index.js.map | 1 + .../universal-user-agent/dist-src/index.js | 9 + .../dist-types/index.d.ts | 1 + .../universal-user-agent/dist-web/index.js | 12 + .../dist-web/index.js.map | 1 + .../universal-user-agent/package.json | 31 + node_modules/wrappy/LICENSE | 15 + node_modules/wrappy/README.md | 36 + node_modules/wrappy/package.json | 29 + node_modules/wrappy/wrappy.js | 33 + package-lock.json | 192 +- package.json | 2 + src/cleanup.ts | 3 + src/utils.ts | 96 +- 302 files changed, 395480 insertions(+), 13 deletions(-) create mode 100644 images/code-scanning.png create mode 100644 node_modules/@actions/github/LICENSE.md create mode 100644 node_modules/@actions/github/README.md create mode 100644 node_modules/@actions/github/lib/context.d.ts create mode 100644 node_modules/@actions/github/lib/context.js create mode 100644 node_modules/@actions/github/lib/context.js.map create mode 100644 node_modules/@actions/github/lib/github.d.ts create mode 100644 node_modules/@actions/github/lib/github.js create mode 100644 node_modules/@actions/github/lib/github.js.map create mode 100644 node_modules/@actions/github/lib/interfaces.d.ts create mode 100644 node_modules/@actions/github/lib/interfaces.js create mode 100644 node_modules/@actions/github/lib/interfaces.js.map create mode 100644 node_modules/@actions/github/lib/internal/utils.d.ts create mode 100644 node_modules/@actions/github/lib/internal/utils.js create mode 100644 node_modules/@actions/github/lib/internal/utils.js.map create mode 100644 node_modules/@actions/github/lib/utils.d.ts create mode 100644 node_modules/@actions/github/lib/utils.js create mode 100644 node_modules/@actions/github/lib/utils.js.map create mode 100644 node_modules/@actions/github/package.json create mode 100644 node_modules/@octokit/auth-token/LICENSE create mode 100644 node_modules/@octokit/auth-token/README.md create mode 100644 node_modules/@octokit/auth-token/dist-node/index.js create mode 100644 node_modules/@octokit/auth-token/dist-node/index.js.map create mode 100644 node_modules/@octokit/auth-token/dist-src/auth.js create mode 100644 node_modules/@octokit/auth-token/dist-src/hook.js create mode 100644 node_modules/@octokit/auth-token/dist-src/index.js create mode 100644 node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js create mode 100644 node_modules/@octokit/auth-token/dist-types/auth.d.ts create mode 100644 node_modules/@octokit/auth-token/dist-types/hook.d.ts create mode 100644 node_modules/@octokit/auth-token/dist-types/index.d.ts create mode 100644 node_modules/@octokit/auth-token/dist-types/types.d.ts create mode 100644 node_modules/@octokit/auth-token/dist-types/with-authorization-prefix.d.ts create mode 100644 node_modules/@octokit/auth-token/dist-web/index.js create mode 100644 node_modules/@octokit/auth-token/dist-web/index.js.map create mode 100644 node_modules/@octokit/auth-token/package.json create mode 100644 node_modules/@octokit/core/LICENSE create mode 100644 node_modules/@octokit/core/README.md create mode 100644 node_modules/@octokit/core/dist-node/index.js create mode 100644 node_modules/@octokit/core/dist-node/index.js.map create mode 100644 node_modules/@octokit/core/dist-src/index.js create mode 100644 node_modules/@octokit/core/dist-src/version.js create mode 100644 node_modules/@octokit/core/dist-types/index.d.ts create mode 100644 node_modules/@octokit/core/dist-types/types.d.ts create mode 100644 node_modules/@octokit/core/dist-types/version.d.ts create mode 100644 node_modules/@octokit/core/dist-web/index.js create mode 100644 node_modules/@octokit/core/dist-web/index.js.map create mode 100644 node_modules/@octokit/core/package.json create mode 100644 node_modules/@octokit/endpoint/LICENSE create mode 100644 node_modules/@octokit/endpoint/README.md create mode 100644 node_modules/@octokit/endpoint/dist-node/index.js create mode 100644 node_modules/@octokit/endpoint/dist-node/index.js.map create mode 100644 node_modules/@octokit/endpoint/dist-src/defaults.js create mode 100644 node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js create mode 100644 node_modules/@octokit/endpoint/dist-src/index.js create mode 100644 node_modules/@octokit/endpoint/dist-src/merge.js create mode 100644 node_modules/@octokit/endpoint/dist-src/parse.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/is-plain-object.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/merge-deep.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/omit.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/url-template.js create mode 100644 node_modules/@octokit/endpoint/dist-src/version.js create mode 100644 node_modules/@octokit/endpoint/dist-src/with-defaults.js create mode 100644 node_modules/@octokit/endpoint/dist-types/defaults.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/index.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/merge.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/parse.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/is-plain-object.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/omit.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/remove-undefined-properties.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/version.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-web/index.js create mode 100644 node_modules/@octokit/endpoint/dist-web/index.js.map create mode 100644 node_modules/@octokit/endpoint/package.json create mode 100644 node_modules/@octokit/graphql/LICENSE create mode 100644 node_modules/@octokit/graphql/README.md create mode 100644 node_modules/@octokit/graphql/dist-node/index.js create mode 100644 node_modules/@octokit/graphql/dist-node/index.js.map create mode 100644 node_modules/@octokit/graphql/dist-src/error.js create mode 100644 node_modules/@octokit/graphql/dist-src/graphql.js create mode 100644 node_modules/@octokit/graphql/dist-src/index.js create mode 100644 node_modules/@octokit/graphql/dist-src/version.js create mode 100644 node_modules/@octokit/graphql/dist-src/with-defaults.js create mode 100644 node_modules/@octokit/graphql/dist-types/error.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/graphql.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/index.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/types.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/version.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/with-defaults.d.ts create mode 100644 node_modules/@octokit/graphql/dist-web/index.js create mode 100644 node_modules/@octokit/graphql/dist-web/index.js.map create mode 100644 node_modules/@octokit/graphql/package.json create mode 100644 node_modules/@octokit/openapi-types/LICENSE create mode 100644 node_modules/@octokit/openapi-types/README.md create mode 100644 node_modules/@octokit/openapi-types/package.json create mode 100644 node_modules/@octokit/openapi-types/types.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/LICENSE create mode 100644 node_modules/@octokit/plugin-paginate-rest/README.md create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-node/index.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-node/index.js.map create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/compose-paginate.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/generated/paginating-endpoints.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/index.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/iterator.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/normalize-paginated-list-response.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/paginating-endpoints.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/version.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/compose-paginate.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/generated/paginating-endpoints.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/index.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/iterator.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/normalize-paginated-list-response.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/paginate.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/paginating-endpoints.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/types.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/version.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-web/index.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-web/index.js.map create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/LICENSE create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/README.md create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/package.json create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/types.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/LICENSE create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/README.md create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/AuthInterface.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Fetch.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestError.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestInterface.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestMethod.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestOptions.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestParameters.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Route.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Signal.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Url.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/VERSION.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/index.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/package.json create mode 100644 node_modules/@octokit/plugin-paginate-rest/package.json create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/LICENSE create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/README.md create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js.map create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/method-types.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/parameters-and-response-types.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/endpoints-to-methods.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/endpoints.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/index.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/types.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/version.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js.map create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/LICENSE create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/README.md create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/package.json create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/types.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/LICENSE create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/README.md create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/AuthInterface.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Fetch.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestError.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestInterface.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestMethod.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestOptions.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestParameters.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Route.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Signal.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Url.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/VERSION.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/index.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/package.json create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/package.json create mode 100644 node_modules/@octokit/request-error/LICENSE create mode 100644 node_modules/@octokit/request-error/README.md create mode 100644 node_modules/@octokit/request-error/dist-node/index.js create mode 100644 node_modules/@octokit/request-error/dist-node/index.js.map create mode 100644 node_modules/@octokit/request-error/dist-src/index.js create mode 100644 node_modules/@octokit/request-error/dist-types/index.d.ts create mode 100644 node_modules/@octokit/request-error/dist-types/types.d.ts create mode 100644 node_modules/@octokit/request-error/dist-web/index.js create mode 100644 node_modules/@octokit/request-error/dist-web/index.js.map create mode 100644 node_modules/@octokit/request-error/package.json create mode 100644 node_modules/@octokit/request/LICENSE create mode 100644 node_modules/@octokit/request/README.md create mode 100644 node_modules/@octokit/request/dist-node/index.js create mode 100644 node_modules/@octokit/request/dist-node/index.js.map create mode 100644 node_modules/@octokit/request/dist-src/fetch-wrapper.js create mode 100644 node_modules/@octokit/request/dist-src/get-buffer-response.js create mode 100644 node_modules/@octokit/request/dist-src/index.js create mode 100644 node_modules/@octokit/request/dist-src/is-plain-object.js create mode 100644 node_modules/@octokit/request/dist-src/version.js create mode 100644 node_modules/@octokit/request/dist-src/with-defaults.js create mode 100644 node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts create mode 100644 node_modules/@octokit/request/dist-types/get-buffer-response.d.ts create mode 100644 node_modules/@octokit/request/dist-types/index.d.ts create mode 100644 node_modules/@octokit/request/dist-types/is-plain-object.d.ts create mode 100644 node_modules/@octokit/request/dist-types/version.d.ts create mode 100644 node_modules/@octokit/request/dist-types/with-defaults.d.ts create mode 100644 node_modules/@octokit/request/dist-web/index.js create mode 100644 node_modules/@octokit/request/dist-web/index.js.map create mode 100644 node_modules/@octokit/request/package.json create mode 100644 node_modules/@octokit/types/LICENSE create mode 100644 node_modules/@octokit/types/README.md create mode 100644 node_modules/@octokit/types/dist-types/AuthInterface.d.ts create mode 100644 node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts create mode 100644 node_modules/@octokit/types/dist-types/EndpointInterface.d.ts create mode 100644 node_modules/@octokit/types/dist-types/EndpointOptions.d.ts create mode 100644 node_modules/@octokit/types/dist-types/Fetch.d.ts create mode 100644 node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts create mode 100644 node_modules/@octokit/types/dist-types/OctokitResponse.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestError.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestHeaders.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestInterface.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestMethod.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestOptions.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestParameters.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts create mode 100644 node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts create mode 100644 node_modules/@octokit/types/dist-types/Route.d.ts create mode 100644 node_modules/@octokit/types/dist-types/Signal.d.ts create mode 100644 node_modules/@octokit/types/dist-types/StrategyInterface.d.ts create mode 100644 node_modules/@octokit/types/dist-types/Url.d.ts create mode 100644 node_modules/@octokit/types/dist-types/VERSION.d.ts create mode 100644 node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts create mode 100644 node_modules/@octokit/types/dist-types/index.d.ts create mode 100644 node_modules/@octokit/types/package.json create mode 100644 node_modules/before-after-hook/LICENSE create mode 100644 node_modules/before-after-hook/README.md create mode 100644 node_modules/before-after-hook/index.d.ts create mode 100644 node_modules/before-after-hook/index.js create mode 100644 node_modules/before-after-hook/lib/add.js create mode 100644 node_modules/before-after-hook/lib/register.js create mode 100644 node_modules/before-after-hook/lib/remove.js create mode 100644 node_modules/before-after-hook/package.json create mode 100644 node_modules/deprecation/LICENSE create mode 100644 node_modules/deprecation/README.md create mode 100644 node_modules/deprecation/dist-node/index.js create mode 100644 node_modules/deprecation/dist-src/index.js create mode 100644 node_modules/deprecation/dist-types/index.d.ts create mode 100644 node_modules/deprecation/dist-web/index.js create mode 100644 node_modules/deprecation/package.json create mode 100644 node_modules/once/LICENSE create mode 100644 node_modules/once/README.md create mode 100644 node_modules/once/once.js create mode 100644 node_modules/once/package.json create mode 100644 node_modules/universal-user-agent/LICENSE.md create mode 100644 node_modules/universal-user-agent/README.md create mode 100644 node_modules/universal-user-agent/dist-node/index.js create mode 100644 node_modules/universal-user-agent/dist-node/index.js.map create mode 100644 node_modules/universal-user-agent/dist-src/index.js create mode 100644 node_modules/universal-user-agent/dist-types/index.d.ts create mode 100644 node_modules/universal-user-agent/dist-web/index.js create mode 100644 node_modules/universal-user-agent/dist-web/index.js.map create mode 100644 node_modules/universal-user-agent/package.json create mode 100644 node_modules/wrappy/LICENSE create mode 100644 node_modules/wrappy/README.md create mode 100644 node_modules/wrappy/package.json create mode 100644 node_modules/wrappy/wrappy.js diff --git a/README.md b/README.md index bb73e6b1e..899a61671 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ - [Setting the JFrog Project Key](#setting-the-jfrog-project-key) - [Downloading JFrog CLI from Artifactory](#downloading-jfrog-cli-from-artifactory) - [JFrog Job Summary](#jfrog-job-summary) +- [Code Scanning Alerts](#code-scanning-alerts) - [Example Projects](#example-projects) - [Contributions](#contributions) - [References](#references) @@ -348,7 +349,38 @@ The final summary will include the summary of each CLI command that supports thi To read more about the JFrog CLI supported commands, visit the following link: [JFrog CLI Command Summaries Documentation](https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-command-summaries). -## Example projects +## Code Scanning Alerts +The action also supports the display of code scanning alerts in the GitHub Actions UI. + +Code scanning alerts are generated following the execution of the `jf docker scan` and `jf scan` commands. + +This feature is available for customers with an Artifactory Enterprise license or above. + +### Preconditions +`JF_GIT_TOKEN` - GitHub token with `security-events: write` permission. + +You can utilize [$\{{secrets.GITHUB\_TOKEN\}}](https://docs.github.com/en/actions/security-guides/automatic-token-authentication) for `JF_GIT_TOKEN`, which is an automatically generated token by GitHub. + +```yaml +permissions: + id-token: write + contents: read + # Required for uploading code scanning. + security-events: write +``` + +``` yaml +- uses: jfrog/setup-jfrog-cli@v4 + env: + # The GitHub token is automatically generated for the job + JF_GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }} +``` + +### Code Scanning Alerts Example: + +![Code-Scanning-Alerts](images/code-scanning.png) + +## Example Projects To help you get started, you can use [these](https://github.com/jfrog/project-examples/tree/master/github-action-examples) sample projects on GitHub. diff --git a/images/code-scanning.png b/images/code-scanning.png new file mode 100644 index 0000000000000000000000000000000000000000..800a4f32b738a469fd19aa13ae94ef901a02815e GIT binary patch literal 324848 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ⅆSTkgS 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�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

$T;76`ct><# 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 literal 0 HcmV?d00001 diff --git a/lib/cleanup.js b/lib/cleanup.js index 5c64c53e0..e93090165 100644 --- a/lib/cleanup.js +++ b/lib/cleanup.js @@ -180,6 +180,9 @@ function generateJobSummary() { core.startGroup('Generating Job Summary'); yield utils_1.Utils.runCli(['generate-summary-markdown']); yield utils_1.Utils.setMarkdownAsJobSummary(); + yield utils_1.Utils.populateCodeScanningTab(); + // Clear files + yield utils_1.Utils.clearCommandSummaryDir(); } catch (error) { core.warning('Failed while attempting to generate job summary: ' + error); diff --git a/lib/utils.js b/lib/utils.js index 4f82aceec..f2b0bc629 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -42,6 +42,10 @@ const os_1 = require("os"); const path = __importStar(require("path")); const path_1 = require("path"); const semver_1 = require("semver"); +const core_1 = require("@octokit/core"); +const github = __importStar(require("@actions/github")); +const zlib_1 = require("zlib"); +const util_1 = require("util"); class Utils { /** * Retrieves server credentials for accessing JFrog's server @@ -337,7 +341,7 @@ class Utils { if (projectKey) { Utils.exportVariableIfNotSet('JFROG_CLI_BUILD_PROJECT', projectKey); } - // Enable Job summaries if needed + // Enable job summaries if disable was not requested. if (!core.getBooleanInput(Utils.JOB_SUMMARY_DISABLE)) { Utils.enableJobSummaries(); } @@ -505,14 +509,74 @@ class Utils { // Write to GitHub's job summary core.summary.addRaw(markdownContent, true); yield core.summary.write({ overwrite: true }); - // Clear files - yield this.clearJobSummaryDir(); } catch (error) { core.warning(`Failed to generate Workflow summary: ${error}`); } }); } + /** + * Populates the code scanning SARIF (if generated by scan commands) to the code scanning tab in GitHub. + */ + static populateCodeScanningTab() { + return __awaiter(this, void 0, void 0, function* () { + try { + const encodedSarif = yield this.getCodeScanningEncodedSarif(); + if (!encodedSarif) { + return; + } + const token = process.env.JF_GIT_TOKEN; + if (!token) { + console.info('No token provided for uploading code scanning sarif files.'); + return; + } + yield this.uploadCodeScanningSarif(encodedSarif, token); + } + catch (error) { + core.warning(`Failed populating code scanning sarif: ${error}`); + } + }); + } + /** + * Uploads the code scanning SARIF content to the code-scanning GitHub API. + * @param encodedSarif - The final compressed and encoded sarif content. + * @param token - GitHub token to use for the request. Has to have 'security-events: write' permission. + * @private + */ + static uploadCodeScanningSarif(encodedSarif, token) { + return __awaiter(this, void 0, void 0, function* () { + const octokit = new core_1.Octokit({ auth: token }); + let response; + response = yield octokit.request('POST /repos/{owner}/{repo}/code-scanning/sarifs', { + owner: github.context.repo.owner, + repo: github.context.repo.repo, + commit_sha: github.context.sha, + ref: github.context.ref, + sarif: encodedSarif, + }); + if (response.status < 200 || response.status >= 300) { + throw new Error(`Failed to upload SARIF file: ` + JSON.stringify(response)); + } + core.info('SARIF file uploaded successfully'); + }); + } + /** + * Compresses the input sarif content using gzip and encodes it to base64. This is required by the code-scanning/sarif API. + * @param input - The sarif content to compress and encode. + * @returns The compressed and encoded string. + * @private + */ + static compressAndEncodeSarif(input) { + return __awaiter(this, void 0, void 0, function* () { + try { + const compressed = yield (0, util_1.promisify)(zlib_1.gzip)(input); + return compressed.toString('base64'); + } + catch (error) { + throw new Error('Compression of sarif file failed: ' + error); + } + }); + } /** * Each section should prepare a file called markdown.md. * This function reads each section file and wraps it with a markdown header @@ -530,6 +594,22 @@ class Utils { return Utils.wrapContent(markdownContent); }); } + /** + * Reads the combined SARIF file, compresses and encodes it to match the code-scanning/sarif API requirements. + * @returns the paths of the code scanning sarif files. + */ + static getCodeScanningEncodedSarif() { + return __awaiter(this, void 0, void 0, function* () { + const finalSarifFile = path.join(Utils.getJobOutputDirectoryPath(), this.SECURITY_DIR_NAME, this.SARIF_REPORTS_DIR_NAME, this.CODE_SCANNING_FINAL_SARIF_FILE); + if (!(0, fs_1.existsSync)(finalSarifFile)) { + console.debug('No code scanning sarif file was found.'); + return ""; + } + // Read the SARIF file, compress and encode it to match the code-scanning/sarif API requirements. + const sarif = yield fs_1.promises.readFile(finalSarifFile, 'utf-8'); + return yield this.compressAndEncodeSarif(sarif); + }); + } static readMarkdownContent() { return __awaiter(this, void 0, void 0, function* () { const markdownFilePath = path.join(Utils.getJobOutputDirectoryPath(), 'markdown.md'); @@ -585,10 +665,10 @@ class Utils { } return path.join(outputDir, Utils.JOB_SUMMARY_DIR_NAME); } - static clearJobSummaryDir() { + static clearCommandSummaryDir() { return __awaiter(this, void 0, void 0, function* () { const outputDir = Utils.getJobOutputDirectoryPath(); - core.debug('Removing Workflow summary directory: ' + outputDir); + core.debug('Removing command summary directory: ' + outputDir); yield fs_1.promises.rm(outputDir, { recursive: true }); }); } @@ -647,10 +727,16 @@ Utils.LATEST_SEMVER = '100.100.100'; Utils.SETUP_JFROG_CLI_SERVER_ID = 'setup-jfrog-cli-server'; // Directory name which holds markdown files for the Workflow summary Utils.JOB_SUMMARY_DIR_NAME = 'jfrog-command-summary'; +// Directory name which holds security command summary files +Utils.SECURITY_DIR_NAME = 'security'; +// Directory name which holds sarifs files for the code scanning tab +Utils.SARIF_REPORTS_DIR_NAME = 'sarif-reports'; // JFrog CLI command summary output directory environment variable Utils.JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV = 'JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR'; // Minimum JFrog CLI version supported for job summary command Utils.MIN_CLI_VERSION_JOB_SUMMARY = '2.66.0'; +// Code scanning sarif expected file extension. +Utils.CODE_SCANNING_FINAL_SARIF_FILE = 'final.sarif'; // Inputs // Version input Utils.CLI_VERSION_ARG = 'version'; diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 280e17aca..71b453b52 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -26,6 +26,18 @@ "@actions/io": "^1.0.1" } }, + "node_modules/@actions/github": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.0.tgz", + "integrity": "sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==", + "license": "MIT", + "dependencies": { + "@actions/http-client": "^2.2.0", + "@octokit/core": "^5.0.1", + "@octokit/plugin-paginate-rest": "^9.0.0", + "@octokit/plugin-rest-endpoint-methods": "^10.0.0" + } + }, "node_modules/@actions/http-client": { "version": "2.2.1", "license": "MIT", @@ -64,6 +76,183 @@ "node": ">=14" } }, + "node_modules/@octokit/auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", + "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", + "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", + "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", + "license": "MIT", + "dependencies": { + "@octokit/request": "^8.3.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz", + "integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", + "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", + "license": "MIT" + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, + "node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "license": "Apache-2.0" + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "license": "ISC" + }, + "node_modules/once": { + "version": "1.4.0", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, "node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -93,12 +282,22 @@ "node": ">=14.0" } }, + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "license": "ISC" + }, "node_modules/uuid": { "version": "3.4.0", "license": "MIT", "bin": { "uuid": "bin/uuid" } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "license": "ISC" } } } diff --git a/node_modules/@actions/github/LICENSE.md b/node_modules/@actions/github/LICENSE.md new file mode 100644 index 000000000..dbae2edb2 --- /dev/null +++ b/node_modules/@actions/github/LICENSE.md @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright 2019 GitHub + +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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +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. \ No newline at end of file diff --git a/node_modules/@actions/github/README.md b/node_modules/@actions/github/README.md new file mode 100644 index 000000000..30e6a68ed --- /dev/null +++ b/node_modules/@actions/github/README.md @@ -0,0 +1,98 @@ +# `@actions/github` + +> A hydrated Octokit client. + +## Usage + +Returns an authenticated Octokit client that follows the machine [proxy settings](https://help.github.com/en/actions/hosting-your-own-runners/using-a-proxy-server-with-self-hosted-runners) and correctly sets GHES base urls. See https://octokit.github.io/rest.js for the API. + +```js +const github = require('@actions/github'); +const core = require('@actions/core'); + +async function run() { + // This should be a token with access to your repository scoped in as a secret. + // The YML workflow will need to set myToken with the GitHub Secret Token + // myToken: ${{ secrets.GITHUB_TOKEN }} + // https://help.github.com/en/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token#about-the-github_token-secret + const myToken = core.getInput('myToken'); + + const octokit = github.getOctokit(myToken) + + // You can also pass in additional options as a second parameter to getOctokit + // const octokit = github.getOctokit(myToken, {userAgent: "MyActionVersion1"}); + + const { data: pullRequest } = await octokit.rest.pulls.get({ + owner: 'octokit', + repo: 'rest.js', + pull_number: 123, + mediaType: { + format: 'diff' + } + }); + + console.log(pullRequest); +} + +run(); +``` + +You can also make GraphQL requests. See https://github.com/octokit/graphql.js for the API. + +```js +const result = await octokit.graphql(query, variables); +``` + +Finally, you can get the context of the current action: + +```js +const github = require('@actions/github'); + +const context = github.context; + +const newIssue = await octokit.rest.issues.create({ + ...context.repo, + title: 'New issue!', + body: 'Hello Universe!' +}); +``` + +## Webhook payload typescript definitions + +The npm module `@octokit/webhooks-definitions` provides type definitions for the response payloads. You can cast the payload to these types for better type information. + +First, install the npm module `npm install @octokit/webhooks-definitions` + +Then, assert the type based on the eventName +```ts +import * as core from '@actions/core' +import * as github from '@actions/github' +import {PushEvent} from '@octokit/webhooks-definitions/schema' + +if (github.context.eventName === 'push') { + const pushPayload = github.context.payload as PushEvent + core.info(`The head commit is: ${pushPayload.head_commit}`) +} +``` + +## Extending the Octokit instance +`@octokit/core` now supports the [plugin architecture](https://github.com/octokit/core.js#plugins). You can extend the GitHub instance using plugins. + +For example, using the `@octokit/plugin-enterprise-server` you can now access enterprise admin apis on GHES instances. + +```ts +import { GitHub, getOctokitOptions } from '@actions/github/lib/utils' +import { enterpriseServer220Admin } from '@octokit/plugin-enterprise-server' + +const octokit = GitHub.plugin(enterpriseServer220Admin) +// or override some of the default values as well +// const octokit = GitHub.plugin(enterpriseServer220Admin).defaults({userAgent: "MyNewUserAgent"}) + +const myToken = core.getInput('myToken'); +const myOctokit = new octokit(getOctokitOptions(token)) +// Create a new user +myOctokit.rest.enterpriseAdmin.createUser({ + login: "testuser", + email: "testuser@test.com", +}); +``` diff --git a/node_modules/@actions/github/lib/context.d.ts b/node_modules/@actions/github/lib/context.d.ts new file mode 100644 index 000000000..7d3a7de44 --- /dev/null +++ b/node_modules/@actions/github/lib/context.d.ts @@ -0,0 +1,32 @@ +import { WebhookPayload } from './interfaces'; +export declare class Context { + /** + * Webhook payload object that triggered the workflow + */ + payload: WebhookPayload; + eventName: string; + sha: string; + ref: string; + workflow: string; + action: string; + actor: string; + job: string; + runNumber: number; + runId: number; + apiUrl: string; + serverUrl: string; + graphqlUrl: string; + /** + * Hydrate the context from the environment + */ + constructor(); + get issue(): { + owner: string; + repo: string; + number: number; + }; + get repo(): { + owner: string; + repo: string; + }; +} diff --git a/node_modules/@actions/github/lib/context.js b/node_modules/@actions/github/lib/context.js new file mode 100644 index 000000000..f4e0afbda --- /dev/null +++ b/node_modules/@actions/github/lib/context.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Context = void 0; +const fs_1 = require("fs"); +const os_1 = require("os"); +class Context { + /** + * Hydrate the context from the environment + */ + constructor() { + var _a, _b, _c; + this.payload = {}; + if (process.env.GITHUB_EVENT_PATH) { + if ((0, fs_1.existsSync)(process.env.GITHUB_EVENT_PATH)) { + this.payload = JSON.parse((0, fs_1.readFileSync)(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' })); + } + else { + const path = process.env.GITHUB_EVENT_PATH; + process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`); + } + } + this.eventName = process.env.GITHUB_EVENT_NAME; + this.sha = process.env.GITHUB_SHA; + this.ref = process.env.GITHUB_REF; + this.workflow = process.env.GITHUB_WORKFLOW; + this.action = process.env.GITHUB_ACTION; + this.actor = process.env.GITHUB_ACTOR; + this.job = process.env.GITHUB_JOB; + this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10); + this.runId = parseInt(process.env.GITHUB_RUN_ID, 10); + this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`; + this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`; + this.graphqlUrl = + (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`; + } + get issue() { + const payload = this.payload; + return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number }); + } + get repo() { + if (process.env.GITHUB_REPOSITORY) { + const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); + return { owner, repo }; + } + if (this.payload.repository) { + return { + owner: this.payload.repository.owner.login, + repo: this.payload.repository.name + }; + } + throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); + } +} +exports.Context = Context; +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/node_modules/@actions/github/lib/context.js.map b/node_modules/@actions/github/lib/context.js.map new file mode 100644 index 000000000..45d207341 --- /dev/null +++ b/node_modules/@actions/github/lib/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;;AAEA,2BAA2C;AAC3C,2BAAsB;AAEtB,MAAa,OAAO;IAmBlB;;OAEG;IACH;;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;YACjC,IAAI,IAAA,eAAU,EAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;gBAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CACvB,IAAA,iBAAY,EAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAChE,CAAA;aACF;iBAAM;gBACL,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA;gBAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,kBAAkB,QAAG,EAAE,CAAC,CAAA;aACvE;SACF;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAA2B,CAAA;QACxD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAyB,CAAA;QACrD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAuB,CAAA;QACjD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAsB,CAAA;QAC/C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAA2B,EAAE,EAAE,CAAC,CAAA;QACtE,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAuB,EAAE,EAAE,CAAC,CAAA;QAC9D,IAAI,CAAC,MAAM,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,cAAc,mCAAI,wBAAwB,CAAA;QACpE,IAAI,CAAC,SAAS,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,mCAAI,oBAAoB,CAAA;QACtE,IAAI,CAAC,UAAU;YACb,MAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,mCAAI,gCAAgC,CAAA;IACtE,CAAC;IAED,IAAI,KAAK;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE5B,uCACK,IAAI,CAAC,IAAI,KACZ,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC,MAAM,IAClE;IACH,CAAC;IAED,IAAI,IAAI;QACN,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;YACjC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9D,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAA;SACrB;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YAC3B,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK;gBAC1C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;aACnC,CAAA;SACF;QAED,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;IACH,CAAC;CACF;AA3ED,0BA2EC"} \ No newline at end of file diff --git a/node_modules/@actions/github/lib/github.d.ts b/node_modules/@actions/github/lib/github.d.ts new file mode 100644 index 000000000..8c2121d2f --- /dev/null +++ b/node_modules/@actions/github/lib/github.d.ts @@ -0,0 +1,11 @@ +import * as Context from './context'; +import { GitHub } from './utils'; +import { OctokitOptions, OctokitPlugin } from '@octokit/core/dist-types/types'; +export declare const context: Context.Context; +/** + * Returns a hydrated octokit ready to use for GitHub Actions + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +export declare function getOctokit(token: string, options?: OctokitOptions, ...additionalPlugins: OctokitPlugin[]): InstanceType; diff --git a/node_modules/@actions/github/lib/github.js b/node_modules/@actions/github/lib/github.js new file mode 100644 index 000000000..ea73b56ae --- /dev/null +++ b/node_modules/@actions/github/lib/github.js @@ -0,0 +1,41 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getOctokit = exports.context = void 0; +const Context = __importStar(require("./context")); +const utils_1 = require("./utils"); +exports.context = new Context.Context(); +/** + * Returns a hydrated octokit ready to use for GitHub Actions + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +function getOctokit(token, options, ...additionalPlugins) { + const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins); + return new GitHubWithPlugins((0, utils_1.getOctokitOptions)(token, options)); +} +exports.getOctokit = getOctokit; +//# sourceMappingURL=github.js.map \ No newline at end of file diff --git a/node_modules/@actions/github/lib/github.js.map b/node_modules/@actions/github/lib/github.js.map new file mode 100644 index 000000000..e643866b4 --- /dev/null +++ b/node_modules/@actions/github/lib/github.js.map @@ -0,0 +1 @@ +{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AACpC,mCAAiD;AAKpC,QAAA,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;AAE5C;;;;;GAKG;AACH,SAAgB,UAAU,CACxB,KAAa,EACb,OAAwB,EACxB,GAAG,iBAAkC;IAErC,MAAM,iBAAiB,GAAG,cAAM,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAA;IAC7D,OAAO,IAAI,iBAAiB,CAAC,IAAA,yBAAiB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;AACjE,CAAC;AAPD,gCAOC"} \ No newline at end of file diff --git a/node_modules/@actions/github/lib/interfaces.d.ts b/node_modules/@actions/github/lib/interfaces.d.ts new file mode 100644 index 000000000..f81033325 --- /dev/null +++ b/node_modules/@actions/github/lib/interfaces.d.ts @@ -0,0 +1,40 @@ +export interface PayloadRepository { + [key: string]: any; + full_name?: string; + name: string; + owner: { + [key: string]: any; + login: string; + name?: string; + }; + html_url?: string; +} +export interface WebhookPayload { + [key: string]: any; + repository?: PayloadRepository; + issue?: { + [key: string]: any; + number: number; + html_url?: string; + body?: string; + }; + pull_request?: { + [key: string]: any; + number: number; + html_url?: string; + body?: string; + }; + sender?: { + [key: string]: any; + type: string; + }; + action?: string; + installation?: { + id: number; + [key: string]: any; + }; + comment?: { + id: number; + [key: string]: any; + }; +} diff --git a/node_modules/@actions/github/lib/interfaces.js b/node_modules/@actions/github/lib/interfaces.js new file mode 100644 index 000000000..a660b5e30 --- /dev/null +++ b/node_modules/@actions/github/lib/interfaces.js @@ -0,0 +1,4 @@ +"use strict"; +/* eslint-disable @typescript-eslint/no-explicit-any */ +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/node_modules/@actions/github/lib/interfaces.js.map b/node_modules/@actions/github/lib/interfaces.js.map new file mode 100644 index 000000000..dc2c9609f --- /dev/null +++ b/node_modules/@actions/github/lib/interfaces.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";AAAA,uDAAuD"} \ No newline at end of file diff --git a/node_modules/@actions/github/lib/internal/utils.d.ts b/node_modules/@actions/github/lib/internal/utils.d.ts new file mode 100644 index 000000000..8d2369349 --- /dev/null +++ b/node_modules/@actions/github/lib/internal/utils.d.ts @@ -0,0 +1,9 @@ +/// +import * as http from 'http'; +import { OctokitOptions } from '@octokit/core/dist-types/types'; +import { ProxyAgent, fetch } from 'undici'; +export declare function getAuthString(token: string, options: OctokitOptions): string | undefined; +export declare function getProxyAgent(destinationUrl: string): http.Agent; +export declare function getProxyAgentDispatcher(destinationUrl: string): ProxyAgent | undefined; +export declare function getProxyFetch(destinationUrl: any): typeof fetch; +export declare function getApiBaseUrl(): string; diff --git a/node_modules/@actions/github/lib/internal/utils.js b/node_modules/@actions/github/lib/internal/utils.js new file mode 100644 index 000000000..d2e23c03a --- /dev/null +++ b/node_modules/@actions/github/lib/internal/utils.js @@ -0,0 +1,70 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getApiBaseUrl = exports.getProxyFetch = exports.getProxyAgentDispatcher = exports.getProxyAgent = exports.getAuthString = void 0; +const httpClient = __importStar(require("@actions/http-client")); +const undici_1 = require("undici"); +function getAuthString(token, options) { + if (!token && !options.auth) { + throw new Error('Parameter token or opts.auth is required'); + } + else if (token && options.auth) { + throw new Error('Parameters token and opts.auth may not both be specified'); + } + return typeof options.auth === 'string' ? options.auth : `token ${token}`; +} +exports.getAuthString = getAuthString; +function getProxyAgent(destinationUrl) { + const hc = new httpClient.HttpClient(); + return hc.getAgent(destinationUrl); +} +exports.getProxyAgent = getProxyAgent; +function getProxyAgentDispatcher(destinationUrl) { + const hc = new httpClient.HttpClient(); + return hc.getAgentDispatcher(destinationUrl); +} +exports.getProxyAgentDispatcher = getProxyAgentDispatcher; +function getProxyFetch(destinationUrl) { + const httpDispatcher = getProxyAgentDispatcher(destinationUrl); + const proxyFetch = (url, opts) => __awaiter(this, void 0, void 0, function* () { + return (0, undici_1.fetch)(url, Object.assign(Object.assign({}, opts), { dispatcher: httpDispatcher })); + }); + return proxyFetch; +} +exports.getProxyFetch = getProxyFetch; +function getApiBaseUrl() { + return process.env['GITHUB_API_URL'] || 'https://api.github.com'; +} +exports.getApiBaseUrl = getApiBaseUrl; +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/node_modules/@actions/github/lib/internal/utils.js.map b/node_modules/@actions/github/lib/internal/utils.js.map new file mode 100644 index 000000000..0293cbf1b --- /dev/null +++ b/node_modules/@actions/github/lib/internal/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/internal/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iEAAkD;AAElD,mCAAwC;AAExC,SAAgB,aAAa,CAC3B,KAAa,EACb,OAAuB;IAEvB,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;KAC5D;SAAM,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;KAC5E;IAED,OAAO,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAA;AAC3E,CAAC;AAXD,sCAWC;AAED,SAAgB,aAAa,CAAC,cAAsB;IAClD,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,CAAA;IACtC,OAAO,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;AACpC,CAAC;AAHD,sCAGC;AAED,SAAgB,uBAAuB,CACrC,cAAsB;IAEtB,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,CAAA;IACtC,OAAO,EAAE,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAA;AAC9C,CAAC;AALD,0DAKC;AAED,SAAgB,aAAa,CAAC,cAAc;IAC1C,MAAM,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAA;IAC9D,MAAM,UAAU,GAAiB,CAAO,GAAG,EAAE,IAAI,EAAE,EAAE;QACnD,OAAO,IAAA,cAAK,EAAC,GAAG,kCACX,IAAI,KACP,UAAU,EAAE,cAAc,IAC1B,CAAA;IACJ,CAAC,CAAA,CAAA;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AATD,sCASC;AAED,SAAgB,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,wBAAwB,CAAA;AAClE,CAAC;AAFD,sCAEC"} \ No newline at end of file diff --git a/node_modules/@actions/github/lib/utils.d.ts b/node_modules/@actions/github/lib/utils.d.ts new file mode 100644 index 000000000..e889ee0ed --- /dev/null +++ b/node_modules/@actions/github/lib/utils.d.ts @@ -0,0 +1,15 @@ +import * as Context from './context'; +import { Octokit } from '@octokit/core'; +import { OctokitOptions } from '@octokit/core/dist-types/types'; +export declare const context: Context.Context; +export declare const defaults: OctokitOptions; +export declare const GitHub: typeof Octokit & import("@octokit/core/dist-types/types").Constructor; +/** + * Convience function to correctly format Octokit Options to pass into the constructor. + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +export declare function getOctokitOptions(token: string, options?: OctokitOptions): OctokitOptions; diff --git a/node_modules/@actions/github/lib/utils.js b/node_modules/@actions/github/lib/utils.js new file mode 100644 index 000000000..0dbb6ef20 --- /dev/null +++ b/node_modules/@actions/github/lib/utils.js @@ -0,0 +1,59 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0; +const Context = __importStar(require("./context")); +const Utils = __importStar(require("./internal/utils")); +// octokit + plugins +const core_1 = require("@octokit/core"); +const plugin_rest_endpoint_methods_1 = require("@octokit/plugin-rest-endpoint-methods"); +const plugin_paginate_rest_1 = require("@octokit/plugin-paginate-rest"); +exports.context = new Context.Context(); +const baseUrl = Utils.getApiBaseUrl(); +exports.defaults = { + baseUrl, + request: { + agent: Utils.getProxyAgent(baseUrl), + fetch: Utils.getProxyFetch(baseUrl) + } +}; +exports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults); +/** + * Convience function to correctly format Octokit Options to pass into the constructor. + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +function getOctokitOptions(token, options) { + const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller + // Auth + const auth = Utils.getAuthString(token, opts); + if (auth) { + opts.auth = auth; + } + return opts; +} +exports.getOctokitOptions = getOctokitOptions; +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/node_modules/@actions/github/lib/utils.js.map b/node_modules/@actions/github/lib/utils.js.map new file mode 100644 index 000000000..f68bc40be --- /dev/null +++ b/node_modules/@actions/github/lib/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AACpC,wDAAyC;AAEzC,oBAAoB;AACpB,wCAAqC;AAErC,wFAAyE;AACzE,wEAA0D;AAE7C,QAAA,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;AAE5C,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,CAAA;AACxB,QAAA,QAAQ,GAAmB;IACtC,OAAO;IACP,OAAO,EAAE;QACP,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;QACnC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;KACpC;CACF,CAAA;AAEY,QAAA,MAAM,GAAG,cAAO,CAAC,MAAM,CAClC,kDAAmB,EACnB,mCAAY,CACb,CAAC,QAAQ,CAAC,gBAAQ,CAAC,CAAA;AAEpB;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,KAAa,EACb,OAAwB;IAExB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAA,CAAC,iEAAiE;IAE/G,OAAO;IACP,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC7C,IAAI,IAAI,EAAE;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;KACjB;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAbD,8CAaC"} \ No newline at end of file diff --git a/node_modules/@actions/github/package.json b/node_modules/@actions/github/package.json new file mode 100644 index 000000000..20ae2302f --- /dev/null +++ b/node_modules/@actions/github/package.json @@ -0,0 +1,49 @@ +{ + "name": "@actions/github", + "version": "6.0.0", + "description": "Actions github lib", + "keywords": [ + "github", + "actions" + ], + "homepage": "https://github.com/actions/toolkit/tree/main/packages/github", + "license": "MIT", + "main": "lib/github.js", + "types": "lib/github.d.ts", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib", + "!.DS_Store" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/actions/toolkit.git", + "directory": "packages/github" + }, + "scripts": { + "audit-moderate": "npm install && npm audit --json --audit-level=moderate > audit.json", + "test": "jest", + "build": "tsc", + "format": "prettier --write **/*.ts", + "format-check": "prettier --check **/*.ts", + "tsc": "tsc" + }, + "bugs": { + "url": "https://github.com/actions/toolkit/issues" + }, + "dependencies": { + "@actions/http-client": "^2.2.0", + "@octokit/core": "^5.0.1", + "@octokit/plugin-paginate-rest": "^9.0.0", + "@octokit/plugin-rest-endpoint-methods": "^10.0.0" + }, + "devDependencies": { + "proxy": "^2.1.1" + } +} \ No newline at end of file diff --git a/node_modules/@octokit/auth-token/LICENSE b/node_modules/@octokit/auth-token/LICENSE new file mode 100644 index 000000000..ef2c18ee5 --- /dev/null +++ b/node_modules/@octokit/auth-token/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2019 Octokit contributors + +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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. diff --git a/node_modules/@octokit/auth-token/README.md b/node_modules/@octokit/auth-token/README.md new file mode 100644 index 000000000..2e48b73bb --- /dev/null +++ b/node_modules/@octokit/auth-token/README.md @@ -0,0 +1,285 @@ +# auth-token.js + +> GitHub API token authentication for browsers and Node.js + +[![@latest](https://img.shields.io/npm/v/@octokit/auth-token.svg)](https://www.npmjs.com/package/@octokit/auth-token) +[![Build Status](https://github.com/octokit/auth-token.js/workflows/Test/badge.svg)](https://github.com/octokit/auth-token.js/actions?query=workflow%3ATest) + +`@octokit/auth-token` is the simplest of [GitHub’s authentication strategies](https://github.com/octokit/auth.js). + +It is useful if you want to support multiple authentication strategies, as it’s API is compatible with its sibling packages for [basic](https://github.com/octokit/auth-basic.js), [GitHub App](https://github.com/octokit/auth-app.js) and [OAuth app](https://github.com/octokit/auth.js) authentication. + + + +- [Usage](#usage) +- [`createTokenAuth(token) options`](#createtokenauthtoken-options) +- [`auth()`](#auth) +- [Authentication object](#authentication-object) +- [`auth.hook(request, route, options)` or `auth.hook(request, options)`](#authhookrequest-route-options-or-authhookrequest-options) +- [Find more information](#find-more-information) + - [Find out what scopes are enabled for oauth tokens](#find-out-what-scopes-are-enabled-for-oauth-tokens) + - [Find out if token is a personal access token or if it belongs to an OAuth app](#find-out-if-token-is-a-personal-access-token-or-if-it-belongs-to-an-oauth-app) + - [Find out what permissions are enabled for a repository](#find-out-what-permissions-are-enabled-for-a-repository) + - [Use token for git operations](#use-token-for-git-operations) +- [License](#license) + + + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/auth-token` directly from [cdn.skypack.dev](https://cdn.skypack.dev) + +```html + +``` + +
+Node + + +Install with npm install @octokit/auth-token + +```js +const { createTokenAuth } = require("@octokit/auth-token"); +// or: import { createTokenAuth } from "@octokit/auth-token"; +``` + +
+ +```js +const auth = createTokenAuth("ghp_PersonalAccessToken01245678900000000"); +const authentication = await auth(); +// { +// type: 'token', +// token: 'ghp_PersonalAccessToken01245678900000000', +// tokenType: 'oauth' +// } +``` + +## `createTokenAuth(token) options` + +The `createTokenAuth` method accepts a single argument of type string, which is the token. The passed token can be one of the following: + +- [Personal access token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line) +- [OAuth access token](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/) +- [GITHUB_TOKEN provided to GitHub Actions](https://developer.github.com/actions/creating-github-actions/accessing-the-runtime-environment/#environment-variables) +- Installation access token ([server-to-server](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation)) +- User authentication for installation ([user-to-server](https://docs.github.com/en/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps)) + +Examples + +```js +// Personal access token or OAuth access token +createTokenAuth("ghp_PersonalAccessToken01245678900000000"); +// { +// type: 'token', +// token: 'ghp_PersonalAccessToken01245678900000000', +// tokenType: 'oauth' +// } + +// Installation access token or GitHub Action token +createTokenAuth("ghs_InstallallationOrActionToken00000000"); +// { +// type: 'token', +// token: 'ghs_InstallallationOrActionToken00000000', +// tokenType: 'installation' +// } + +// Installation access token or GitHub Action token +createTokenAuth("ghu_InstallationUserToServer000000000000"); +// { +// type: 'token', +// token: 'ghu_InstallationUserToServer000000000000', +// tokenType: 'user-to-server' +// } +``` + +## `auth()` + +The `auth()` method has no options. It returns a promise which resolves with the the authentication object. + +## Authentication object + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ type + + string + + "token" +
+ token + + string + + The provided token. +
+ tokenType + + string + + Can be either "oauth" for personal access tokens and OAuth tokens, "installation" for installation access tokens (includes GITHUB_TOKEN provided to GitHub Actions), "app" for a GitHub App JSON Web Token, or "user-to-server" for a user authentication token through an app installation. +
+ +## `auth.hook(request, route, options)` or `auth.hook(request, options)` + +`auth.hook()` hooks directly into the request life cycle. It authenticates the request using the provided token. + +The `request` option is an instance of [`@octokit/request`](https://github.com/octokit/request.js#readme). The `route`/`options` parameters are the same as for the [`request()` method](https://github.com/octokit/request.js#request). + +`auth.hook()` can be called directly to send an authenticated request + +```js +const { data: authorizations } = await auth.hook( + request, + "GET /authorizations" +); +``` + +Or it can be passed as option to [`request()`](https://github.com/octokit/request.js#request). + +```js +const requestWithAuth = request.defaults({ + request: { + hook: auth.hook, + }, +}); + +const { data: authorizations } = await requestWithAuth("GET /authorizations"); +``` + +## Find more information + +`auth()` does not send any requests, it only transforms the provided token string into an authentication object. + +Here is a list of things you can do to retrieve further information + +### Find out what scopes are enabled for oauth tokens + +Note that this does not work for installations. There is no way to retrieve permissions based on an installation access tokens. + +```js +const TOKEN = "ghp_PersonalAccessToken01245678900000000"; + +const auth = createTokenAuth(TOKEN); +const authentication = await auth(); + +const response = await request("HEAD /"); +const scopes = response.headers["x-oauth-scopes"].split(/,\s+/); + +if (scopes.length) { + console.log( + `"${TOKEN}" has ${scopes.length} scopes enabled: ${scopes.join(", ")}` + ); +} else { + console.log(`"${TOKEN}" has no scopes enabled`); +} +``` + +### Find out if token is a personal access token or if it belongs to an OAuth app + +```js +const TOKEN = "ghp_PersonalAccessToken01245678900000000"; + +const auth = createTokenAuth(TOKEN); +const authentication = await auth(); + +const response = await request("HEAD /"); +const clientId = response.headers["x-oauth-client-id"]; + +if (clientId) { + console.log( + `"${token}" is an OAuth token, its app’s client_id is ${clientId}.` + ); +} else { + console.log(`"${token}" is a personal access token`); +} +``` + +### Find out what permissions are enabled for a repository + +Note that the `permissions` key is not set when authenticated using an installation access token. + +```js +const TOKEN = "ghp_PersonalAccessToken01245678900000000"; + +const auth = createTokenAuth(TOKEN); +const authentication = await auth(); + +const response = await request("GET /repos/{owner}/{repo}", { + owner: "octocat", + repo: "hello-world", +}); + +console.log(response.data.permissions); +// { +// admin: true, +// push: true, +// pull: true +// } +``` + +### Use token for git operations + +Both OAuth and installation access tokens can be used for git operations. However, when using with an installation, [the token must be prefixed with `x-access-token`](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#http-based-git-access-by-an-installation). + +This example is using the [`execa`](https://github.com/sindresorhus/execa) package to run a `git push` command. + +```js +const TOKEN = "ghp_PersonalAccessToken01245678900000000"; + +const auth = createTokenAuth(TOKEN); +const { token, tokenType } = await auth(); +const tokenWithPrefix = + tokenType === "installation" ? `x-access-token:${token}` : token; + +const repositoryUrl = `https://${tokenWithPrefix}@github.com/octocat/hello-world.git`; + +const { stdout } = await execa("git", ["push", repositoryUrl]); +console.log(stdout); +``` + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/auth-token/dist-node/index.js b/node_modules/@octokit/auth-token/dist-node/index.js new file mode 100644 index 000000000..93ea7c87a --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-node/index.js @@ -0,0 +1,79 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + createTokenAuth: () => createTokenAuth +}); +module.exports = __toCommonJS(dist_src_exports); + +// pkg/dist-src/auth.js +var REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +var REGEX_IS_INSTALLATION = /^ghs_/; +var REGEX_IS_USER_TO_SERVER = /^ghu_/; +async function auth(token) { + const isApp = token.split(/\./).length === 3; + const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); + const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; + return { + type: "token", + token, + tokenType + }; +} + +// pkg/dist-src/with-authorization-prefix.js +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + return `token ${token}`; +} + +// pkg/dist-src/hook.js +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge( + route, + parameters + ); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} + +// pkg/dist-src/index.js +var createTokenAuth = function createTokenAuth2(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + if (typeof token !== "string") { + throw new Error( + "[@octokit/auth-token] Token passed to createTokenAuth is not a string" + ); + } + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + createTokenAuth +}); diff --git a/node_modules/@octokit/auth-token/dist-node/index.js.map b/node_modules/@octokit/auth-token/dist-node/index.js.map new file mode 100644 index 000000000..deff6da2f --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-node/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/index.js", "../dist-src/auth.js", "../dist-src/with-authorization-prefix.js", "../dist-src/hook.js"], + "sourcesContent": ["import { auth } from \"./auth\";\nimport { hook } from \"./hook\";\nconst createTokenAuth = function createTokenAuth2(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n if (typeof token !== \"string\") {\n throw new Error(\n \"[@octokit/auth-token] Token passed to createTokenAuth is not a string\"\n );\n }\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\nexport {\n createTokenAuth\n};\n", "const REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token,\n tokenType\n };\n}\nexport {\n auth\n};\n", "function withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n return `token ${token}`;\n}\nexport {\n withAuthorizationPrefix\n};\n", "import { withAuthorizationPrefix } from \"./with-authorization-prefix\";\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(\n route,\n parameters\n );\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\nexport {\n hook\n};\n"], + "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAM,+BAA+B;AACrC,IAAM,wBAAwB;AAC9B,IAAM,0BAA0B;AAChC,eAAe,KAAK,OAAO;AACzB,QAAM,QAAQ,MAAM,MAAM,IAAI,EAAE,WAAW;AAC3C,QAAM,iBAAiB,6BAA6B,KAAK,KAAK,KAAK,sBAAsB,KAAK,KAAK;AACnG,QAAM,iBAAiB,wBAAwB,KAAK,KAAK;AACzD,QAAM,YAAY,QAAQ,QAAQ,iBAAiB,iBAAiB,iBAAiB,mBAAmB;AACxG,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACF;AACF;;;ACbA,SAAS,wBAAwB,OAAO;AACtC,MAAI,MAAM,MAAM,IAAI,EAAE,WAAW,GAAG;AAClC,WAAO,UAAU;AAAA,EACnB;AACA,SAAO,SAAS;AAClB;;;ACJA,eAAe,KAAK,OAAO,SAAS,OAAO,YAAY;AACrD,QAAM,WAAW,QAAQ,SAAS;AAAA,IAChC;AAAA,IACA;AAAA,EACF;AACA,WAAS,QAAQ,gBAAgB,wBAAwB,KAAK;AAC9D,SAAO,QAAQ,QAAQ;AACzB;;;AHNA,IAAM,kBAAkB,SAAS,iBAAiB,OAAO;AACvD,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,UAAQ,MAAM,QAAQ,sBAAsB,EAAE;AAC9C,SAAO,OAAO,OAAO,KAAK,KAAK,MAAM,KAAK,GAAG;AAAA,IAC3C,MAAM,KAAK,KAAK,MAAM,KAAK;AAAA,EAC7B,CAAC;AACH;", + "names": [] +} diff --git a/node_modules/@octokit/auth-token/dist-src/auth.js b/node_modules/@octokit/auth-token/dist-src/auth.js new file mode 100644 index 000000000..d3efbf5a7 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-src/auth.js @@ -0,0 +1,17 @@ +const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +const REGEX_IS_INSTALLATION = /^ghs_/; +const REGEX_IS_USER_TO_SERVER = /^ghu_/; +async function auth(token) { + const isApp = token.split(/\./).length === 3; + const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); + const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; + return { + type: "token", + token, + tokenType + }; +} +export { + auth +}; diff --git a/node_modules/@octokit/auth-token/dist-src/hook.js b/node_modules/@octokit/auth-token/dist-src/hook.js new file mode 100644 index 000000000..371a041b8 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-src/hook.js @@ -0,0 +1,12 @@ +import { withAuthorizationPrefix } from "./with-authorization-prefix"; +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge( + route, + parameters + ); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} +export { + hook +}; diff --git a/node_modules/@octokit/auth-token/dist-src/index.js b/node_modules/@octokit/auth-token/dist-src/index.js new file mode 100644 index 000000000..445cfaaa3 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-src/index.js @@ -0,0 +1,19 @@ +import { auth } from "./auth"; +import { hook } from "./hook"; +const createTokenAuth = function createTokenAuth2(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + if (typeof token !== "string") { + throw new Error( + "[@octokit/auth-token] Token passed to createTokenAuth is not a string" + ); + } + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; +export { + createTokenAuth +}; diff --git a/node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js b/node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js new file mode 100644 index 000000000..02a4bb5eb --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js @@ -0,0 +1,9 @@ +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + return `token ${token}`; +} +export { + withAuthorizationPrefix +}; diff --git a/node_modules/@octokit/auth-token/dist-types/auth.d.ts b/node_modules/@octokit/auth-token/dist-types/auth.d.ts new file mode 100644 index 000000000..941d8c21f --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-types/auth.d.ts @@ -0,0 +1,2 @@ +import type { Token, Authentication } from "./types"; +export declare function auth(token: Token): Promise; diff --git a/node_modules/@octokit/auth-token/dist-types/hook.d.ts b/node_modules/@octokit/auth-token/dist-types/hook.d.ts new file mode 100644 index 000000000..ad457dc33 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-types/hook.d.ts @@ -0,0 +1,2 @@ +import type { AnyResponse, EndpointOptions, RequestInterface, RequestParameters, Route, Token } from "./types"; +export declare function hook(token: Token, request: RequestInterface, route: Route | EndpointOptions, parameters?: RequestParameters): Promise; diff --git a/node_modules/@octokit/auth-token/dist-types/index.d.ts b/node_modules/@octokit/auth-token/dist-types/index.d.ts new file mode 100644 index 000000000..115bb7f11 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-types/index.d.ts @@ -0,0 +1,7 @@ +import type { StrategyInterface, Token, Authentication } from "./types"; +export type Types = { + StrategyOptions: Token; + AuthOptions: never; + Authentication: Authentication; +}; +export declare const createTokenAuth: StrategyInterface; diff --git a/node_modules/@octokit/auth-token/dist-types/types.d.ts b/node_modules/@octokit/auth-token/dist-types/types.d.ts new file mode 100644 index 000000000..4267fa19d --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-types/types.d.ts @@ -0,0 +1,33 @@ +import * as OctokitTypes from "@octokit/types"; +export type AnyResponse = OctokitTypes.OctokitResponse; +export type StrategyInterface = OctokitTypes.StrategyInterface<[ + Token +], [ +], Authentication>; +export type EndpointDefaults = OctokitTypes.EndpointDefaults; +export type EndpointOptions = OctokitTypes.EndpointOptions; +export type RequestParameters = OctokitTypes.RequestParameters; +export type RequestInterface = OctokitTypes.RequestInterface; +export type Route = OctokitTypes.Route; +export type Token = string; +export type OAuthTokenAuthentication = { + type: "token"; + tokenType: "oauth"; + token: Token; +}; +export type InstallationTokenAuthentication = { + type: "token"; + tokenType: "installation"; + token: Token; +}; +export type AppAuthentication = { + type: "token"; + tokenType: "app"; + token: Token; +}; +export type UserToServerAuthentication = { + type: "token"; + tokenType: "user-to-server"; + token: Token; +}; +export type Authentication = OAuthTokenAuthentication | InstallationTokenAuthentication | AppAuthentication | UserToServerAuthentication; diff --git a/node_modules/@octokit/auth-token/dist-types/with-authorization-prefix.d.ts b/node_modules/@octokit/auth-token/dist-types/with-authorization-prefix.d.ts new file mode 100644 index 000000000..2e52c31db --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-types/with-authorization-prefix.d.ts @@ -0,0 +1,6 @@ +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +export declare function withAuthorizationPrefix(token: string): string; diff --git a/node_modules/@octokit/auth-token/dist-web/index.js b/node_modules/@octokit/auth-token/dist-web/index.js new file mode 100644 index 000000000..b6f7249c5 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-web/index.js @@ -0,0 +1,52 @@ +// pkg/dist-src/auth.js +var REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +var REGEX_IS_INSTALLATION = /^ghs_/; +var REGEX_IS_USER_TO_SERVER = /^ghu_/; +async function auth(token) { + const isApp = token.split(/\./).length === 3; + const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); + const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; + return { + type: "token", + token, + tokenType + }; +} + +// pkg/dist-src/with-authorization-prefix.js +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + return `token ${token}`; +} + +// pkg/dist-src/hook.js +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge( + route, + parameters + ); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} + +// pkg/dist-src/index.js +var createTokenAuth = function createTokenAuth2(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + if (typeof token !== "string") { + throw new Error( + "[@octokit/auth-token] Token passed to createTokenAuth is not a string" + ); + } + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; +export { + createTokenAuth +}; diff --git a/node_modules/@octokit/auth-token/dist-web/index.js.map b/node_modules/@octokit/auth-token/dist-web/index.js.map new file mode 100644 index 000000000..b84a1eadb --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-web/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/auth.js", "../dist-src/with-authorization-prefix.js", "../dist-src/hook.js", "../dist-src/index.js"], + "sourcesContent": ["const REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token,\n tokenType\n };\n}\nexport {\n auth\n};\n", "function withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n return `token ${token}`;\n}\nexport {\n withAuthorizationPrefix\n};\n", "import { withAuthorizationPrefix } from \"./with-authorization-prefix\";\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(\n route,\n parameters\n );\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\nexport {\n hook\n};\n", "import { auth } from \"./auth\";\nimport { hook } from \"./hook\";\nconst createTokenAuth = function createTokenAuth2(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n if (typeof token !== \"string\") {\n throw new Error(\n \"[@octokit/auth-token] Token passed to createTokenAuth is not a string\"\n );\n }\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\nexport {\n createTokenAuth\n};\n"], + "mappings": ";AAAA,IAAM,+BAA+B;AACrC,IAAM,wBAAwB;AAC9B,IAAM,0BAA0B;AAChC,eAAe,KAAK,OAAO;AACzB,QAAM,QAAQ,MAAM,MAAM,IAAI,EAAE,WAAW;AAC3C,QAAM,iBAAiB,6BAA6B,KAAK,KAAK,KAAK,sBAAsB,KAAK,KAAK;AACnG,QAAM,iBAAiB,wBAAwB,KAAK,KAAK;AACzD,QAAM,YAAY,QAAQ,QAAQ,iBAAiB,iBAAiB,iBAAiB,mBAAmB;AACxG,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACF;AACF;;;ACbA,SAAS,wBAAwB,OAAO;AACtC,MAAI,MAAM,MAAM,IAAI,EAAE,WAAW,GAAG;AAClC,WAAO,UAAU;AAAA,EACnB;AACA,SAAO,SAAS;AAClB;;;ACJA,eAAe,KAAK,OAAO,SAAS,OAAO,YAAY;AACrD,QAAM,WAAW,QAAQ,SAAS;AAAA,IAChC;AAAA,IACA;AAAA,EACF;AACA,WAAS,QAAQ,gBAAgB,wBAAwB,KAAK;AAC9D,SAAO,QAAQ,QAAQ;AACzB;;;ACNA,IAAM,kBAAkB,SAAS,iBAAiB,OAAO;AACvD,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,UAAQ,MAAM,QAAQ,sBAAsB,EAAE;AAC9C,SAAO,OAAO,OAAO,KAAK,KAAK,MAAM,KAAK,GAAG;AAAA,IAC3C,MAAM,KAAK,KAAK,MAAM,KAAK;AAAA,EAC7B,CAAC;AACH;", + "names": [] +} diff --git a/node_modules/@octokit/auth-token/package.json b/node_modules/@octokit/auth-token/package.json new file mode 100644 index 000000000..cecbfb69d --- /dev/null +++ b/node_modules/@octokit/auth-token/package.json @@ -0,0 +1,44 @@ +{ + "name": "@octokit/auth-token", + "publishConfig": { + "access": "public" + }, + "version": "4.0.0", + "description": "GitHub API token authentication for browsers and Node.js", + "repository": "github:octokit/auth-token.js", + "keywords": [ + "github", + "octokit", + "authentication", + "api" + ], + "author": "Gregor Martynus (https://github.com/gr2m)", + "license": "MIT", + "devDependencies": { + "@octokit/request": "^6.0.0", + "@octokit/tsconfig": "^2.0.0", + "@octokit/types": "^9.2.3", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^29.0.0", + "esbuild": "^0.18.0", + "fetch-mock": "^9.0.0", + "glob": "^10.2.6", + "jest": "^29.0.0", + "prettier": "2.8.8", + "semantic-release": "^21.0.0", + "ts-jest": "^29.0.0", + "typescript": "^5.0.0" + }, + "engines": { + "node": ">= 18" + }, + "files": [ + "dist-*/**", + "bin/**" + ], + "main": "dist-node/index.js", + "browser": "dist-web/index.js", + "types": "dist-types/index.d.ts", + "module": "dist-src/index.js", + "sideEffects": false +} diff --git a/node_modules/@octokit/core/LICENSE b/node_modules/@octokit/core/LICENSE new file mode 100644 index 000000000..ef2c18ee5 --- /dev/null +++ b/node_modules/@octokit/core/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2019 Octokit contributors + +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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. diff --git a/node_modules/@octokit/core/README.md b/node_modules/@octokit/core/README.md new file mode 100644 index 000000000..985841bf0 --- /dev/null +++ b/node_modules/@octokit/core/README.md @@ -0,0 +1,448 @@ +# core.js + +> Extendable client for GitHub's REST & GraphQL APIs + +[![@latest](https://img.shields.io/npm/v/@octokit/core.svg)](https://www.npmjs.com/package/@octokit/core) +[![Build Status](https://github.com/octokit/core.js/workflows/Test/badge.svg)](https://github.com/octokit/core.js/actions?query=workflow%3ATest+branch%3Amain) + + + +- [Usage](#usage) + - [REST API example](#rest-api-example) + - [GraphQL example](#graphql-example) +- [Options](#options) +- [Defaults](#defaults) +- [Authentication](#authentication) +- [Logging](#logging) +- [Hooks](#hooks) +- [Plugins](#plugins) +- [Build your own Octokit with Plugins and Defaults](#build-your-own-octokit-with-plugins-and-defaults) +- [LICENSE](#license) + + + +If you need a minimalistic library to utilize GitHub's [REST API](https://developer.github.com/v3/) and [GraphQL API](https://developer.github.com/v4/) which you can extend with plugins as needed, then `@octokit/core` is a great starting point. + +If you don't need the Plugin API then using [`@octokit/request`](https://github.com/octokit/request.js/) or [`@octokit/graphql`](https://github.com/octokit/graphql.js/) directly is a good alternative. + +## Usage + + + + + + +
+Browsers + +Load @octokit/core directly from esm.sh + +```html + +``` + +
+Node + + +Install with npm install @octokit/core + +```js +const { Octokit } = require("@octokit/core"); +// or: import { Octokit } from "@octokit/core"; +``` + +
+ +### REST API example + +```js +// Create a personal access token at https://github.com/settings/tokens/new?scopes=repo +const octokit = new Octokit({ auth: `personal-access-token123` }); + +const response = await octokit.request("GET /orgs/{org}/repos", { + org: "octokit", + type: "private", +}); +``` + +See [`@octokit/request`](https://github.com/octokit/request.js) for full documentation of the `.request` method. + +### GraphQL example + +```js +const octokit = new Octokit({ auth: `secret123` }); + +const response = await octokit.graphql( + `query ($login: String!) { + organization(login: $login) { + repositories(privacy: PRIVATE) { + totalCount + } + } + }`, + { login: "octokit" }, +); +``` + +See [`@octokit/graphql`](https://github.com/octokit/graphql.js) for full documentation of the `.graphql` method. + +## Options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ options.authStrategy + + Function + + Defaults to @octokit/auth-token. See Authentication below for examples. +
+ options.auth + + String or Object + + See Authentication below for examples. +
+ options.baseUrl + + String + + +When using with GitHub Enterprise Server, set `options.baseUrl` to the root URL of the API. For example, if your GitHub Enterprise Server's hostname is `github.acme-inc.com`, then set `options.baseUrl` to `https://github.acme-inc.com/api/v3`. Example + +```js +const octokit = new Octokit({ + baseUrl: "https://github.acme-inc.com/api/v3", +}); +``` + +
+ options.previews + + Array of Strings + + +Some REST API endpoints require preview headers to be set, or enable +additional features. Preview headers can be set on a per-request basis, e.g. + +```js +octokit.request("POST /repos/{owner}/{repo}/pulls", { + mediaType: { + previews: ["shadow-cat"], + }, + owner, + repo, + title: "My pull request", + base: "main", + head: "my-feature", + draft: true, +}); +``` + +You can also set previews globally, by setting the `options.previews` option on the constructor. Example: + +```js +const octokit = new Octokit({ + previews: ["shadow-cat"], +}); +``` + +
+ options.request + + Object + + +Set a default request timeout (`options.request.timeout`) or an [`http(s).Agent`](https://nodejs.org/api/http.html#http_class_http_agent) e.g. for proxy usage (Node only, `options.request.agent`). + +There are more `options.request.*` options, see [`@octokit/request` options](https://github.com/octokit/request.js#request). `options.request` can also be set on a per-request basis. + +
+ options.timeZone + + String + + +Sets the `Time-Zone` header which defines a timezone according to the [list of names from the Olson database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + +```js +const octokit = new Octokit({ + timeZone: "America/Los_Angeles", +}); +``` + +The time zone header will determine the timezone used for generating the timestamp when creating commits. See [GitHub's Timezones documentation](https://developer.github.com/v3/#timezones). + +
+ options.userAgent + + String + + +A custom user agent string for your app or library. Example + +```js +const octokit = new Octokit({ + userAgent: "my-app/v1.2.3", +}); +``` + +
+ +## Defaults + +You can create a new Octokit class with customized default options. + +```js +const MyOctokit = Octokit.defaults({ + auth: "personal-access-token123", + baseUrl: "https://github.acme-inc.com/api/v3", + userAgent: "my-app/v1.2.3", +}); +const octokit1 = new MyOctokit(); +const octokit2 = new MyOctokit(); +``` + +If you pass additional options to your new constructor, the options will be merged shallowly. + +```js +const MyOctokit = Octokit.defaults({ + foo: { + opt1: 1, + }, +}); +const octokit = new MyOctokit({ + foo: { + opt2: 1, + }, +}); +// options will be { foo: { opt2: 1 }} +``` + +If you need a deep or conditional merge, you can pass a function instead. + +```js +const MyOctokit = Octokit.defaults((options) => { + return { + foo: Object.assign({}, options.foo, { opt1: 1 }), + }; +}); +const octokit = new MyOctokit({ + foo: { opt2: 1 }, +}); +// options will be { foo: { opt1: 1, opt2: 1 }} +``` + +Be careful about mutating the `options` object in the `Octokit.defaults` callback, as it can have unforeseen consequences. + +## Authentication + +Authentication is optional for some REST API endpoints accessing public data, but is required for GraphQL queries. Using authentication also increases your [API rate limit](https://developer.github.com/v3/#rate-limiting). + +By default, Octokit authenticates using the [token authentication strategy](https://github.com/octokit/auth-token.js). Pass in a token using `options.auth`. It can be a personal access token, an OAuth token, an installation access token or a JSON Web Token for GitHub App authentication. The `Authorization` header will be set according to the type of token. + +```js +import { Octokit } from "@octokit/core"; + +const octokit = new Octokit({ + auth: "mypersonalaccesstoken123", +}); + +const { data } = await octokit.request("/user"); +``` + +To use a different authentication strategy, set `options.authStrategy`. A list of authentication strategies is available at [octokit/authentication-strategies.js](https://github.com/octokit/authentication-strategies.js/#readme). + +Example + +```js +import { Octokit } from "@octokit/core"; +import { createAppAuth } from "@octokit/auth-app"; + +const appOctokit = new Octokit({ + authStrategy: createAppAuth, + auth: { + appId: 123, + privateKey: process.env.PRIVATE_KEY, + }, +}); + +const { data } = await appOctokit.request("/app"); +``` + +The `.auth()` method returned by the current authentication strategy can be accessed at `octokit.auth()`. Example + +```js +const { token } = await appOctokit.auth({ + type: "installation", + installationId: 123, +}); +``` + +## Logging + +There are four built-in log methods + +1. `octokit.log.debug(message[, additionalInfo])` +1. `octokit.log.info(message[, additionalInfo])` +1. `octokit.log.warn(message[, additionalInfo])` +1. `octokit.log.error(message[, additionalInfo])` + +They can be configured using the [`log` client option](client-options). By default, `octokit.log.debug()` and `octokit.log.info()` are no-ops, while the other two call `console.warn()` and `console.error()` respectively. + +This is useful if you build reusable [plugins](#plugins). + +If you would like to make the log level configurable using an environment variable or external option, we recommend the [console-log-level](https://github.com/watson/console-log-level) package. Example + +```js +const octokit = new Octokit({ + log: require("console-log-level")({ level: "info" }), +}); +``` + +## Hooks + +You can customize Octokit's request lifecycle with hooks. + +```js +octokit.hook.before("request", async (options) => { + validate(options); +}); +octokit.hook.after("request", async (response, options) => { + console.log(`${options.method} ${options.url}: ${response.status}`); +}); +octokit.hook.error("request", async (error, options) => { + if (error.status === 304) { + return findInCache(error.response.headers.etag); + } + + throw error; +}); +octokit.hook.wrap("request", async (request, options) => { + // add logic before, after, catch errors or replace the request altogether + return request(options); +}); +``` + +See [before-after-hook](https://github.com/gr2m/before-after-hook#readme) for more documentation on hooks. + +## Plugins + +Octokit’s functionality can be extended using plugins. The `Octokit.plugin()` method accepts a plugin (or many) and returns a new constructor. + +A plugin is a function which gets two arguments: + +1. the current instance +2. the options passed to the constructor. + +In order to extend `octokit`'s API, the plugin must return an object with the new methods. Please refrain from adding methods directly to the `octokit` instance, especialy if you depend on keys that do not exist in `@octokit/core`, such as `octokit.rest`. + +```js +// index.js +const { Octokit } = require("@octokit/core") +const MyOctokit = Octokit.plugin( + require("./lib/my-plugin"), + require("octokit-plugin-example") +); + +const octokit = new MyOctokit({ greeting: "Moin moin" }); +octokit.helloWorld(); // logs "Moin moin, world!" +octokit.request("GET /"); // logs "GET / - 200 in 123ms" + +// lib/my-plugin.js +module.exports = (octokit, options = { greeting: "Hello" }) => { + // hook into the request lifecycle + octokit.hook.wrap("request", async (request, options) => { + const time = Date.now(); + const response = await request(options); + console.log( + `${options.method} ${options.url} – ${response.status} in ${Date.now() - + time}ms` + ); + return response; + }); + + // add a custom method + return { + helloWorld: () => console.log(`${options.greeting}, world!`); + } +}; +``` + +## Build your own Octokit with Plugins and Defaults + +You can build your own Octokit class with preset default options and plugins. In fact, this is mostly how the `@octokit/` modules work, such as [`@octokit/action`](https://github.com/octokit/action.js): + +```js +const { Octokit } = require("@octokit/core"); +const MyActionOctokit = Octokit.plugin( + require("@octokit/plugin-paginate-rest").paginateRest, + require("@octokit/plugin-throttling").throttling, + require("@octokit/plugin-retry").retry, +).defaults({ + throttle: { + onAbuseLimit: (retryAfter, options) => { + /* ... */ + }, + onRateLimit: (retryAfter, options) => { + /* ... */ + }, + }, + authStrategy: require("@octokit/auth-action").createActionAuth, + userAgent: `my-octokit-action/v1.2.3`, +}); + +const octokit = new MyActionOctokit(); +const installations = await octokit.paginate("GET /app/installations"); +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/node_modules/@octokit/core/dist-node/index.js b/node_modules/@octokit/core/dist-node/index.js new file mode 100644 index 000000000..9decd2a16 --- /dev/null +++ b/node_modules/@octokit/core/dist-node/index.js @@ -0,0 +1,163 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + Octokit: () => Octokit +}); +module.exports = __toCommonJS(dist_src_exports); +var import_universal_user_agent = require("universal-user-agent"); +var import_before_after_hook = require("before-after-hook"); +var import_request = require("@octokit/request"); +var import_graphql = require("@octokit/graphql"); +var import_auth_token = require("@octokit/auth-token"); + +// pkg/dist-src/version.js +var VERSION = "5.2.0"; + +// pkg/dist-src/index.js +var noop = () => { +}; +var consoleWarn = console.warn.bind(console); +var consoleError = console.error.bind(console); +var userAgentTrail = `octokit-core.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`; +var Octokit = class { + static { + this.VERSION = VERSION; + } + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + super( + Object.assign( + {}, + defaults, + options, + options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null + ) + ); + } + }; + return OctokitWithDefaults; + } + static { + this.plugins = []; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin(...newPlugins) { + const currentPlugins = this.plugins; + const NewOctokit = class extends this { + static { + this.plugins = currentPlugins.concat( + newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) + ); + } + }; + return NewOctokit; + } + constructor(options = {}) { + const hook = new import_before_after_hook.Collection(); + const requestDefaults = { + baseUrl: import_request.request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; + requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + this.request = import_request.request.defaults(requestDefaults); + this.graphql = (0, import_graphql.withCustomRequest)(this.request).defaults(requestDefaults); + this.log = Object.assign( + { + debug: noop, + info: noop, + warn: consoleWarn, + error: consoleError + }, + options.log + ); + this.hook = hook; + if (!options.authStrategy) { + if (!options.auth) { + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + const auth = (0, import_auth_token.createTokenAuth)(options.auth); + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy( + Object.assign( + { + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions + }, + options.auth + ) + ); + hook.wrap("request", auth.hook); + this.auth = auth; + } + const classConstructor = this.constructor; + for (let i = 0; i < classConstructor.plugins.length; ++i) { + Object.assign(this, classConstructor.plugins[i](this, options)); + } + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + Octokit +}); diff --git a/node_modules/@octokit/core/dist-node/index.js.map b/node_modules/@octokit/core/dist-node/index.js.map new file mode 100644 index 000000000..0156d47c7 --- /dev/null +++ b/node_modules/@octokit/core/dist-node/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/index.js", "../dist-src/version.js"], + "sourcesContent": ["import { getUserAgent } from \"universal-user-agent\";\nimport { Collection } from \"before-after-hook\";\nimport { request } from \"@octokit/request\";\nimport { graphql, withCustomRequest } from \"@octokit/graphql\";\nimport { createTokenAuth } from \"@octokit/auth-token\";\nimport { VERSION } from \"./version.js\";\nconst noop = () => {\n};\nconst consoleWarn = console.warn.bind(console);\nconst consoleError = console.error.bind(console);\nconst userAgentTrail = `octokit-core.js/${VERSION} ${getUserAgent()}`;\nclass Octokit {\n static {\n this.VERSION = VERSION;\n }\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n super(\n Object.assign(\n {},\n defaults,\n options,\n options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null\n )\n );\n }\n };\n return OctokitWithDefaults;\n }\n static {\n this.plugins = [];\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n static plugin(...newPlugins) {\n const currentPlugins = this.plugins;\n const NewOctokit = class extends this {\n static {\n this.plugins = currentPlugins.concat(\n newPlugins.filter((plugin) => !currentPlugins.includes(plugin))\n );\n }\n };\n return NewOctokit;\n }\n constructor(options = {}) {\n const hook = new Collection();\n const requestDefaults = {\n baseUrl: request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n };\n requestDefaults.headers[\"user-agent\"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail;\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n this.request = request.defaults(requestDefaults);\n this.graphql = withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign(\n {\n debug: noop,\n info: noop,\n warn: consoleWarn,\n error: consoleError\n },\n options.log\n );\n this.hook = hook;\n if (!options.authStrategy) {\n if (!options.auth) {\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n const auth = createTokenAuth(options.auth);\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const { authStrategy, ...otherOptions } = options;\n const auth = authStrategy(\n Object.assign(\n {\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n },\n options.auth\n )\n );\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n const classConstructor = this.constructor;\n for (let i = 0; i < classConstructor.plugins.length; ++i) {\n Object.assign(this, classConstructor.plugins[i](this, options));\n }\n }\n}\nexport {\n Octokit\n};\n", "const VERSION = \"5.2.0\";\nexport {\n VERSION\n};\n"], + "mappings": "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", + "names": [] +} diff --git a/node_modules/@octokit/core/dist-src/index.js b/node_modules/@octokit/core/dist-src/index.js new file mode 100644 index 000000000..cbea61b9b --- /dev/null +++ b/node_modules/@octokit/core/dist-src/index.js @@ -0,0 +1,133 @@ +import { getUserAgent } from "universal-user-agent"; +import { Collection } from "before-after-hook"; +import { request } from "@octokit/request"; +import { graphql, withCustomRequest } from "@octokit/graphql"; +import { createTokenAuth } from "@octokit/auth-token"; +import { VERSION } from "./version.js"; +const noop = () => { +}; +const consoleWarn = console.warn.bind(console); +const consoleError = console.error.bind(console); +const userAgentTrail = `octokit-core.js/${VERSION} ${getUserAgent()}`; +class Octokit { + static { + this.VERSION = VERSION; + } + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + super( + Object.assign( + {}, + defaults, + options, + options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null + ) + ); + } + }; + return OctokitWithDefaults; + } + static { + this.plugins = []; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin(...newPlugins) { + const currentPlugins = this.plugins; + const NewOctokit = class extends this { + static { + this.plugins = currentPlugins.concat( + newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) + ); + } + }; + return NewOctokit; + } + constructor(options = {}) { + const hook = new Collection(); + const requestDefaults = { + baseUrl: request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; + requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + this.request = request.defaults(requestDefaults); + this.graphql = withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign( + { + debug: noop, + info: noop, + warn: consoleWarn, + error: consoleError + }, + options.log + ); + this.hook = hook; + if (!options.authStrategy) { + if (!options.auth) { + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + const auth = createTokenAuth(options.auth); + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy( + Object.assign( + { + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions + }, + options.auth + ) + ); + hook.wrap("request", auth.hook); + this.auth = auth; + } + const classConstructor = this.constructor; + for (let i = 0; i < classConstructor.plugins.length; ++i) { + Object.assign(this, classConstructor.plugins[i](this, options)); + } + } +} +export { + Octokit +}; diff --git a/node_modules/@octokit/core/dist-src/version.js b/node_modules/@octokit/core/dist-src/version.js new file mode 100644 index 000000000..efa20dbf7 --- /dev/null +++ b/node_modules/@octokit/core/dist-src/version.js @@ -0,0 +1,4 @@ +const VERSION = "5.2.0"; +export { + VERSION +}; diff --git a/node_modules/@octokit/core/dist-types/index.d.ts b/node_modules/@octokit/core/dist-types/index.d.ts new file mode 100644 index 000000000..1102b3b78 --- /dev/null +++ b/node_modules/@octokit/core/dist-types/index.d.ts @@ -0,0 +1,31 @@ +import type { HookCollection } from "before-after-hook"; +import { request } from "@octokit/request"; +import { graphql } from "@octokit/graphql"; +import type { Constructor, Hooks, OctokitOptions, OctokitPlugin, ReturnTypeOf, UnionToIntersection } from "./types.js"; +export type { OctokitOptions } from "./types.js"; +export declare class Octokit { + static VERSION: string; + static defaults>(this: S, defaults: OctokitOptions | Function): S; + static plugins: OctokitPlugin[]; + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin & { + plugins: any[]; + }, T extends OctokitPlugin[]>(this: S, ...newPlugins: T): S & Constructor>>; + constructor(options?: OctokitOptions); + request: typeof request; + graphql: typeof graphql; + log: { + debug: (message: string, additionalInfo?: object) => any; + info: (message: string, additionalInfo?: object) => any; + warn: (message: string, additionalInfo?: object) => any; + error: (message: string, additionalInfo?: object) => any; + [key: string]: any; + }; + hook: HookCollection; + auth: (...args: unknown[]) => Promise; +} diff --git a/node_modules/@octokit/core/dist-types/types.d.ts b/node_modules/@octokit/core/dist-types/types.d.ts new file mode 100644 index 000000000..3f8f09b42 --- /dev/null +++ b/node_modules/@octokit/core/dist-types/types.d.ts @@ -0,0 +1,44 @@ +import * as OctokitTypes from "@octokit/types"; +import { RequestError } from "@octokit/request-error"; +import type { Octokit } from "./index.js"; +export type RequestParameters = OctokitTypes.RequestParameters; +export interface OctokitOptions { + authStrategy?: any; + auth?: any; + userAgent?: string; + previews?: string[]; + baseUrl?: string; + log?: { + debug: (message: string) => unknown; + info: (message: string) => unknown; + warn: (message: string) => unknown; + error: (message: string) => unknown; + }; + request?: OctokitTypes.RequestRequestOptions; + timeZone?: string; + [option: string]: any; +} +export type Constructor = new (...args: any[]) => T; +export type ReturnTypeOf = T extends AnyFunction ? ReturnType : T extends AnyFunction[] ? UnionToIntersection, void>> : never; +/** + * @author https://stackoverflow.com/users/2887218/jcalz + * @see https://stackoverflow.com/a/50375286/10325032 + */ +export type UnionToIntersection = (Union extends any ? (argument: Union) => void : never) extends (argument: infer Intersection) => void ? Intersection : never; +type AnyFunction = (...args: any) => any; +export type OctokitPlugin = (octokit: Octokit, options: OctokitOptions) => { + [key: string]: any; +} | void; +export type Hooks = { + request: { + Options: Required; + Result: OctokitTypes.OctokitResponse; + Error: RequestError | Error; + }; + [key: string]: { + Options: unknown; + Result: unknown; + Error: unknown; + }; +}; +export {}; diff --git a/node_modules/@octokit/core/dist-types/version.d.ts b/node_modules/@octokit/core/dist-types/version.d.ts new file mode 100644 index 000000000..385f478d5 --- /dev/null +++ b/node_modules/@octokit/core/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "5.2.0"; diff --git a/node_modules/@octokit/core/dist-web/index.js b/node_modules/@octokit/core/dist-web/index.js new file mode 100644 index 000000000..b37249a2f --- /dev/null +++ b/node_modules/@octokit/core/dist-web/index.js @@ -0,0 +1,138 @@ +// pkg/dist-src/index.js +import { getUserAgent } from "universal-user-agent"; +import { Collection } from "before-after-hook"; +import { request } from "@octokit/request"; +import { graphql, withCustomRequest } from "@octokit/graphql"; +import { createTokenAuth } from "@octokit/auth-token"; + +// pkg/dist-src/version.js +var VERSION = "5.2.0"; + +// pkg/dist-src/index.js +var noop = () => { +}; +var consoleWarn = console.warn.bind(console); +var consoleError = console.error.bind(console); +var userAgentTrail = `octokit-core.js/${VERSION} ${getUserAgent()}`; +var Octokit = class { + static { + this.VERSION = VERSION; + } + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + super( + Object.assign( + {}, + defaults, + options, + options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null + ) + ); + } + }; + return OctokitWithDefaults; + } + static { + this.plugins = []; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin(...newPlugins) { + const currentPlugins = this.plugins; + const NewOctokit = class extends this { + static { + this.plugins = currentPlugins.concat( + newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) + ); + } + }; + return NewOctokit; + } + constructor(options = {}) { + const hook = new Collection(); + const requestDefaults = { + baseUrl: request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; + requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + this.request = request.defaults(requestDefaults); + this.graphql = withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign( + { + debug: noop, + info: noop, + warn: consoleWarn, + error: consoleError + }, + options.log + ); + this.hook = hook; + if (!options.authStrategy) { + if (!options.auth) { + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + const auth = createTokenAuth(options.auth); + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy( + Object.assign( + { + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions + }, + options.auth + ) + ); + hook.wrap("request", auth.hook); + this.auth = auth; + } + const classConstructor = this.constructor; + for (let i = 0; i < classConstructor.plugins.length; ++i) { + Object.assign(this, classConstructor.plugins[i](this, options)); + } + } +}; +export { + Octokit +}; diff --git a/node_modules/@octokit/core/dist-web/index.js.map b/node_modules/@octokit/core/dist-web/index.js.map new file mode 100644 index 000000000..27d44a9c5 --- /dev/null +++ b/node_modules/@octokit/core/dist-web/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/index.js", "../dist-src/version.js"], + "sourcesContent": ["import { getUserAgent } from \"universal-user-agent\";\nimport { Collection } from \"before-after-hook\";\nimport { request } from \"@octokit/request\";\nimport { graphql, withCustomRequest } from \"@octokit/graphql\";\nimport { createTokenAuth } from \"@octokit/auth-token\";\nimport { VERSION } from \"./version.js\";\nconst noop = () => {\n};\nconst consoleWarn = console.warn.bind(console);\nconst consoleError = console.error.bind(console);\nconst userAgentTrail = `octokit-core.js/${VERSION} ${getUserAgent()}`;\nclass Octokit {\n static {\n this.VERSION = VERSION;\n }\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n super(\n Object.assign(\n {},\n defaults,\n options,\n options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null\n )\n );\n }\n };\n return OctokitWithDefaults;\n }\n static {\n this.plugins = [];\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n static plugin(...newPlugins) {\n const currentPlugins = this.plugins;\n const NewOctokit = class extends this {\n static {\n this.plugins = currentPlugins.concat(\n newPlugins.filter((plugin) => !currentPlugins.includes(plugin))\n );\n }\n };\n return NewOctokit;\n }\n constructor(options = {}) {\n const hook = new Collection();\n const requestDefaults = {\n baseUrl: request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n };\n requestDefaults.headers[\"user-agent\"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail;\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n this.request = request.defaults(requestDefaults);\n this.graphql = withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign(\n {\n debug: noop,\n info: noop,\n warn: consoleWarn,\n error: consoleError\n },\n options.log\n );\n this.hook = hook;\n if (!options.authStrategy) {\n if (!options.auth) {\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n const auth = createTokenAuth(options.auth);\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const { authStrategy, ...otherOptions } = options;\n const auth = authStrategy(\n Object.assign(\n {\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n },\n options.auth\n )\n );\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n const classConstructor = this.constructor;\n for (let i = 0; i < classConstructor.plugins.length; ++i) {\n Object.assign(this, classConstructor.plugins[i](this, options));\n }\n }\n}\nexport {\n Octokit\n};\n", "const VERSION = \"5.2.0\";\nexport {\n VERSION\n};\n"], + "mappings": "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", + "names": [] +} diff --git a/node_modules/@octokit/core/package.json b/node_modules/@octokit/core/package.json new file mode 100644 index 000000000..522065616 --- /dev/null +++ b/node_modules/@octokit/core/package.json @@ -0,0 +1,64 @@ +{ + "name": "@octokit/core", + "version": "5.2.0", + "publishConfig": { + "access": "public", + "provenance": true + }, + "description": "Extendable client for GitHub's REST & GraphQL APIs", + "repository": "github:octokit/core.js", + "keywords": [ + "octokit", + "github", + "api", + "sdk", + "toolkit" + ], + "author": "Gregor Martynus (https://github.com/gr2m)", + "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "devDependencies": { + "@octokit/auth-action": "^4.1.0", + "@octokit/auth-app": "^6.0.0", + "@octokit/auth-oauth-app": "^7.1.0", + "@octokit/tsconfig": "^2.0.0", + "@sinonjs/fake-timers": "^11.2.2", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^29.0.0", + "@types/lolex": "^5.1.0", + "@types/node": "^20.0.0", + "@types/sinonjs__fake-timers": "^8.1.5", + "esbuild": "^0.19.0", + "fetch-mock": "npm:@gr2m/fetch-mock@9.11.0-pull-request-644.1", + "glob": "^10.2.5", + "http-proxy-agent": "^7.0.0", + "jest": "^29.0.0", + "prettier": "3.2.4", + "proxy": "^2.0.0", + "semantic-release": "^23.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^29.0.0", + "typescript": "^5.0.0", + "undici": "^6.0.0" + }, + "engines": { + "node": ">= 18" + }, + "files": [ + "dist-*/**", + "bin/**" + ], + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "types": "dist-types/index.d.ts", + "source": "dist-src/index.js", + "sideEffects": false +} diff --git a/node_modules/@octokit/endpoint/LICENSE b/node_modules/@octokit/endpoint/LICENSE new file mode 100644 index 000000000..af5366d0d --- /dev/null +++ b/node_modules/@octokit/endpoint/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Octokit contributors + +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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. diff --git a/node_modules/@octokit/endpoint/README.md b/node_modules/@octokit/endpoint/README.md new file mode 100644 index 000000000..07acbd104 --- /dev/null +++ b/node_modules/@octokit/endpoint/README.md @@ -0,0 +1,410 @@ +# endpoint.js + +> Turns GitHub REST API endpoints into generic request options + +[![@latest](https://img.shields.io/npm/v/@octokit/endpoint.svg)](https://www.npmjs.com/package/@octokit/endpoint) +[![Build Status](https://github.com/octokit/endpoint.js/workflows/Test/badge.svg)](https://github.com/octokit/endpoint.js/actions/workflows/test.yml?query=branch%3Amain) + +`@octokit/endpoint` combines [GitHub REST API routes](https://developer.github.com/v3/) with your parameters and turns them into generic request options that can be used in any request library. + + + + + +- [Usage](#usage) +- [API](#api) + - [`endpoint(route, options)` or `endpoint(options)`](#endpointroute-options-or-endpointoptions) + - [`endpoint.defaults()`](#endpointdefaults) + - [`endpoint.DEFAULTS`](#endpointdefaults) + - [`endpoint.merge(route, options)` or `endpoint.merge(options)`](#endpointmergeroute-options-or-endpointmergeoptions) + - [`endpoint.parse()`](#endpointparse) +- [Special cases](#special-cases) + - [The `data` parameter – set request body directly](#the-data-parameter-%E2%80%93-set-request-body-directly) + - [Set parameters for both the URL/query and the request body](#set-parameters-for-both-the-urlquery-and-the-request-body) +- [LICENSE](#license) + + + +## Usage + + + + + + +
+Browsers + +Load @octokit/endpoint directly from esm.sh + +```html + +``` + +
+Node + + +Install with npm install @octokit/endpoint + +```js +const { endpoint } = require("@octokit/endpoint"); +// or: import { endpoint } from "@octokit/endpoint"; +``` + +
+ +Example for [List organization repositories](https://developer.github.com/v3/repos/#list-organization-repositories) + +```js +const requestOptions = endpoint("GET /orgs/{org}/repos", { + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, + org: "octokit", + type: "private", +}); +``` + +The resulting `requestOptions` looks as follows + +```json +{ + "method": "GET", + "url": "https://api.github.com/orgs/octokit/repos?type=private", + "headers": { + "accept": "application/vnd.github.v3+json", + "authorization": "token 0000000000000000000000000000000000000001", + "user-agent": "octokit/endpoint.js v1.2.3" + } +} +``` + +You can pass `requestOptions` to common request libraries + +```js +const { url, ...options } = requestOptions; +// using with fetch (https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) +fetch(url, options); +// using with request (https://github.com/request/request) +request(requestOptions); +// using with got (https://github.com/sindresorhus/got) +got[options.method](url, options); +// using with axios +axios(requestOptions); +``` + +## API + +### `endpoint(route, options)` or `endpoint(options)` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ route + + String + + If set, it has to be a string consisting of URL and the request method, e.g., GET /orgs/{org}. If it’s set to a URL, only the method defaults to GET. +
+ options.method + + String + + Required unless route is set. Any supported http verb. Defaults to GET. +
+ options.url + + String + + Required unless route is set. A path or full URL which may contain :variable or {variable} placeholders, + e.g., /orgs/{org}/repos. The url is parsed using url-template. +
+ options.baseUrl + + String + + Defaults to https://api.github.com. +
+ options.headers + + Object + + Custom headers. Passed headers are merged with defaults:
+ headers['user-agent'] defaults to octokit-endpoint.js/1.2.3 (where 1.2.3 is the released version).
+ headers['accept'] defaults to application/vnd.github.v3+json.
+
+ options.mediaType.format + + String + + Media type param, such as raw, diff, or text+json. See Media Types. Setting options.mediaType.format will amend the headers.accept value. +
+ options.data + + Any + + Set request body directly instead of setting it to JSON based on additional parameters. See "The data parameter" below. +
+ options.request + + Object + + Pass custom meta information for the request. The request object will be returned as is. +
+ +All other options will be passed depending on the `method` and `url` options. + +1. If the option key has a placeholder in the `url`, it will be used as the replacement. For example, if the passed options are `{url: '/orgs/{org}/repos', org: 'foo'}` the returned `options.url` is `https://api.github.com/orgs/foo/repos`. +2. If the `method` is `GET` or `HEAD`, the option is passed as a query parameter. +3. Otherwise, the parameter is passed in the request body as a JSON key. + +**Result** + +`endpoint()` is a synchronous method and returns an object with the following keys: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ key + + type + + description +
methodStringThe http method. Always lowercase.
urlStringThe url with placeholders replaced with passed parameters.
headersObjectAll header names are lowercased.
bodyAnyThe request body if one is present. Only for PATCH, POST, PUT, DELETE requests.
requestObjectRequest meta option, it will be returned as it was passed into endpoint()
+ +### `endpoint.defaults()` + +Override or set default options. Example: + +```js +const request = require("request"); +const myEndpoint = require("@octokit/endpoint").defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + authorization: `token 0000000000000000000000000000000000000001`, + }, + org: "my-project", + per_page: 100, +}); + +request(myEndpoint(`GET /orgs/{org}/repos`)); +``` + +You can call `.defaults()` again on the returned method, the defaults will cascade. + +```js +const myProjectEndpoint = endpoint.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + }, + org: "my-project", +}); +const myProjectEndpointWithAuth = myProjectEndpoint.defaults({ + headers: { + authorization: `token 0000000000000000000000000000000000000001`, + }, +}); +``` + +`myProjectEndpointWithAuth` now defaults the `baseUrl`, `headers['user-agent']`, +`org` and `headers['authorization']` on top of `headers['accept']` that is set +by the global default. + +### `endpoint.DEFAULTS` + +The current default options. + +```js +endpoint.DEFAULTS.baseUrl; // https://api.github.com +const myEndpoint = endpoint.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", +}); +myEndpoint.DEFAULTS.baseUrl; // https://github-enterprise.acme-inc.com/api/v3 +``` + +### `endpoint.merge(route, options)` or `endpoint.merge(options)` + +Get the defaulted endpoint options, but without parsing them into request options: + +```js +const myProjectEndpoint = endpoint.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + }, + org: "my-project", +}); +myProjectEndpoint.merge("GET /orgs/{org}/repos", { + headers: { + authorization: `token 0000000000000000000000000000000000000001`, + }, + org: "my-secret-project", + type: "private", +}); + +// { +// baseUrl: 'https://github-enterprise.acme-inc.com/api/v3', +// method: 'GET', +// url: '/orgs/{org}/repos', +// headers: { +// accept: 'application/vnd.github.v3+json', +// authorization: `token 0000000000000000000000000000000000000001`, +// 'user-agent': 'myApp/1.2.3' +// }, +// org: 'my-secret-project', +// type: 'private' +// } +``` + +### `endpoint.parse()` + +Stateless method to turn endpoint options into request options. Calling +`endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`. + +## Special cases + +
+ +### The `data` parameter – set request body directly + +Some endpoints such as [Render a Markdown document in raw mode](https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode) don’t have parameters that are sent as request body keys, instead, the request body needs to be set directly. In these cases, set the `data` parameter. + +```js +const options = endpoint("POST /markdown/raw", { + data: "Hello world github/linguist#1 **cool**, and #1!", + headers: { + accept: "text/html;charset=utf-8", + "content-type": "text/plain", + }, +}); + +// options is +// { +// method: 'post', +// url: 'https://api.github.com/markdown/raw', +// headers: { +// accept: 'text/html;charset=utf-8', +// 'content-type': 'text/plain', +// 'user-agent': userAgent +// }, +// body: 'Hello world github/linguist#1 **cool**, and #1!' +// } +``` + +### Set parameters for both the URL/query and the request body + +There are API endpoints that accept both query parameters as well as a body. In that case, you need to add the query parameters as templates to `options.url`, as defined in the [RFC 6570 URI Template specification](https://tools.ietf.org/html/rfc6570). + +Example + +```js +endpoint( + "POST https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label}", + { + name: "example.zip", + label: "short description", + headers: { + "content-type": "text/plain", + "content-length": 14, + authorization: `token 0000000000000000000000000000000000000001`, + }, + data: "Hello, world!", + }, +); +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/node_modules/@octokit/endpoint/dist-node/index.js b/node_modules/@octokit/endpoint/dist-node/index.js new file mode 100644 index 000000000..3781daf05 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-node/index.js @@ -0,0 +1,378 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + endpoint: () => endpoint +}); +module.exports = __toCommonJS(dist_src_exports); + +// pkg/dist-src/defaults.js +var import_universal_user_agent = require("universal-user-agent"); + +// pkg/dist-src/version.js +var VERSION = "9.0.5"; + +// pkg/dist-src/defaults.js +var userAgent = `octokit-endpoint.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`; +var DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "" + } +}; + +// pkg/dist-src/util/lowercase-keys.js +function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +// pkg/dist-src/util/is-plain-object.js +function isPlainObject(value) { + if (typeof value !== "object" || value === null) + return false; + if (Object.prototype.toString.call(value) !== "[object Object]") + return false; + const proto = Object.getPrototypeOf(value); + if (proto === null) + return true; + const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); +} + +// pkg/dist-src/util/merge-deep.js +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach((key) => { + if (isPlainObject(options[key])) { + if (!(key in defaults)) + Object.assign(result, { [key]: options[key] }); + else + result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { [key]: options[key] }); + } + }); + return result; +} + +// pkg/dist-src/util/remove-undefined-properties.js +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === void 0) { + delete obj[key]; + } + } + return obj; +} + +// pkg/dist-src/merge.js +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { method, url } : { url: method }, options); + } else { + options = Object.assign({}, route); + } + options.headers = lowercaseKeys(options.headers); + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + if (options.url === "/graphql") { + if (defaults && defaults.mediaType.previews?.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( + (preview) => !mergedOptions.mediaType.previews.includes(preview) + ).concat(mergedOptions.mediaType.previews); + } + mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, "")); + } + return mergedOptions; +} + +// pkg/dist-src/util/add-query-parameters.js +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (names.length === 0) { + return url; + } + return url + separator + names.map((name) => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} + +// pkg/dist-src/util/extract-url-variable-names.js +var urlVariableRegex = /\{[^}]+\}/g; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + if (!matches) { + return []; + } + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} + +// pkg/dist-src/util/omit.js +function omit(object, keysToOmit) { + const result = { __proto__: null }; + for (const key of Object.keys(object)) { + if (keysToOmit.indexOf(key) === -1) { + result[key] = object[key]; + } + } + return result; +} + +// pkg/dist-src/util/url-template.js +function encodeReserved(str) { + return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + return part; + }).join(""); +} +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } +} +function isDefined(value) { + return value !== void 0 && value !== null; +} +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} +function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && value !== "") { + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push( + encodeValue(operator, value, isKeyOperator(operator) ? key : "") + ); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + result.push( + encodeValue(operator, value2, isKeyOperator(operator) ? key : "") + ); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + tmp.push(encodeValue(operator, value2)); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + return result; +} +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + template = template.replace( + /\{([^\{\}]+)\}|([^\{\}]+)/g, + function(_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function(variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + return (values.length !== 0 ? operator : "") + values.join(separator); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + } + ); + if (template === "/") { + return template; + } else { + return template.replace(/\/$/, ""); + } +} + +// pkg/dist-src/parse.js +function parse(options) { + let method = options.method.toUpperCase(); + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType" + ]); + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequest) { + if (options.mediaType.format) { + headers.accept = headers.accept.split(/,/).map( + (format) => format.replace( + /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, + `application/vnd$1$2.${options.mediaType.format}` + ) + ).join(","); + } + if (url.endsWith("/graphql")) { + if (options.mediaType.previews?.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } + } + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } + } + } + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + return Object.assign( + { method, url, headers }, + typeof body !== "undefined" ? { body } : null, + options.request ? { request: options.request } : null + ); +} + +// pkg/dist-src/endpoint-with-defaults.js +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +// pkg/dist-src/with-defaults.js +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS2 = merge(oldDefaults, newDefaults); + const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2); + return Object.assign(endpoint2, { + DEFAULTS: DEFAULTS2, + defaults: withDefaults.bind(null, DEFAULTS2), + merge: merge.bind(null, DEFAULTS2), + parse + }); +} + +// pkg/dist-src/index.js +var endpoint = withDefaults(null, DEFAULTS); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + endpoint +}); diff --git a/node_modules/@octokit/endpoint/dist-node/index.js.map b/node_modules/@octokit/endpoint/dist-node/index.js.map new file mode 100644 index 000000000..4c50b35a5 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-node/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/index.js", "../dist-src/defaults.js", "../dist-src/version.js", "../dist-src/util/lowercase-keys.js", "../dist-src/util/is-plain-object.js", "../dist-src/util/merge-deep.js", "../dist-src/util/remove-undefined-properties.js", "../dist-src/merge.js", "../dist-src/util/add-query-parameters.js", "../dist-src/util/extract-url-variable-names.js", "../dist-src/util/omit.js", "../dist-src/util/url-template.js", "../dist-src/parse.js", "../dist-src/endpoint-with-defaults.js", "../dist-src/with-defaults.js"], + "sourcesContent": ["import { withDefaults } from \"./with-defaults\";\nimport { DEFAULTS } from \"./defaults\";\nconst endpoint = withDefaults(null, DEFAULTS);\nexport {\n endpoint\n};\n", "import { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nconst userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\"\n }\n};\nexport {\n DEFAULTS\n};\n", "const VERSION = \"9.0.5\";\nexport {\n VERSION\n};\n", "function lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\nexport {\n lowercaseKeys\n};\n", "function isPlainObject(value) {\n if (typeof value !== \"object\" || value === null)\n return false;\n if (Object.prototype.toString.call(value) !== \"[object Object]\")\n return false;\n const proto = Object.getPrototypeOf(value);\n if (proto === null)\n return true;\n const Ctor = Object.prototype.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);\n}\nexport {\n isPlainObject\n};\n", "import { isPlainObject } from \"./is-plain-object\";\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach((key) => {\n if (isPlainObject(options[key])) {\n if (!(key in defaults))\n Object.assign(result, { [key]: options[key] });\n else\n result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, { [key]: options[key] });\n }\n });\n return result;\n}\nexport {\n mergeDeep\n};\n", "function removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === void 0) {\n delete obj[key];\n }\n }\n return obj;\n}\nexport {\n removeUndefinedProperties\n};\n", "import { lowercaseKeys } from \"./util/lowercase-keys\";\nimport { mergeDeep } from \"./util/merge-deep\";\nimport { removeUndefinedProperties } from \"./util/remove-undefined-properties\";\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? { method, url } : { url: method }, options);\n } else {\n options = Object.assign({}, route);\n }\n options.headers = lowercaseKeys(options.headers);\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options);\n if (options.url === \"/graphql\") {\n if (defaults && defaults.mediaType.previews?.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(\n (preview) => !mergedOptions.mediaType.previews.includes(preview)\n ).concat(mergedOptions.mediaType.previews);\n }\n mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, \"\"));\n }\n return mergedOptions;\n}\nexport {\n merge\n};\n", "function addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n if (names.length === 0) {\n return url;\n }\n return url + separator + names.map((name) => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\nexport {\n addQueryParameters\n};\n", "const urlVariableRegex = /\\{[^}]+\\}/g;\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n if (!matches) {\n return [];\n }\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\nexport {\n extractUrlVariableNames\n};\n", "function omit(object, keysToOmit) {\n const result = { __proto__: null };\n for (const key of Object.keys(object)) {\n if (keysToOmit.indexOf(key) === -1) {\n result[key] = object[key];\n }\n }\n return result;\n}\nexport {\n omit\n};\n", "function encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n return part;\n }).join(\"\");\n}\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\nfunction isDefined(value) {\n return value !== void 0 && value !== null;\n}\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n var value = context[key], result = [];\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n result.push(\n encodeValue(operator, value, isKeyOperator(operator) ? key : \"\")\n );\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function(value2) {\n result.push(\n encodeValue(operator, value2, isKeyOperator(operator) ? key : \"\")\n );\n });\n } else {\n Object.keys(value).forEach(function(k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function(value2) {\n tmp.push(encodeValue(operator, value2));\n });\n } else {\n Object.keys(value).forEach(function(k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n return result;\n}\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n template = template.replace(\n /\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g,\n function(_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n expression.split(/,/g).forEach(function(variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n if (operator && operator !== \"+\") {\n var separator = \",\";\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n }\n );\n if (template === \"/\") {\n return template;\n } else {\n return template.replace(/\\/$/, \"\");\n }\n}\nexport {\n parseUrl\n};\n", "import { addQueryParameters } from \"./util/add-query-parameters\";\nimport { extractUrlVariableNames } from \"./util/extract-url-variable-names\";\nimport { omit } from \"./util/omit\";\nimport { parseUrl } from \"./util/url-template\";\nfunction parse(options) {\n let method = options.method.toUpperCase();\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"mediaType\"\n ]);\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n headers.accept = headers.accept.split(/,/).map(\n (format) => format.replace(\n /application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/,\n `application/vnd$1$2.${options.mediaType.format}`\n )\n ).join(\",\");\n }\n if (url.endsWith(\"/graphql\")) {\n if (options.mediaType.previews?.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n }\n }\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n }\n }\n }\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n }\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n }\n return Object.assign(\n { method, url, headers },\n typeof body !== \"undefined\" ? { body } : null,\n options.request ? { request: options.request } : null\n );\n}\nexport {\n parse\n};\n", "import { DEFAULTS } from \"./defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\nexport {\n endpointWithDefaults\n};\n", "import { endpointWithDefaults } from \"./endpoint-with-defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\nexport {\n withDefaults\n};\n"], + "mappings": "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", + "names": ["DEFAULTS", "endpoint"] +} diff --git a/node_modules/@octokit/endpoint/dist-src/defaults.js b/node_modules/@octokit/endpoint/dist-src/defaults.js new file mode 100644 index 000000000..43d620c3d --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/defaults.js @@ -0,0 +1,17 @@ +import { getUserAgent } from "universal-user-agent"; +import { VERSION } from "./version"; +const userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "" + } +}; +export { + DEFAULTS +}; diff --git a/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js b/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js new file mode 100644 index 000000000..f3c4f4b27 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js @@ -0,0 +1,9 @@ +import { DEFAULTS } from "./defaults"; +import { merge } from "./merge"; +import { parse } from "./parse"; +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} +export { + endpointWithDefaults +}; diff --git a/node_modules/@octokit/endpoint/dist-src/index.js b/node_modules/@octokit/endpoint/dist-src/index.js new file mode 100644 index 000000000..b1d45e34d --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/index.js @@ -0,0 +1,6 @@ +import { withDefaults } from "./with-defaults"; +import { DEFAULTS } from "./defaults"; +const endpoint = withDefaults(null, DEFAULTS); +export { + endpoint +}; diff --git a/node_modules/@octokit/endpoint/dist-src/merge.js b/node_modules/@octokit/endpoint/dist-src/merge.js new file mode 100644 index 000000000..baf74698b --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/merge.js @@ -0,0 +1,27 @@ +import { lowercaseKeys } from "./util/lowercase-keys"; +import { mergeDeep } from "./util/merge-deep"; +import { removeUndefinedProperties } from "./util/remove-undefined-properties"; +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { method, url } : { url: method }, options); + } else { + options = Object.assign({}, route); + } + options.headers = lowercaseKeys(options.headers); + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + if (options.url === "/graphql") { + if (defaults && defaults.mediaType.previews?.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( + (preview) => !mergedOptions.mediaType.previews.includes(preview) + ).concat(mergedOptions.mediaType.previews); + } + mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, "")); + } + return mergedOptions; +} +export { + merge +}; diff --git a/node_modules/@octokit/endpoint/dist-src/parse.js b/node_modules/@octokit/endpoint/dist-src/parse.js new file mode 100644 index 000000000..2cbbe7cad --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/parse.js @@ -0,0 +1,70 @@ +import { addQueryParameters } from "./util/add-query-parameters"; +import { extractUrlVariableNames } from "./util/extract-url-variable-names"; +import { omit } from "./util/omit"; +import { parseUrl } from "./util/url-template"; +function parse(options) { + let method = options.method.toUpperCase(); + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType" + ]); + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequest) { + if (options.mediaType.format) { + headers.accept = headers.accept.split(/,/).map( + (format) => format.replace( + /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, + `application/vnd$1$2.${options.mediaType.format}` + ) + ).join(","); + } + if (url.endsWith("/graphql")) { + if (options.mediaType.previews?.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } + } + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } + } + } + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + return Object.assign( + { method, url, headers }, + typeof body !== "undefined" ? { body } : null, + options.request ? { request: options.request } : null + ); +} +export { + parse +}; diff --git a/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js b/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js new file mode 100644 index 000000000..6bdf7367c --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js @@ -0,0 +1,16 @@ +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (names.length === 0) { + return url; + } + return url + separator + names.map((name) => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} +export { + addQueryParameters +}; diff --git a/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js b/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js new file mode 100644 index 000000000..1d75bb913 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js @@ -0,0 +1,14 @@ +const urlVariableRegex = /\{[^}]+\}/g; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + if (!matches) { + return []; + } + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} +export { + extractUrlVariableNames +}; diff --git a/node_modules/@octokit/endpoint/dist-src/util/is-plain-object.js b/node_modules/@octokit/endpoint/dist-src/util/is-plain-object.js new file mode 100644 index 000000000..44b5eb2a6 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/is-plain-object.js @@ -0,0 +1,14 @@ +function isPlainObject(value) { + if (typeof value !== "object" || value === null) + return false; + if (Object.prototype.toString.call(value) !== "[object Object]") + return false; + const proto = Object.getPrototypeOf(value); + if (proto === null) + return true; + const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); +} +export { + isPlainObject +}; diff --git a/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js b/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js new file mode 100644 index 000000000..9bd7bb991 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js @@ -0,0 +1,12 @@ +function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} +export { + lowercaseKeys +}; diff --git a/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js b/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js new file mode 100644 index 000000000..c16544562 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js @@ -0,0 +1,18 @@ +import { isPlainObject } from "./is-plain-object"; +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach((key) => { + if (isPlainObject(options[key])) { + if (!(key in defaults)) + Object.assign(result, { [key]: options[key] }); + else + result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { [key]: options[key] }); + } + }); + return result; +} +export { + mergeDeep +}; diff --git a/node_modules/@octokit/endpoint/dist-src/util/omit.js b/node_modules/@octokit/endpoint/dist-src/util/omit.js new file mode 100644 index 000000000..aceffe25e --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/omit.js @@ -0,0 +1,12 @@ +function omit(object, keysToOmit) { + const result = { __proto__: null }; + for (const key of Object.keys(object)) { + if (keysToOmit.indexOf(key) === -1) { + result[key] = object[key]; + } + } + return result; +} +export { + omit +}; diff --git a/node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js b/node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js new file mode 100644 index 000000000..8653027c8 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js @@ -0,0 +1,11 @@ +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === void 0) { + delete obj[key]; + } + } + return obj; +} +export { + removeUndefinedProperties +}; diff --git a/node_modules/@octokit/endpoint/dist-src/util/url-template.js b/node_modules/@octokit/endpoint/dist-src/util/url-template.js new file mode 100644 index 000000000..f70aa5c73 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/url-template.js @@ -0,0 +1,133 @@ +function encodeReserved(str) { + return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + return part; + }).join(""); +} +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } +} +function isDefined(value) { + return value !== void 0 && value !== null; +} +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} +function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && value !== "") { + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push( + encodeValue(operator, value, isKeyOperator(operator) ? key : "") + ); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + result.push( + encodeValue(operator, value2, isKeyOperator(operator) ? key : "") + ); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + tmp.push(encodeValue(operator, value2)); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + return result; +} +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + template = template.replace( + /\{([^\{\}]+)\}|([^\{\}]+)/g, + function(_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function(variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + return (values.length !== 0 ? operator : "") + values.join(separator); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + } + ); + if (template === "/") { + return template; + } else { + return template.replace(/\/$/, ""); + } +} +export { + parseUrl +}; diff --git a/node_modules/@octokit/endpoint/dist-src/version.js b/node_modules/@octokit/endpoint/dist-src/version.js new file mode 100644 index 000000000..1233f42e1 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/version.js @@ -0,0 +1,4 @@ +const VERSION = "9.0.5"; +export { + VERSION +}; diff --git a/node_modules/@octokit/endpoint/dist-src/with-defaults.js b/node_modules/@octokit/endpoint/dist-src/with-defaults.js new file mode 100644 index 000000000..6d508f03c --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/with-defaults.js @@ -0,0 +1,16 @@ +import { endpointWithDefaults } from "./endpoint-with-defaults"; +import { merge } from "./merge"; +import { parse } from "./parse"; +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); +} +export { + withDefaults +}; diff --git a/node_modules/@octokit/endpoint/dist-types/defaults.d.ts b/node_modules/@octokit/endpoint/dist-types/defaults.d.ts new file mode 100644 index 000000000..d65e889bc --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/defaults.d.ts @@ -0,0 +1,2 @@ +import type { EndpointDefaults } from "@octokit/types"; +export declare const DEFAULTS: EndpointDefaults; diff --git a/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts b/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts new file mode 100644 index 000000000..c36732e97 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts @@ -0,0 +1,3 @@ +import type { EndpointOptions, RequestParameters, Route } from "@octokit/types"; +import { DEFAULTS } from "./defaults"; +export declare function endpointWithDefaults(defaults: typeof DEFAULTS, route: Route | EndpointOptions, options?: RequestParameters): import("@octokit/types").RequestOptions; diff --git a/node_modules/@octokit/endpoint/dist-types/index.d.ts b/node_modules/@octokit/endpoint/dist-types/index.d.ts new file mode 100644 index 000000000..1ede13667 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/index.d.ts @@ -0,0 +1 @@ +export declare const endpoint: import("@octokit/types").EndpointInterface; diff --git a/node_modules/@octokit/endpoint/dist-types/merge.d.ts b/node_modules/@octokit/endpoint/dist-types/merge.d.ts new file mode 100644 index 000000000..f58398120 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/merge.d.ts @@ -0,0 +1,2 @@ +import type { EndpointDefaults, RequestParameters, Route } from "@octokit/types"; +export declare function merge(defaults: EndpointDefaults | null, route?: Route | RequestParameters, options?: RequestParameters): EndpointDefaults; diff --git a/node_modules/@octokit/endpoint/dist-types/parse.d.ts b/node_modules/@octokit/endpoint/dist-types/parse.d.ts new file mode 100644 index 000000000..5d0927ae8 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/parse.d.ts @@ -0,0 +1,2 @@ +import type { EndpointDefaults, RequestOptions } from "@octokit/types"; +export declare function parse(options: EndpointDefaults): RequestOptions; diff --git a/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts b/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts new file mode 100644 index 000000000..4b192ac41 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts @@ -0,0 +1,4 @@ +export declare function addQueryParameters(url: string, parameters: { + [x: string]: string | undefined; + q?: string; +}): string; diff --git a/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts b/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts new file mode 100644 index 000000000..93586d4db --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts @@ -0,0 +1 @@ +export declare function extractUrlVariableNames(url: string): string[]; diff --git a/node_modules/@octokit/endpoint/dist-types/util/is-plain-object.d.ts b/node_modules/@octokit/endpoint/dist-types/util/is-plain-object.d.ts new file mode 100644 index 000000000..004fa4bf5 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/is-plain-object.d.ts @@ -0,0 +1 @@ +export declare function isPlainObject(value: unknown): value is Object; diff --git a/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts b/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts new file mode 100644 index 000000000..1daf30736 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts @@ -0,0 +1,5 @@ +export declare function lowercaseKeys(object?: { + [key: string]: any; +}): { + [key: string]: any; +}; diff --git a/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts b/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts new file mode 100644 index 000000000..914411cf9 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts @@ -0,0 +1 @@ +export declare function mergeDeep(defaults: any, options: any): object; diff --git a/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts b/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts new file mode 100644 index 000000000..06927d6bd --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts @@ -0,0 +1,5 @@ +export declare function omit(object: { + [key: string]: any; +}, keysToOmit: string[]): { + [key: string]: any; +}; diff --git a/node_modules/@octokit/endpoint/dist-types/util/remove-undefined-properties.d.ts b/node_modules/@octokit/endpoint/dist-types/util/remove-undefined-properties.d.ts new file mode 100644 index 000000000..92d8d8505 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/remove-undefined-properties.d.ts @@ -0,0 +1 @@ +export declare function removeUndefinedProperties(obj: any): any; diff --git a/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts b/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts new file mode 100644 index 000000000..5d967cab3 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts @@ -0,0 +1,3 @@ +export declare function parseUrl(template: string): { + expand: (context: object) => string; +}; diff --git a/node_modules/@octokit/endpoint/dist-types/version.d.ts b/node_modules/@octokit/endpoint/dist-types/version.d.ts new file mode 100644 index 000000000..1d2ef62ac --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "9.0.5"; diff --git a/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts b/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts new file mode 100644 index 000000000..e09354c56 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts @@ -0,0 +1,2 @@ +import type { EndpointInterface, RequestParameters, EndpointDefaults } from "@octokit/types"; +export declare function withDefaults(oldDefaults: EndpointDefaults | null, newDefaults: RequestParameters): EndpointInterface; diff --git a/node_modules/@octokit/endpoint/dist-web/index.js b/node_modules/@octokit/endpoint/dist-web/index.js new file mode 100644 index 000000000..cdb30984c --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-web/index.js @@ -0,0 +1,351 @@ +// pkg/dist-src/defaults.js +import { getUserAgent } from "universal-user-agent"; + +// pkg/dist-src/version.js +var VERSION = "9.0.5"; + +// pkg/dist-src/defaults.js +var userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; +var DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "" + } +}; + +// pkg/dist-src/util/lowercase-keys.js +function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +// pkg/dist-src/util/is-plain-object.js +function isPlainObject(value) { + if (typeof value !== "object" || value === null) + return false; + if (Object.prototype.toString.call(value) !== "[object Object]") + return false; + const proto = Object.getPrototypeOf(value); + if (proto === null) + return true; + const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); +} + +// pkg/dist-src/util/merge-deep.js +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach((key) => { + if (isPlainObject(options[key])) { + if (!(key in defaults)) + Object.assign(result, { [key]: options[key] }); + else + result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { [key]: options[key] }); + } + }); + return result; +} + +// pkg/dist-src/util/remove-undefined-properties.js +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === void 0) { + delete obj[key]; + } + } + return obj; +} + +// pkg/dist-src/merge.js +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { method, url } : { url: method }, options); + } else { + options = Object.assign({}, route); + } + options.headers = lowercaseKeys(options.headers); + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + if (options.url === "/graphql") { + if (defaults && defaults.mediaType.previews?.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( + (preview) => !mergedOptions.mediaType.previews.includes(preview) + ).concat(mergedOptions.mediaType.previews); + } + mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, "")); + } + return mergedOptions; +} + +// pkg/dist-src/util/add-query-parameters.js +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (names.length === 0) { + return url; + } + return url + separator + names.map((name) => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} + +// pkg/dist-src/util/extract-url-variable-names.js +var urlVariableRegex = /\{[^}]+\}/g; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + if (!matches) { + return []; + } + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} + +// pkg/dist-src/util/omit.js +function omit(object, keysToOmit) { + const result = { __proto__: null }; + for (const key of Object.keys(object)) { + if (keysToOmit.indexOf(key) === -1) { + result[key] = object[key]; + } + } + return result; +} + +// pkg/dist-src/util/url-template.js +function encodeReserved(str) { + return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + return part; + }).join(""); +} +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } +} +function isDefined(value) { + return value !== void 0 && value !== null; +} +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} +function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && value !== "") { + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push( + encodeValue(operator, value, isKeyOperator(operator) ? key : "") + ); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + result.push( + encodeValue(operator, value2, isKeyOperator(operator) ? key : "") + ); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + tmp.push(encodeValue(operator, value2)); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + return result; +} +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + template = template.replace( + /\{([^\{\}]+)\}|([^\{\}]+)/g, + function(_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function(variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + return (values.length !== 0 ? operator : "") + values.join(separator); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + } + ); + if (template === "/") { + return template; + } else { + return template.replace(/\/$/, ""); + } +} + +// pkg/dist-src/parse.js +function parse(options) { + let method = options.method.toUpperCase(); + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType" + ]); + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequest) { + if (options.mediaType.format) { + headers.accept = headers.accept.split(/,/).map( + (format) => format.replace( + /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, + `application/vnd$1$2.${options.mediaType.format}` + ) + ).join(","); + } + if (url.endsWith("/graphql")) { + if (options.mediaType.previews?.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } + } + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } + } + } + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + return Object.assign( + { method, url, headers }, + typeof body !== "undefined" ? { body } : null, + options.request ? { request: options.request } : null + ); +} + +// pkg/dist-src/endpoint-with-defaults.js +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +// pkg/dist-src/with-defaults.js +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS2 = merge(oldDefaults, newDefaults); + const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2); + return Object.assign(endpoint2, { + DEFAULTS: DEFAULTS2, + defaults: withDefaults.bind(null, DEFAULTS2), + merge: merge.bind(null, DEFAULTS2), + parse + }); +} + +// pkg/dist-src/index.js +var endpoint = withDefaults(null, DEFAULTS); +export { + endpoint +}; diff --git a/node_modules/@octokit/endpoint/dist-web/index.js.map b/node_modules/@octokit/endpoint/dist-web/index.js.map new file mode 100644 index 000000000..27483b42c --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-web/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/defaults.js", "../dist-src/version.js", "../dist-src/util/lowercase-keys.js", "../dist-src/util/is-plain-object.js", "../dist-src/util/merge-deep.js", "../dist-src/util/remove-undefined-properties.js", "../dist-src/merge.js", "../dist-src/util/add-query-parameters.js", "../dist-src/util/extract-url-variable-names.js", "../dist-src/util/omit.js", "../dist-src/util/url-template.js", "../dist-src/parse.js", "../dist-src/endpoint-with-defaults.js", "../dist-src/with-defaults.js", "../dist-src/index.js"], + "sourcesContent": ["import { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nconst userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\"\n }\n};\nexport {\n DEFAULTS\n};\n", "const VERSION = \"9.0.5\";\nexport {\n VERSION\n};\n", "function lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\nexport {\n lowercaseKeys\n};\n", "function isPlainObject(value) {\n if (typeof value !== \"object\" || value === null)\n return false;\n if (Object.prototype.toString.call(value) !== \"[object Object]\")\n return false;\n const proto = Object.getPrototypeOf(value);\n if (proto === null)\n return true;\n const Ctor = Object.prototype.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);\n}\nexport {\n isPlainObject\n};\n", "import { isPlainObject } from \"./is-plain-object\";\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach((key) => {\n if (isPlainObject(options[key])) {\n if (!(key in defaults))\n Object.assign(result, { [key]: options[key] });\n else\n result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, { [key]: options[key] });\n }\n });\n return result;\n}\nexport {\n mergeDeep\n};\n", "function removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === void 0) {\n delete obj[key];\n }\n }\n return obj;\n}\nexport {\n removeUndefinedProperties\n};\n", "import { lowercaseKeys } from \"./util/lowercase-keys\";\nimport { mergeDeep } from \"./util/merge-deep\";\nimport { removeUndefinedProperties } from \"./util/remove-undefined-properties\";\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? { method, url } : { url: method }, options);\n } else {\n options = Object.assign({}, route);\n }\n options.headers = lowercaseKeys(options.headers);\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options);\n if (options.url === \"/graphql\") {\n if (defaults && defaults.mediaType.previews?.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(\n (preview) => !mergedOptions.mediaType.previews.includes(preview)\n ).concat(mergedOptions.mediaType.previews);\n }\n mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, \"\"));\n }\n return mergedOptions;\n}\nexport {\n merge\n};\n", "function addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n if (names.length === 0) {\n return url;\n }\n return url + separator + names.map((name) => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\nexport {\n addQueryParameters\n};\n", "const urlVariableRegex = /\\{[^}]+\\}/g;\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n if (!matches) {\n return [];\n }\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\nexport {\n extractUrlVariableNames\n};\n", "function omit(object, keysToOmit) {\n const result = { __proto__: null };\n for (const key of Object.keys(object)) {\n if (keysToOmit.indexOf(key) === -1) {\n result[key] = object[key];\n }\n }\n return result;\n}\nexport {\n omit\n};\n", "function encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n return part;\n }).join(\"\");\n}\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\nfunction isDefined(value) {\n return value !== void 0 && value !== null;\n}\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n var value = context[key], result = [];\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n result.push(\n encodeValue(operator, value, isKeyOperator(operator) ? key : \"\")\n );\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function(value2) {\n result.push(\n encodeValue(operator, value2, isKeyOperator(operator) ? key : \"\")\n );\n });\n } else {\n Object.keys(value).forEach(function(k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function(value2) {\n tmp.push(encodeValue(operator, value2));\n });\n } else {\n Object.keys(value).forEach(function(k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n return result;\n}\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n template = template.replace(\n /\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g,\n function(_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n expression.split(/,/g).forEach(function(variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n if (operator && operator !== \"+\") {\n var separator = \",\";\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n }\n );\n if (template === \"/\") {\n return template;\n } else {\n return template.replace(/\\/$/, \"\");\n }\n}\nexport {\n parseUrl\n};\n", "import { addQueryParameters } from \"./util/add-query-parameters\";\nimport { extractUrlVariableNames } from \"./util/extract-url-variable-names\";\nimport { omit } from \"./util/omit\";\nimport { parseUrl } from \"./util/url-template\";\nfunction parse(options) {\n let method = options.method.toUpperCase();\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"mediaType\"\n ]);\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n headers.accept = headers.accept.split(/,/).map(\n (format) => format.replace(\n /application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/,\n `application/vnd$1$2.${options.mediaType.format}`\n )\n ).join(\",\");\n }\n if (url.endsWith(\"/graphql\")) {\n if (options.mediaType.previews?.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n }\n }\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n }\n }\n }\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n }\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n }\n return Object.assign(\n { method, url, headers },\n typeof body !== \"undefined\" ? { body } : null,\n options.request ? { request: options.request } : null\n );\n}\nexport {\n parse\n};\n", "import { DEFAULTS } from \"./defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\nexport {\n endpointWithDefaults\n};\n", "import { endpointWithDefaults } from \"./endpoint-with-defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\nexport {\n withDefaults\n};\n", "import { withDefaults } from \"./with-defaults\";\nimport { DEFAULTS } from \"./defaults\";\nconst endpoint = withDefaults(null, DEFAULTS);\nexport {\n endpoint\n};\n"], + "mappings": ";AAAA,SAAS,oBAAoB;;;ACA7B,IAAM,UAAU;;;ADEhB,IAAM,YAAY,uBAAuB,OAAO,IAAI,aAAa,CAAC;AAClE,IAAM,WAAW;AAAA,EACf,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,cAAc;AAAA,EAChB;AAAA,EACA,WAAW;AAAA,IACT,QAAQ;AAAA,EACV;AACF;;;AEbA,SAAS,cAAc,QAAQ;AAC7B,MAAI,CAAC,QAAQ;AACX,WAAO,CAAC;AAAA,EACV;AACA,SAAO,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,QAAQ,QAAQ;AACjD,WAAO,IAAI,YAAY,CAAC,IAAI,OAAO,GAAG;AACtC,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AACP;;;ACRA,SAAS,cAAc,OAAO;AAC5B,MAAI,OAAO,UAAU,YAAY,UAAU;AACzC,WAAO;AACT,MAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM;AAC5C,WAAO;AACT,QAAM,QAAQ,OAAO,eAAe,KAAK;AACzC,MAAI,UAAU;AACZ,WAAO;AACT,QAAM,OAAO,OAAO,UAAU,eAAe,KAAK,OAAO,aAAa,KAAK,MAAM;AACjF,SAAO,OAAO,SAAS,cAAc,gBAAgB,QAAQ,SAAS,UAAU,KAAK,IAAI,MAAM,SAAS,UAAU,KAAK,KAAK;AAC9H;;;ACTA,SAAS,UAAU,UAAU,SAAS;AACpC,QAAM,SAAS,OAAO,OAAO,CAAC,GAAG,QAAQ;AACzC,SAAO,KAAK,OAAO,EAAE,QAAQ,CAAC,QAAQ;AACpC,QAAI,cAAc,QAAQ,GAAG,CAAC,GAAG;AAC/B,UAAI,EAAE,OAAO;AACX,eAAO,OAAO,QAAQ,EAAE,CAAC,GAAG,GAAG,QAAQ,GAAG,EAAE,CAAC;AAAA;AAE7C,eAAO,GAAG,IAAI,UAAU,SAAS,GAAG,GAAG,QAAQ,GAAG,CAAC;AAAA,IACvD,OAAO;AACL,aAAO,OAAO,QAAQ,EAAE,CAAC,GAAG,GAAG,QAAQ,GAAG,EAAE,CAAC;AAAA,IAC/C;AAAA,EACF,CAAC;AACD,SAAO;AACT;;;ACdA,SAAS,0BAA0B,KAAK;AACtC,aAAW,OAAO,KAAK;AACrB,QAAI,IAAI,GAAG,MAAM,QAAQ;AACvB,aAAO,IAAI,GAAG;AAAA,IAChB;AAAA,EACF;AACA,SAAO;AACT;;;ACJA,SAAS,MAAM,UAAU,OAAO,SAAS;AACvC,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,MAAM,GAAG;AACnC,cAAU,OAAO,OAAO,MAAM,EAAE,QAAQ,IAAI,IAAI,EAAE,KAAK,OAAO,GAAG,OAAO;AAAA,EAC1E,OAAO;AACL,cAAU,OAAO,OAAO,CAAC,GAAG,KAAK;AAAA,EACnC;AACA,UAAQ,UAAU,cAAc,QAAQ,OAAO;AAC/C,4BAA0B,OAAO;AACjC,4BAA0B,QAAQ,OAAO;AACzC,QAAM,gBAAgB,UAAU,YAAY,CAAC,GAAG,OAAO;AACvD,MAAI,QAAQ,QAAQ,YAAY;AAC9B,QAAI,YAAY,SAAS,UAAU,UAAU,QAAQ;AACnD,oBAAc,UAAU,WAAW,SAAS,UAAU,SAAS;AAAA,QAC7D,CAAC,YAAY,CAAC,cAAc,UAAU,SAAS,SAAS,OAAO;AAAA,MACjE,EAAE,OAAO,cAAc,UAAU,QAAQ;AAAA,IAC3C;AACA,kBAAc,UAAU,YAAY,cAAc,UAAU,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,QAAQ,QAAQ,YAAY,EAAE,CAAC;AAAA,EAC9H;AACA,SAAO;AACT;;;ACvBA,SAAS,mBAAmB,KAAK,YAAY;AAC3C,QAAM,YAAY,KAAK,KAAK,GAAG,IAAI,MAAM;AACzC,QAAM,QAAQ,OAAO,KAAK,UAAU;AACpC,MAAI,MAAM,WAAW,GAAG;AACtB,WAAO;AAAA,EACT;AACA,SAAO,MAAM,YAAY,MAAM,IAAI,CAAC,SAAS;AAC3C,QAAI,SAAS,KAAK;AAChB,aAAO,OAAO,WAAW,EAAE,MAAM,GAAG,EAAE,IAAI,kBAAkB,EAAE,KAAK,GAAG;AAAA,IACxE;AACA,WAAO,GAAG,IAAI,IAAI,mBAAmB,WAAW,IAAI,CAAC,CAAC;AAAA,EACxD,CAAC,EAAE,KAAK,GAAG;AACb;;;ACZA,IAAM,mBAAmB;AACzB,SAAS,eAAe,cAAc;AACpC,SAAO,aAAa,QAAQ,cAAc,EAAE,EAAE,MAAM,GAAG;AACzD;AACA,SAAS,wBAAwB,KAAK;AACpC,QAAM,UAAU,IAAI,MAAM,gBAAgB;AAC1C,MAAI,CAAC,SAAS;AACZ,WAAO,CAAC;AAAA,EACV;AACA,SAAO,QAAQ,IAAI,cAAc,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AACrE;;;ACVA,SAAS,KAAK,QAAQ,YAAY;AAChC,QAAM,SAAS,EAAE,WAAW,KAAK;AACjC,aAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACrC,QAAI,WAAW,QAAQ,GAAG,MAAM,IAAI;AAClC,aAAO,GAAG,IAAI,OAAO,GAAG;AAAA,IAC1B;AAAA,EACF;AACA,SAAO;AACT;;;ACRA,SAAS,eAAe,KAAK;AAC3B,SAAO,IAAI,MAAM,oBAAoB,EAAE,IAAI,SAAS,MAAM;AACxD,QAAI,CAAC,eAAe,KAAK,IAAI,GAAG;AAC9B,aAAO,UAAU,IAAI,EAAE,QAAQ,QAAQ,GAAG,EAAE,QAAQ,QAAQ,GAAG;AAAA,IACjE;AACA,WAAO;AAAA,EACT,CAAC,EAAE,KAAK,EAAE;AACZ;AACA,SAAS,iBAAiB,KAAK;AAC7B,SAAO,mBAAmB,GAAG,EAAE,QAAQ,YAAY,SAAS,GAAG;AAC7D,WAAO,MAAM,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,YAAY;AAAA,EACxD,CAAC;AACH;AACA,SAAS,YAAY,UAAU,OAAO,KAAK;AACzC,UAAQ,aAAa,OAAO,aAAa,MAAM,eAAe,KAAK,IAAI,iBAAiB,KAAK;AAC7F,MAAI,KAAK;AACP,WAAO,iBAAiB,GAAG,IAAI,MAAM;AAAA,EACvC,OAAO;AACL,WAAO;AAAA,EACT;AACF;AACA,SAAS,UAAU,OAAO;AACxB,SAAO,UAAU,UAAU,UAAU;AACvC;AACA,SAAS,cAAc,UAAU;AAC/B,SAAO,aAAa,OAAO,aAAa,OAAO,aAAa;AAC9D;AACA,SAAS,UAAU,SAAS,UAAU,KAAK,UAAU;AACnD,MAAI,QAAQ,QAAQ,GAAG,GAAG,SAAS,CAAC;AACpC,MAAI,UAAU,KAAK,KAAK,UAAU,IAAI;AACpC,QAAI,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW;AACxF,cAAQ,MAAM,SAAS;AACvB,UAAI,YAAY,aAAa,KAAK;AAChC,gBAAQ,MAAM,UAAU,GAAG,SAAS,UAAU,EAAE,CAAC;AAAA,MACnD;AACA,aAAO;AAAA,QACL,YAAY,UAAU,OAAO,cAAc,QAAQ,IAAI,MAAM,EAAE;AAAA,MACjE;AAAA,IACF,OAAO;AACL,UAAI,aAAa,KAAK;AACpB,YAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,gBAAM,OAAO,SAAS,EAAE,QAAQ,SAAS,QAAQ;AAC/C,mBAAO;AAAA,cACL,YAAY,UAAU,QAAQ,cAAc,QAAQ,IAAI,MAAM,EAAE;AAAA,YAClE;AAAA,UACF,CAAC;AAAA,QACH,OAAO;AACL,iBAAO,KAAK,KAAK,EAAE,QAAQ,SAAS,GAAG;AACrC,gBAAI,UAAU,MAAM,CAAC,CAAC,GAAG;AACvB,qBAAO,KAAK,YAAY,UAAU,MAAM,CAAC,GAAG,CAAC,CAAC;AAAA,YAChD;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,OAAO;AACL,cAAM,MAAM,CAAC;AACb,YAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,gBAAM,OAAO,SAAS,EAAE,QAAQ,SAAS,QAAQ;AAC/C,gBAAI,KAAK,YAAY,UAAU,MAAM,CAAC;AAAA,UACxC,CAAC;AAAA,QACH,OAAO;AACL,iBAAO,KAAK,KAAK,EAAE,QAAQ,SAAS,GAAG;AACrC,gBAAI,UAAU,MAAM,CAAC,CAAC,GAAG;AACvB,kBAAI,KAAK,iBAAiB,CAAC,CAAC;AAC5B,kBAAI,KAAK,YAAY,UAAU,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;AAAA,YACrD;AAAA,UACF,CAAC;AAAA,QACH;AACA,YAAI,cAAc,QAAQ,GAAG;AAC3B,iBAAO,KAAK,iBAAiB,GAAG,IAAI,MAAM,IAAI,KAAK,GAAG,CAAC;AAAA,QACzD,WAAW,IAAI,WAAW,GAAG;AAC3B,iBAAO,KAAK,IAAI,KAAK,GAAG,CAAC;AAAA,QAC3B;AAAA,MACF;AAAA,IACF;AAAA,EACF,OAAO;AACL,QAAI,aAAa,KAAK;AACpB,UAAI,UAAU,KAAK,GAAG;AACpB,eAAO,KAAK,iBAAiB,GAAG,CAAC;AAAA,MACnC;AAAA,IACF,WAAW,UAAU,OAAO,aAAa,OAAO,aAAa,MAAM;AACjE,aAAO,KAAK,iBAAiB,GAAG,IAAI,GAAG;AAAA,IACzC,WAAW,UAAU,IAAI;AACvB,aAAO,KAAK,EAAE;AAAA,IAChB;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,SAAS,UAAU;AAC1B,SAAO;AAAA,IACL,QAAQ,OAAO,KAAK,MAAM,QAAQ;AAAA,EACpC;AACF;AACA,SAAS,OAAO,UAAU,SAAS;AACjC,MAAI,YAAY,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAClD,aAAW,SAAS;AAAA,IAClB;AAAA,IACA,SAAS,GAAG,YAAY,SAAS;AAC/B,UAAI,YAAY;AACd,YAAI,WAAW;AACf,cAAM,SAAS,CAAC;AAChB,YAAI,UAAU,QAAQ,WAAW,OAAO,CAAC,CAAC,MAAM,IAAI;AAClD,qBAAW,WAAW,OAAO,CAAC;AAC9B,uBAAa,WAAW,OAAO,CAAC;AAAA,QAClC;AACA,mBAAW,MAAM,IAAI,EAAE,QAAQ,SAAS,UAAU;AAChD,cAAI,MAAM,4BAA4B,KAAK,QAAQ;AACnD,iBAAO,KAAK,UAAU,SAAS,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AAAA,QACpE,CAAC;AACD,YAAI,YAAY,aAAa,KAAK;AAChC,cAAI,YAAY;AAChB,cAAI,aAAa,KAAK;AACpB,wBAAY;AAAA,UACd,WAAW,aAAa,KAAK;AAC3B,wBAAY;AAAA,UACd;AACA,kBAAQ,OAAO,WAAW,IAAI,WAAW,MAAM,OAAO,KAAK,SAAS;AAAA,QACtE,OAAO;AACL,iBAAO,OAAO,KAAK,GAAG;AAAA,QACxB;AAAA,MACF,OAAO;AACL,eAAO,eAAe,OAAO;AAAA,MAC/B;AAAA,IACF;AAAA,EACF;AACA,MAAI,aAAa,KAAK;AACpB,WAAO;AAAA,EACT,OAAO;AACL,WAAO,SAAS,QAAQ,OAAO,EAAE;AAAA,EACnC;AACF;;;AC7HA,SAAS,MAAM,SAAS;AACtB,MAAI,SAAS,QAAQ,OAAO,YAAY;AACxC,MAAI,OAAO,QAAQ,OAAO,KAAK,QAAQ,gBAAgB,MAAM;AAC7D,MAAI,UAAU,OAAO,OAAO,CAAC,GAAG,QAAQ,OAAO;AAC/C,MAAI;AACJ,MAAI,aAAa,KAAK,SAAS;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,mBAAmB,wBAAwB,GAAG;AACpD,QAAM,SAAS,GAAG,EAAE,OAAO,UAAU;AACrC,MAAI,CAAC,QAAQ,KAAK,GAAG,GAAG;AACtB,UAAM,QAAQ,UAAU;AAAA,EAC1B;AACA,QAAM,oBAAoB,OAAO,KAAK,OAAO,EAAE,OAAO,CAAC,WAAW,iBAAiB,SAAS,MAAM,CAAC,EAAE,OAAO,SAAS;AACrH,QAAM,sBAAsB,KAAK,YAAY,iBAAiB;AAC9D,QAAM,kBAAkB,6BAA6B,KAAK,QAAQ,MAAM;AACxE,MAAI,CAAC,iBAAiB;AACpB,QAAI,QAAQ,UAAU,QAAQ;AAC5B,cAAQ,SAAS,QAAQ,OAAO,MAAM,GAAG,EAAE;AAAA,QACzC,CAAC,WAAW,OAAO;AAAA,UACjB;AAAA,UACA,uBAAuB,QAAQ,UAAU,MAAM;AAAA,QACjD;AAAA,MACF,EAAE,KAAK,GAAG;AAAA,IACZ;AACA,QAAI,IAAI,SAAS,UAAU,GAAG;AAC5B,UAAI,QAAQ,UAAU,UAAU,QAAQ;AACtC,cAAM,2BAA2B,QAAQ,OAAO,MAAM,qBAAqB,KAAK,CAAC;AACjF,gBAAQ,SAAS,yBAAyB,OAAO,QAAQ,UAAU,QAAQ,EAAE,IAAI,CAAC,YAAY;AAC5F,gBAAM,SAAS,QAAQ,UAAU,SAAS,IAAI,QAAQ,UAAU,MAAM,KAAK;AAC3E,iBAAO,0BAA0B,OAAO,WAAW,MAAM;AAAA,QAC3D,CAAC,EAAE,KAAK,GAAG;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,OAAO,MAAM,EAAE,SAAS,MAAM,GAAG;AACpC,UAAM,mBAAmB,KAAK,mBAAmB;AAAA,EACnD,OAAO;AACL,QAAI,UAAU,qBAAqB;AACjC,aAAO,oBAAoB;AAAA,IAC7B,OAAO;AACL,UAAI,OAAO,KAAK,mBAAmB,EAAE,QAAQ;AAC3C,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,QAAQ,cAAc,KAAK,OAAO,SAAS,aAAa;AAC3D,YAAQ,cAAc,IAAI;AAAA,EAC5B;AACA,MAAI,CAAC,SAAS,KAAK,EAAE,SAAS,MAAM,KAAK,OAAO,SAAS,aAAa;AACpE,WAAO;AAAA,EACT;AACA,SAAO,OAAO;AAAA,IACZ,EAAE,QAAQ,KAAK,QAAQ;AAAA,IACvB,OAAO,SAAS,cAAc,EAAE,KAAK,IAAI;AAAA,IACzC,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAQ,IAAI;AAAA,EACnD;AACF;;;AC/DA,SAAS,qBAAqB,UAAU,OAAO,SAAS;AACtD,SAAO,MAAM,MAAM,UAAU,OAAO,OAAO,CAAC;AAC9C;;;ACFA,SAAS,aAAa,aAAa,aAAa;AAC9C,QAAMA,YAAW,MAAM,aAAa,WAAW;AAC/C,QAAMC,YAAW,qBAAqB,KAAK,MAAMD,SAAQ;AACzD,SAAO,OAAO,OAAOC,WAAU;AAAA,IAC7B,UAAAD;AAAA,IACA,UAAU,aAAa,KAAK,MAAMA,SAAQ;AAAA,IAC1C,OAAO,MAAM,KAAK,MAAMA,SAAQ;AAAA,IAChC;AAAA,EACF,CAAC;AACH;;;ACVA,IAAM,WAAW,aAAa,MAAM,QAAQ;", + "names": ["DEFAULTS", "endpoint"] +} diff --git a/node_modules/@octokit/endpoint/package.json b/node_modules/@octokit/endpoint/package.json new file mode 100644 index 000000000..66bc3fd26 --- /dev/null +++ b/node_modules/@octokit/endpoint/package.json @@ -0,0 +1,45 @@ +{ + "name": "@octokit/endpoint", + "version": "9.0.5", + "publishConfig": { + "access": "public" + }, + "description": "Turns REST API endpoints into generic request options", + "repository": "github:octokit/endpoint.js", + "keywords": [ + "octokit", + "github", + "api", + "rest" + ], + "author": "Gregor Martynus (https://github.com/gr2m)", + "license": "MIT", + "devDependencies": { + "@octokit/tsconfig": "^2.0.0", + "@types/jest": "^29.0.0", + "esbuild": "^0.19.0", + "glob": "^10.2.7", + "jest": "^29.0.0", + "prettier": "3.1.0", + "semantic-release": "^22.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^29.0.0", + "typescript": "^5.0.0" + }, + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + }, + "files": [ + "dist-*/**", + "bin/**" + ], + "main": "dist-node/index.js", + "browser": "dist-web/index.js", + "types": "dist-types/index.d.ts", + "module": "dist-src/index.js", + "sideEffects": false +} diff --git a/node_modules/@octokit/graphql/LICENSE b/node_modules/@octokit/graphql/LICENSE new file mode 100644 index 000000000..af5366d0d --- /dev/null +++ b/node_modules/@octokit/graphql/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Octokit contributors + +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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. diff --git a/node_modules/@octokit/graphql/README.md b/node_modules/@octokit/graphql/README.md new file mode 100644 index 000000000..58b3b10de --- /dev/null +++ b/node_modules/@octokit/graphql/README.md @@ -0,0 +1,409 @@ +# graphql.js + +> GitHub GraphQL API client for browsers and Node + +[![@latest](https://img.shields.io/npm/v/@octokit/graphql.svg)](https://www.npmjs.com/package/@octokit/graphql) +[![Build Status](https://github.com/octokit/graphql.js/workflows/Test/badge.svg)](https://github.com/octokit/graphql.js/actions?query=workflow%3ATest+branch%3Amain) + + + +- [Usage](#usage) + - [Send a simple query](#send-a-simple-query) + - [Authentication](#authentication) + - [Variables](#variables) + - [Pass query together with headers and variables](#pass-query-together-with-headers-and-variables) + - [Use with GitHub Enterprise](#use-with-github-enterprise) + - [Use custom `@octokit/request` instance](#use-custom-octokitrequest-instance) +- [TypeScript](#typescript) + - [Additional Types](#additional-types) +- [Errors](#errors) +- [Partial responses](#partial-responses) +- [Writing tests](#writing-tests) +- [License](#license) + + + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/graphql` directly from [esm.sh](https://esm.sh) + +```html + +``` + +
+Node + + +Install with npm install @octokit/graphql + +```js +const { graphql } = require("@octokit/graphql"); +// or: import { graphql } from "@octokit/graphql"; +``` + +
+ +### Send a simple query + +```js +const { repository } = await graphql( + ` + { + repository(owner: "octokit", name: "graphql.js") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } + `, + { + headers: { + authorization: `token secret123`, + }, + }, +); +``` + +### Authentication + +The simplest way to authenticate a request is to set the `Authorization` header, e.g. to a [personal access token](https://github.com/settings/tokens/). + +```js +const graphqlWithAuth = graphql.defaults({ + headers: { + authorization: `token secret123`, + }, +}); +const { repository } = await graphqlWithAuth(` + { + repository(owner: "octokit", name: "graphql.js") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } +`); +``` + +For more complex authentication strategies such as GitHub Apps or Basic, we recommend the according authentication library exported by [`@octokit/auth`](https://github.com/octokit/auth.js). + +```js +const { createAppAuth } = require("@octokit/auth-app"); +const auth = createAppAuth({ + appId: process.env.APP_ID, + privateKey: process.env.PRIVATE_KEY, + installationId: 123, +}); +const graphqlWithAuth = graphql.defaults({ + request: { + hook: auth.hook, + }, +}); + +const { repository } = await graphqlWithAuth( + `{ + repository(owner: "octokit", name: "graphql.js") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + }`, +); +``` + +### Variables + +⚠️ Do not use [template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) in the query strings as they make your code vulnerable to query injection attacks (see [#2](https://github.com/octokit/graphql.js/issues/2)). Use variables instead: + +```js +const { lastIssues } = await graphql( + ` + query lastIssues($owner: String!, $repo: String!, $num: Int = 3) { + repository(owner: $owner, name: $repo) { + issues(last: $num) { + edges { + node { + title + } + } + } + } + } + `, + { + owner: "octokit", + repo: "graphql.js", + headers: { + authorization: `token secret123`, + }, + }, +); +``` + +### Pass query together with headers and variables + +```js +const { graphql } = require("@octokit/graphql"); +const { lastIssues } = await graphql({ + query: `query lastIssues($owner: String!, $repo: String!, $num: Int = 3) { + repository(owner:$owner, name:$repo) { + issues(last:$num) { + edges { + node { + title + } + } + } + } + }`, + owner: "octokit", + repo: "graphql.js", + headers: { + authorization: `token secret123`, + }, +}); +``` + +### Use with GitHub Enterprise + +```js +let { graphql } = require("@octokit/graphql"); +graphql = graphql.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api", + headers: { + authorization: `token secret123`, + }, +}); +const { repository } = await graphql(` + { + repository(owner: "acme-project", name: "acme-repo") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } +`); +``` + +### Use custom `@octokit/request` instance + +```js +const { request } = require("@octokit/request"); +const { withCustomRequest } = require("@octokit/graphql"); + +let requestCounter = 0; +const myRequest = request.defaults({ + headers: { + authorization: "bearer secret123", + }, + request: { + hook(request, options) { + requestCounter++; + return request(options); + }, + }, +}); +const myGraphql = withCustomRequest(myRequest); +await request("/"); +await myGraphql(` + { + repository(owner: "acme-project", name: "acme-repo") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } +`); +// requestCounter is now 2 +``` + +## TypeScript + +`@octokit/graphql` is exposing proper types for its usage with TypeScript projects. + +### Additional Types + +Additionally, `GraphQlQueryResponseData` has been exposed to users: + +```ts +import type { GraphQlQueryResponseData } from "@octokit/graphql"; +``` + +## Errors + +In case of a GraphQL error, `error.message` is set to a combined message describing all errors returned by the endpoint. +All errors can be accessed at `error.errors`. `error.request` has the request options such as query, variables and headers set for easier debugging. + +```js +let { graphql, GraphqlResponseError } = require("@octokit/graphql"); +graphql = graphql.defaults({ + headers: { + authorization: `token secret123`, + }, +}); +const query = `{ + viewer { + bioHtml + } +}`; + +try { + const result = await graphql(query); +} catch (error) { + if (error instanceof GraphqlResponseError) { + // do something with the error, allowing you to detect a graphql response error, + // compared to accidentally catching unrelated errors. + + // server responds with an object like the following (as an example) + // class GraphqlResponseError { + // "headers": { + // "status": "403", + // }, + // "data": null, + // "errors": [{ + // "message": "Field 'bioHtml' doesn't exist on type 'User'", + // "locations": [{ + // "line": 3, + // "column": 5 + // }] + // }] + // } + + console.log("Request failed:", error.request); // { query, variables: {}, headers: { authorization: 'token secret123' } } + console.log(error.message); // Field 'bioHtml' doesn't exist on type 'User' + } else { + // handle non-GraphQL error + } +} +``` + +## Partial responses + +A GraphQL query may respond with partial data accompanied by errors. In this case we will throw an error but the partial data will still be accessible through `error.data` + +```js +let { graphql } = require("@octokit/graphql"); +graphql = graphql.defaults({ + headers: { + authorization: `token secret123`, + }, +}); +const query = `{ + repository(name: "probot", owner: "probot") { + name + ref(qualifiedName: "master") { + target { + ... on Commit { + history(first: 25, after: "invalid cursor") { + nodes { + message + } + } + } + } + } + } +}`; + +try { + const result = await graphql(query); +} catch (error) { + // server responds with + // { + // "data": { + // "repository": { + // "name": "probot", + // "ref": null + // } + // }, + // "errors": [ + // { + // "type": "INVALID_CURSOR_ARGUMENTS", + // "path": [ + // "repository", + // "ref", + // "target", + // "history" + // ], + // "locations": [ + // { + // "line": 7, + // "column": 11 + // } + // ], + // "message": "`invalid cursor` does not appear to be a valid cursor." + // } + // ] + // } + + console.log("Request failed:", error.request); // { query, variables: {}, headers: { authorization: 'token secret123' } } + console.log(error.message); // `invalid cursor` does not appear to be a valid cursor. + console.log(error.data); // { repository: { name: 'probot', ref: null } } +} +``` + +## Writing tests + +You can pass a replacement for [the built-in fetch implementation](https://github.com/bitinn/node-fetch) as `request.fetch` option. For example, using [fetch-mock](http://www.wheresrhys.co.uk/fetch-mock/) works great to write tests + +```js +const assert = require("assert"); +const fetchMock = require("fetch-mock/es5/server"); + +const { graphql } = require("@octokit/graphql"); + +graphql("{ viewer { login } }", { + headers: { + authorization: "token secret123", + }, + request: { + fetch: fetchMock + .sandbox() + .post("https://api.github.com/graphql", (url, options) => { + assert.strictEqual(options.headers.authorization, "token secret123"); + assert.strictEqual( + options.body, + '{"query":"{ viewer { login } }"}', + "Sends correct query", + ); + return { data: {} }; + }), + }, +}); +``` + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/graphql/dist-node/index.js b/node_modules/@octokit/graphql/dist-node/index.js new file mode 100644 index 000000000..3e9cbb619 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-node/index.js @@ -0,0 +1,154 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + GraphqlResponseError: () => GraphqlResponseError, + graphql: () => graphql2, + withCustomRequest: () => withCustomRequest +}); +module.exports = __toCommonJS(dist_src_exports); +var import_request3 = require("@octokit/request"); +var import_universal_user_agent = require("universal-user-agent"); + +// pkg/dist-src/version.js +var VERSION = "7.1.0"; + +// pkg/dist-src/with-defaults.js +var import_request2 = require("@octokit/request"); + +// pkg/dist-src/graphql.js +var import_request = require("@octokit/request"); + +// pkg/dist-src/error.js +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors: +` + data.errors.map((e) => ` - ${e.message}`).join("\n"); +} +var GraphqlResponseError = class extends Error { + constructor(request2, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request2; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; + this.errors = response.errors; + this.data = response.data; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } +}; + +// pkg/dist-src/graphql.js +var NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType" +]; +var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request2, query, options) { + if (options) { + if (typeof query === "string" && "query" in options) { + return Promise.reject( + new Error(`[@octokit/graphql] "query" cannot be used as variable name`) + ); + } + for (const key in options) { + if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) + continue; + return Promise.reject( + new Error( + `[@octokit/graphql] "${key}" cannot be used as variable name` + ) + ); + } + } + const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; + const requestOptions = Object.keys( + parsedOptions + ).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = parsedOptions[key]; + return result; + }, {}); + const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl; + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + return request2(requestOptions).then((response) => { + if (response.data.errors) { + const headers = {}; + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + throw new GraphqlResponseError( + requestOptions, + headers, + response.data + ); + } + return response.data.data; + }); +} + +// pkg/dist-src/with-defaults.js +function withDefaults(request2, newDefaults) { + const newRequest = request2.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: newRequest.endpoint + }); +} + +// pkg/dist-src/index.js +var graphql2 = withDefaults(import_request3.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}` + }, + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + GraphqlResponseError, + graphql, + withCustomRequest +}); diff --git a/node_modules/@octokit/graphql/dist-node/index.js.map b/node_modules/@octokit/graphql/dist-node/index.js.map new file mode 100644 index 000000000..6828a1e28 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-node/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/index.js", "../dist-src/version.js", "../dist-src/with-defaults.js", "../dist-src/graphql.js", "../dist-src/error.js"], + "sourcesContent": ["import { request } from \"@octokit/request\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport { withDefaults } from \"./with-defaults\";\nconst graphql = withDefaults(request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nimport { GraphqlResponseError } from \"./error\";\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\nexport {\n GraphqlResponseError,\n graphql,\n withCustomRequest\n};\n", "const VERSION = \"7.1.0\";\nexport {\n VERSION\n};\n", "import { request as Request } from \"@octokit/request\";\nimport { graphql } from \"./graphql\";\nfunction withDefaults(request, newDefaults) {\n const newRequest = request.defaults(newDefaults);\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: newRequest.endpoint\n });\n}\nexport {\n withDefaults\n};\n", "import { request as Request } from \"@octokit/request\";\nimport { GraphqlResponseError } from \"./error\";\nconst NON_VARIABLE_OPTIONS = [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"query\",\n \"mediaType\"\n];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(\n new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`)\n );\n }\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key))\n continue;\n return Promise.reject(\n new Error(\n `[@octokit/graphql] \"${key}\" cannot be used as variable name`\n )\n );\n }\n }\n const parsedOptions = typeof query === \"string\" ? Object.assign({ query }, options) : query;\n const requestOptions = Object.keys(\n parsedOptions\n ).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n if (!result.variables) {\n result.variables = {};\n }\n result.variables[key] = parsedOptions[key];\n return result;\n }, {});\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n return request(requestOptions).then((response) => {\n if (response.data.errors) {\n const headers = {};\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n throw new GraphqlResponseError(\n requestOptions,\n headers,\n response.data\n );\n }\n return response.data.data;\n });\n}\nexport {\n graphql\n};\n", "function _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\n` + data.errors.map((e) => ` - ${e.message}`).join(\"\\n\");\n}\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\";\n this.errors = response.errors;\n this.data = response.data;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\nexport {\n GraphqlResponseError\n};\n"], + "mappings": "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", + "names": ["graphql", "import_request", "import_request", "request", "request", "request", "graphql"] +} diff --git a/node_modules/@octokit/graphql/dist-src/error.js b/node_modules/@octokit/graphql/dist-src/error.js new file mode 100644 index 000000000..dd0f4e699 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/error.js @@ -0,0 +1,21 @@ +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors: +` + data.errors.map((e) => ` - ${e.message}`).join("\n"); +} +class GraphqlResponseError extends Error { + constructor(request, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; + this.errors = response.errors; + this.data = response.data; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } +} +export { + GraphqlResponseError +}; diff --git a/node_modules/@octokit/graphql/dist-src/graphql.js b/node_modules/@octokit/graphql/dist-src/graphql.js new file mode 100644 index 000000000..fda0c5f83 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/graphql.js @@ -0,0 +1,66 @@ +import { request as Request } from "@octokit/request"; +import { GraphqlResponseError } from "./error"; +const NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType" +]; +const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request, query, options) { + if (options) { + if (typeof query === "string" && "query" in options) { + return Promise.reject( + new Error(`[@octokit/graphql] "query" cannot be used as variable name`) + ); + } + for (const key in options) { + if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) + continue; + return Promise.reject( + new Error( + `[@octokit/graphql] "${key}" cannot be used as variable name` + ) + ); + } + } + const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; + const requestOptions = Object.keys( + parsedOptions + ).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = parsedOptions[key]; + return result; + }, {}); + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + return request(requestOptions).then((response) => { + if (response.data.errors) { + const headers = {}; + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + throw new GraphqlResponseError( + requestOptions, + headers, + response.data + ); + } + return response.data.data; + }); +} +export { + graphql +}; diff --git a/node_modules/@octokit/graphql/dist-src/index.js b/node_modules/@octokit/graphql/dist-src/index.js new file mode 100644 index 000000000..4e7deb5b2 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/index.js @@ -0,0 +1,23 @@ +import { request } from "@octokit/request"; +import { getUserAgent } from "universal-user-agent"; +import { VERSION } from "./version"; +import { withDefaults } from "./with-defaults"; +const graphql = withDefaults(request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${getUserAgent()}` + }, + method: "POST", + url: "/graphql" +}); +import { GraphqlResponseError } from "./error"; +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} +export { + GraphqlResponseError, + graphql, + withCustomRequest +}; diff --git a/node_modules/@octokit/graphql/dist-src/version.js b/node_modules/@octokit/graphql/dist-src/version.js new file mode 100644 index 000000000..aa83e0f27 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/version.js @@ -0,0 +1,4 @@ +const VERSION = "7.1.0"; +export { + VERSION +}; diff --git a/node_modules/@octokit/graphql/dist-src/with-defaults.js b/node_modules/@octokit/graphql/dist-src/with-defaults.js new file mode 100644 index 000000000..853ce88fd --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/with-defaults.js @@ -0,0 +1,15 @@ +import { request as Request } from "@octokit/request"; +import { graphql } from "./graphql"; +function withDefaults(request, newDefaults) { + const newRequest = request.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: newRequest.endpoint + }); +} +export { + withDefaults +}; diff --git a/node_modules/@octokit/graphql/dist-types/error.d.ts b/node_modules/@octokit/graphql/dist-types/error.d.ts new file mode 100644 index 000000000..e921bfa57 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/error.d.ts @@ -0,0 +1,13 @@ +import type { ResponseHeaders } from "@octokit/types"; +import type { GraphQlEndpointOptions, GraphQlQueryResponse } from "./types"; +type ServerResponseData = Required>; +export declare class GraphqlResponseError extends Error { + readonly request: GraphQlEndpointOptions; + readonly headers: ResponseHeaders; + readonly response: ServerResponseData; + name: string; + readonly errors: GraphQlQueryResponse["errors"]; + readonly data: ResponseData; + constructor(request: GraphQlEndpointOptions, headers: ResponseHeaders, response: ServerResponseData); +} +export {}; diff --git a/node_modules/@octokit/graphql/dist-types/graphql.d.ts b/node_modules/@octokit/graphql/dist-types/graphql.d.ts new file mode 100644 index 000000000..376e5dfe0 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/graphql.d.ts @@ -0,0 +1,3 @@ +import { request as Request } from "@octokit/request"; +import type { RequestParameters, GraphQlQueryResponseData } from "./types"; +export declare function graphql(request: typeof Request, query: string | RequestParameters, options?: RequestParameters): Promise; diff --git a/node_modules/@octokit/graphql/dist-types/index.d.ts b/node_modules/@octokit/graphql/dist-types/index.d.ts new file mode 100644 index 000000000..c9b22c94a --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/index.d.ts @@ -0,0 +1,5 @@ +import { request } from "@octokit/request"; +export declare const graphql: import("./types").graphql; +export type { GraphQlQueryResponseData } from "./types"; +export { GraphqlResponseError } from "./error"; +export declare function withCustomRequest(customRequest: typeof request): import("./types").graphql; diff --git a/node_modules/@octokit/graphql/dist-types/types.d.ts b/node_modules/@octokit/graphql/dist-types/types.d.ts new file mode 100644 index 000000000..ceba02581 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/types.d.ts @@ -0,0 +1,55 @@ +import type { EndpointOptions, RequestParameters as RequestParametersType, EndpointInterface } from "@octokit/types"; +export type GraphQlEndpointOptions = EndpointOptions & { + variables?: { + [key: string]: unknown; + }; +}; +export type RequestParameters = RequestParametersType; +export type Query = string; +export interface graphql { + /** + * Sends a GraphQL query request based on endpoint options + * The GraphQL query must be specified in `options`. + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: RequestParameters): GraphQlResponse; + /** + * Sends a GraphQL query request based on endpoint options + * + * @param {string} query GraphQL query. Example: `'query { viewer { login } }'`. + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (query: Query, parameters?: RequestParameters): GraphQlResponse; + /** + * Returns a new `endpoint` with updated route and parameters + */ + defaults: (newDefaults: RequestParameters) => graphql; + /** + * Octokit endpoint API, see {@link https://github.com/octokit/endpoint.js|@octokit/endpoint} + */ + endpoint: EndpointInterface; +} +export type GraphQlResponse = Promise; +export type GraphQlQueryResponseData = { + [key: string]: any; +}; +export type GraphQlQueryResponse = { + data: ResponseData; + errors?: [ + { + type: string; + message: string; + path: [string]; + extensions: { + [key: string]: any; + }; + locations: [ + { + line: number; + column: number; + } + ]; + } + ]; +}; diff --git a/node_modules/@octokit/graphql/dist-types/version.d.ts b/node_modules/@octokit/graphql/dist-types/version.d.ts new file mode 100644 index 000000000..5ccfee32e --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "7.1.0"; diff --git a/node_modules/@octokit/graphql/dist-types/with-defaults.d.ts b/node_modules/@octokit/graphql/dist-types/with-defaults.d.ts new file mode 100644 index 000000000..28f22dc28 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/with-defaults.d.ts @@ -0,0 +1,3 @@ +import { request as Request } from "@octokit/request"; +import type { graphql as ApiInterface, RequestParameters } from "./types"; +export declare function withDefaults(request: typeof Request, newDefaults: RequestParameters): ApiInterface; diff --git a/node_modules/@octokit/graphql/dist-web/index.js b/node_modules/@octokit/graphql/dist-web/index.js new file mode 100644 index 000000000..75ebee854 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-web/index.js @@ -0,0 +1,127 @@ +// pkg/dist-src/index.js +import { request } from "@octokit/request"; +import { getUserAgent } from "universal-user-agent"; + +// pkg/dist-src/version.js +var VERSION = "7.1.0"; + +// pkg/dist-src/with-defaults.js +import { request as Request2 } from "@octokit/request"; + +// pkg/dist-src/graphql.js +import { request as Request } from "@octokit/request"; + +// pkg/dist-src/error.js +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors: +` + data.errors.map((e) => ` - ${e.message}`).join("\n"); +} +var GraphqlResponseError = class extends Error { + constructor(request2, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request2; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; + this.errors = response.errors; + this.data = response.data; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } +}; + +// pkg/dist-src/graphql.js +var NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType" +]; +var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request2, query, options) { + if (options) { + if (typeof query === "string" && "query" in options) { + return Promise.reject( + new Error(`[@octokit/graphql] "query" cannot be used as variable name`) + ); + } + for (const key in options) { + if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) + continue; + return Promise.reject( + new Error( + `[@octokit/graphql] "${key}" cannot be used as variable name` + ) + ); + } + } + const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; + const requestOptions = Object.keys( + parsedOptions + ).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = parsedOptions[key]; + return result; + }, {}); + const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl; + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + return request2(requestOptions).then((response) => { + if (response.data.errors) { + const headers = {}; + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + throw new GraphqlResponseError( + requestOptions, + headers, + response.data + ); + } + return response.data.data; + }); +} + +// pkg/dist-src/with-defaults.js +function withDefaults(request2, newDefaults) { + const newRequest = request2.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: newRequest.endpoint + }); +} + +// pkg/dist-src/index.js +var graphql2 = withDefaults(request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${getUserAgent()}` + }, + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} +export { + GraphqlResponseError, + graphql2 as graphql, + withCustomRequest +}; diff --git a/node_modules/@octokit/graphql/dist-web/index.js.map b/node_modules/@octokit/graphql/dist-web/index.js.map new file mode 100644 index 000000000..e9a7b8140 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-web/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/index.js", "../dist-src/version.js", "../dist-src/with-defaults.js", "../dist-src/graphql.js", "../dist-src/error.js"], + "sourcesContent": ["import { request } from \"@octokit/request\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport { withDefaults } from \"./with-defaults\";\nconst graphql = withDefaults(request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nimport { GraphqlResponseError } from \"./error\";\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\nexport {\n GraphqlResponseError,\n graphql,\n withCustomRequest\n};\n", "const VERSION = \"7.1.0\";\nexport {\n VERSION\n};\n", "import { request as Request } from \"@octokit/request\";\nimport { graphql } from \"./graphql\";\nfunction withDefaults(request, newDefaults) {\n const newRequest = request.defaults(newDefaults);\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: newRequest.endpoint\n });\n}\nexport {\n withDefaults\n};\n", "import { request as Request } from \"@octokit/request\";\nimport { GraphqlResponseError } from \"./error\";\nconst NON_VARIABLE_OPTIONS = [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"query\",\n \"mediaType\"\n];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(\n new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`)\n );\n }\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key))\n continue;\n return Promise.reject(\n new Error(\n `[@octokit/graphql] \"${key}\" cannot be used as variable name`\n )\n );\n }\n }\n const parsedOptions = typeof query === \"string\" ? Object.assign({ query }, options) : query;\n const requestOptions = Object.keys(\n parsedOptions\n ).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n if (!result.variables) {\n result.variables = {};\n }\n result.variables[key] = parsedOptions[key];\n return result;\n }, {});\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n return request(requestOptions).then((response) => {\n if (response.data.errors) {\n const headers = {};\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n throw new GraphqlResponseError(\n requestOptions,\n headers,\n response.data\n );\n }\n return response.data.data;\n });\n}\nexport {\n graphql\n};\n", "function _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\n` + data.errors.map((e) => ` - ${e.message}`).join(\"\\n\");\n}\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\";\n this.errors = response.errors;\n this.data = response.data;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\nexport {\n GraphqlResponseError\n};\n"], + "mappings": "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", + "names": ["Request", "request", "request", "request", "graphql"] +} diff --git a/node_modules/@octokit/graphql/package.json b/node_modules/@octokit/graphql/package.json new file mode 100644 index 000000000..ca1efc676 --- /dev/null +++ b/node_modules/@octokit/graphql/package.json @@ -0,0 +1,49 @@ +{ + "name": "@octokit/graphql", + "version": "7.1.0", + "publishConfig": { + "access": "public", + "provenance": true + }, + "description": "GitHub GraphQL API client for browsers and Node", + "repository": "github:octokit/graphql.js", + "keywords": [ + "octokit", + "github", + "api", + "graphql" + ], + "author": "Gregor Martynus (https://github.com/gr2m)", + "license": "MIT", + "dependencies": { + "@octokit/request": "^8.3.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "devDependencies": { + "@octokit/tsconfig": "^2.0.0", + "@types/fetch-mock": "^7.2.5", + "@types/jest": "^29.0.0", + "@types/node": "^18.0.0", + "esbuild": "^0.19.0", + "fetch-mock": "npm:@gr2m/fetch-mock@9.11.0-pull-request-644.1", + "glob": "^10.2.6", + "jest": "^29.0.0", + "prettier": "3.0.3", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^29.0.0", + "typescript": "^5.0.0" + }, + "engines": { + "node": ">= 18" + }, + "files": [ + "dist-*/**", + "bin/**" + ], + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "types": "dist-types/index.d.ts", + "source": "dist-src/index.js", + "sideEffects": false +} diff --git a/node_modules/@octokit/openapi-types/LICENSE b/node_modules/@octokit/openapi-types/LICENSE new file mode 100644 index 000000000..c61fbbe5a --- /dev/null +++ b/node_modules/@octokit/openapi-types/LICENSE @@ -0,0 +1,7 @@ +Copyright 2020 Gregor Martynus + +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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +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. \ No newline at end of file diff --git a/node_modules/@octokit/openapi-types/README.md b/node_modules/@octokit/openapi-types/README.md new file mode 100644 index 000000000..e61ed8d2d --- /dev/null +++ b/node_modules/@octokit/openapi-types/README.md @@ -0,0 +1,17 @@ +# @octokit/openapi-types + +> Generated TypeScript definitions based on GitHub's OpenAPI spec + +This package is continuously updated based on [GitHub's OpenAPI specification](https://github.com/github/rest-api-description/) + +## Usage + +```ts +import { components } from "@octokit/openapi-types"; + +type Repository = components["schemas"]["full-repository"]; +``` + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/openapi-types/package.json b/node_modules/@octokit/openapi-types/package.json new file mode 100644 index 000000000..350a5825d --- /dev/null +++ b/node_modules/@octokit/openapi-types/package.json @@ -0,0 +1,21 @@ +{ + "name": "@octokit/openapi-types", + "description": "Generated TypeScript definitions based on GitHub's OpenAPI spec for api.github.com", + "repository": { + "type": "git", + "url": "https://github.com/octokit/openapi-types.ts.git", + "directory": "packages/openapi-types" + }, + "publishConfig": { + "access": "public", + "provenance": true + }, + "version": "22.2.0", + "main": "", + "types": "types.d.ts", + "author": "Gregor Martynus (https://twitter.com/gr2m)", + "license": "MIT", + "octokit": { + "openapi-version": "16.5.0" + } +} diff --git a/node_modules/@octokit/openapi-types/types.d.ts b/node_modules/@octokit/openapi-types/types.d.ts new file mode 100644 index 000000000..afa653c54 --- /dev/null +++ b/node_modules/@octokit/openapi-types/types.d.ts @@ -0,0 +1,110231 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +/** OneOf type helpers */ +type Without = { [P in Exclude]?: never }; +type XOR = T | U extends object + ? (Without & U) | (Without & T) + : T | U; +type OneOf = T extends [infer Only] + ? Only + : T extends [infer A, infer B, ...infer Rest] + ? OneOf<[XOR, ...Rest]> + : never; + +export interface paths { + "/": { + /** + * GitHub API Root + * @description Get Hypermedia links to resources accessible in GitHub's REST API + */ + get: operations["meta/root"]; + }; + "/advisories": { + /** + * List global security advisories + * @description Lists all global security advisories that match the specified parameters. If no other parameters are defined, the request will return only GitHub-reviewed advisories that are not malware. + * + * By default, all responses will exclude advisories for malware, because malware are not standard vulnerabilities. To list advisories for malware, you must include the `type` parameter in your request, with the value `malware`. For more information about the different types of security advisories, see "[About the GitHub Advisory database](https://docs.github.com/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database#about-types-of-security-advisories)." + */ + get: operations["security-advisories/list-global-advisories"]; + }; + "/advisories/{ghsa_id}": { + /** + * Get a global security advisory + * @description Gets a global security advisory using its GitHub Security Advisory (GHSA) identifier. + */ + get: operations["security-advisories/get-global-advisory"]; + }; + "/app": { + /** + * Get the authenticated app + * @description Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/apps/apps#list-installations-for-the-authenticated-app)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-authenticated"]; + }; + "/app-manifests/{code}/conversions": { + /** + * Create a GitHub App from a manifest + * @description Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. + */ + post: operations["apps/create-from-manifest"]; + }; + "/app/hook/config": { + /** + * Get a webhook configuration for an app + * @description Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-webhook-config-for-app"]; + /** + * Update a webhook configuration for an app + * @description Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + patch: operations["apps/update-webhook-config-for-app"]; + }; + "/app/hook/deliveries": { + /** + * List deliveries for an app webhook + * @description Returns a list of webhook deliveries for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/list-webhook-deliveries"]; + }; + "/app/hook/deliveries/{delivery_id}": { + /** + * Get a delivery for an app webhook + * @description Returns a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-webhook-delivery"]; + }; + "/app/hook/deliveries/{delivery_id}/attempts": { + /** + * Redeliver a delivery for an app webhook + * @description Redeliver a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + post: operations["apps/redeliver-webhook-delivery"]; + }; + "/app/installation-requests": { + /** + * List installation requests for the authenticated app + * @description Lists all the pending installation requests for the authenticated GitHub App. + */ + get: operations["apps/list-installation-requests-for-authenticated-app"]; + }; + "/app/installations": { + /** + * List installations for the authenticated app + * @description You must use a [JWT](https://docs.github.com/enterprise-server@3.9/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * The permissions the installation has are included under the `permissions` key. + */ + get: operations["apps/list-installations"]; + }; + "/app/installations/{installation_id}": { + /** + * Get an installation for the authenticated app + * @description Enables an authenticated GitHub App to find an installation's information using the installation id. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-installation"]; + /** + * Delete an installation for the authenticated app + * @description Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/rest/apps/apps#suspend-an-app-installation)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + delete: operations["apps/delete-installation"]; + }; + "/app/installations/{installation_id}/access_tokens": { + /** + * Create an installation access token for an app + * @description Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. + * + * Optionally, you can use the `repositories` or `repository_ids` body parameters to specify individual repositories that the installation access token can access. If you don't use `repositories` or `repository_ids` to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner. + * + * Optionally, use the `permissions` body parameter to specify the permissions that the installation access token should have. If `permissions` is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted. + * + * When using the repository or permission parameters to reduce the access of the token, the complexity of the token is increased due to both the number of permissions in the request and the number of repositories the token will have access to. If the complexity is too large, the token will fail to be issued. If this occurs, the error message will indicate the maximum number of repositories that should be requested. For the average application requesting 8 permissions, this limit is around 5000 repositories. With fewer permissions requested, more repositories are supported. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + post: operations["apps/create-installation-access-token"]; + }; + "/app/installations/{installation_id}/suspended": { + /** + * Suspend an app installation + * @description Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + put: operations["apps/suspend-installation"]; + /** + * Unsuspend an app installation + * @description Removes a GitHub App installation suspension. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + delete: operations["apps/unsuspend-installation"]; + }; + "/applications/{client_id}/grant": { + /** + * Delete an app authorization + * @description OAuth and GitHub application owners can revoke a grant for their application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * Deleting an application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + delete: operations["apps/delete-authorization"]; + }; + "/applications/{client_id}/token": { + /** + * Check a token + * @description OAuth applications and GitHub applications with OAuth authorizations can use this API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. + */ + post: operations["apps/check-token"]; + /** + * Delete an app token + * @description OAuth or GitHub application owners can revoke a single token for an OAuth application or a GitHub application with an OAuth authorization. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. + */ + delete: operations["apps/delete-token"]; + /** + * Reset a token + * @description OAuth applications and GitHub applications with OAuth authorizations can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + patch: operations["apps/reset-token"]; + }; + "/applications/{client_id}/token/scoped": { + /** + * Create a scoped access token + * @description Use a non-scoped user access token to create a repository-scoped and/or permission-scoped user access token. You can specify + * which repositories the token can access and which permissions are granted to the + * token. + * + * Invalid tokens will return `404 NOT FOUND`. + * + * You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) + * when accessing this endpoint, using the `client_id` and `client_secret` of the GitHub App + * as the username and password. + */ + post: operations["apps/scope-token"]; + }; + "/apps/{app_slug}": { + /** + * Get an app + * @description **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + */ + get: operations["apps/get-by-slug"]; + }; + "/assignments/{assignment_id}": { + /** + * Get an assignment + * @description Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + get: operations["classroom/get-an-assignment"]; + }; + "/assignments/{assignment_id}/accepted_assignments": { + /** + * List accepted assignments for an assignment + * @description Lists any assignment repositories that have been created by students accepting a GitHub Classroom assignment. Accepted assignments will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + get: operations["classroom/list-accepted-assigments-for-an-assignment"]; + }; + "/assignments/{assignment_id}/grades": { + /** + * Get assignment grades + * @description Gets grades for a GitHub Classroom assignment. Grades will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + get: operations["classroom/get-assignment-grades"]; + }; + "/classrooms": { + /** + * List classrooms + * @description Lists GitHub Classroom classrooms for the current user. Classrooms will only be returned if the current user is an administrator of one or more GitHub Classrooms. + */ + get: operations["classroom/list-classrooms"]; + }; + "/classrooms/{classroom_id}": { + /** + * Get a classroom + * @description Gets a GitHub Classroom classroom for the current user. Classroom will only be returned if the current user is an administrator of the GitHub Classroom. + */ + get: operations["classroom/get-a-classroom"]; + }; + "/classrooms/{classroom_id}/assignments": { + /** + * List assignments for a classroom + * @description Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. + */ + get: operations["classroom/list-assignments-for-a-classroom"]; + }; + "/codes_of_conduct": { + /** + * Get all codes of conduct + * @description Returns array of all GitHub's codes of conduct. + */ + get: operations["codes-of-conduct/get-all-codes-of-conduct"]; + }; + "/codes_of_conduct/{key}": { + /** + * Get a code of conduct + * @description Returns information about the specified GitHub code of conduct. + */ + get: operations["codes-of-conduct/get-conduct-code"]; + }; + "/emojis": { + /** + * Get emojis + * @description Lists all the emojis available to use on GitHub. + */ + get: operations["emojis/get"]; + }; + "/enterprises/{enterprise}/copilot/usage": { + /** + * Get a summary of Copilot usage for enterprise members + * @description **Note**: This endpoint is in beta and is subject to change. + * + * You can use this endpoint to see a daily breakdown of aggregated usage metrics for Copilot completions and Copilot Chat in the IDE + * for all users across organizations with access to Copilot within your enterprise, with a further breakdown of suggestions, acceptances, + * and number of active users by editor and language for each day. See the response schema tab for detailed metrics definitions. + * + * The response contains metrics for the prior 28 days. Usage metrics are processed once per day for the previous day, + * and the response will only include data up until yesterday. In order for an end user to be counted towards these metrics, + * they must have telemetry enabled in their IDE. + * + * Only the owners and billing managers of enterprises with a Copilot Business or Enterprise subscription can view Copilot usage + * metrics for the enterprise. + * + * OAuth app tokens and personal access tokens (classic) need the `copilot`, `manage_billing:copilot`, `admin:enterprise`, or `manage_billing:enterprise` scope to use this endpoint. + */ + get: operations["copilot/usage-metrics-for-enterprise"]; + }; + "/enterprises/{enterprise}/dependabot/alerts": { + /** + * List Dependabot alerts for an enterprise + * @description Lists Dependabot alerts for repositories that are owned by the specified enterprise. + * + * The authenticated user must be a member of the enterprise to use this endpoint. + * + * Alerts are only returned for organizations in the enterprise for which you are an organization owner or a security manager. For more information about security managers, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. + */ + get: operations["dependabot/list-alerts-for-enterprise"]; + }; + "/enterprises/{enterprise}/secret-scanning/alerts": { + /** + * List secret scanning alerts for an enterprise + * @description Lists secret scanning alerts for eligible repositories in an enterprise, from newest to oldest. + * + * Alerts are only returned for organizations in the enterprise for which the authenticated user is an organization owner or a [security manager](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization). + * + * The authenticated user must be a member of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope or `security_events` scope to use this endpoint. + */ + get: operations["secret-scanning/list-alerts-for-enterprise"]; + }; + "/events": { + /** + * List public events + * @description We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. + */ + get: operations["activity/list-public-events"]; + }; + "/feeds": { + /** + * Get feeds + * @description Lists the feeds available to the authenticated user. The response provides a URL for each feed. You can then get a specific feed by sending a request to one of the feed URLs. + * + * * **Timeline**: The GitHub global public timeline + * * **User**: The public timeline for any user, using `uri_template`. For more information, see "[Hypermedia](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + * * **Current user public**: The public timeline for the authenticated user + * * **Current user**: The private timeline for the authenticated user + * * **Current user actor**: The private timeline for activity created by the authenticated user + * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + * + * By default, timeline resources are returned in JSON. You can specify the `application/atom+xml` type in the `Accept` header to return timeline resources in Atom format. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + */ + get: operations["activity/get-feeds"]; + }; + "/gists": { + /** + * List gists for the authenticated user + * @description Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: + */ + get: operations["gists/list"]; + /** + * Create a gist + * @description Allows you to add a new gist with one or more files. + * + * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + */ + post: operations["gists/create"]; + }; + "/gists/public": { + /** + * List public gists + * @description List public gists sorted by most recently updated to least recently updated. + * + * Note: With [pagination](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + */ + get: operations["gists/list-public"]; + }; + "/gists/starred": { + /** + * List starred gists + * @description List the authenticated user's starred gists: + */ + get: operations["gists/list-starred"]; + }; + "/gists/{gist_id}": { + /** + * Get a gist + * @description Gets a specified gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + get: operations["gists/get"]; + /** Delete a gist */ + delete: operations["gists/delete"]; + /** + * Update a gist + * @description Allows you to update a gist's description and to update, delete, or rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. + */ + patch: operations["gists/update"]; + }; + "/gists/{gist_id}/comments": { + /** + * List gist comments + * @description Lists the comments on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + get: operations["gists/list-comments"]; + /** + * Create a gist comment + * @description Creates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + post: operations["gists/create-comment"]; + }; + "/gists/{gist_id}/comments/{comment_id}": { + /** + * Get a gist comment + * @description Gets a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + get: operations["gists/get-comment"]; + /** Delete a gist comment */ + delete: operations["gists/delete-comment"]; + /** + * Update a gist comment + * @description Updates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + patch: operations["gists/update-comment"]; + }; + "/gists/{gist_id}/commits": { + /** List gist commits */ + get: operations["gists/list-commits"]; + }; + "/gists/{gist_id}/forks": { + /** List gist forks */ + get: operations["gists/list-forks"]; + /** Fork a gist */ + post: operations["gists/fork"]; + }; + "/gists/{gist_id}/star": { + /** Check if a gist is starred */ + get: operations["gists/check-is-starred"]; + /** + * Star a gist + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["gists/star"]; + /** Unstar a gist */ + delete: operations["gists/unstar"]; + }; + "/gists/{gist_id}/{sha}": { + /** + * Get a gist revision + * @description Gets a specified gist revision. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + get: operations["gists/get-revision"]; + }; + "/gitignore/templates": { + /** + * Get all gitignore templates + * @description List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user). + */ + get: operations["gitignore/get-all-templates"]; + }; + "/gitignore/templates/{name}": { + /** + * Get a gitignore template + * @description Get the content of a gitignore template. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw .gitignore contents. + */ + get: operations["gitignore/get-template"]; + }; + "/installation/repositories": { + /** + * List repositories accessible to the app installation + * @description List repositories that an app installation can access. + */ + get: operations["apps/list-repos-accessible-to-installation"]; + }; + "/installation/token": { + /** + * Revoke an installation access token + * @description Revokes the installation token you're using to authenticate as an installation and access this endpoint. + * + * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app)" endpoint. + */ + delete: operations["apps/revoke-installation-access-token"]; + }; + "/issues": { + /** + * List issues assigned to the authenticated user + * @description List issues assigned to the authenticated user across all visible repositories including owned repositories, member + * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not + * necessarily assigned to you. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list"]; + }; + "/licenses": { + /** + * Get all commonly used licenses + * @description Lists the most commonly used licenses on GitHub. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + get: operations["licenses/get-all-commonly-used"]; + }; + "/licenses/{license}": { + /** + * Get a license + * @description Gets information about a specific license. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + get: operations["licenses/get"]; + }; + "/markdown": { + /** Render a Markdown document */ + post: operations["markdown/render"]; + }; + "/markdown/raw": { + /** + * Render a Markdown document in raw mode + * @description You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. + */ + post: operations["markdown/render-raw"]; + }; + "/marketplace_listing/accounts/{account_id}": { + /** + * Get a subscription plan for an account + * @description Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/get-subscription-plan-for-account"]; + }; + "/marketplace_listing/plans": { + /** + * List plans + * @description Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-plans"]; + }; + "/marketplace_listing/plans/{plan_id}/accounts": { + /** + * List accounts for a plan + * @description Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-accounts-for-plan"]; + }; + "/marketplace_listing/stubbed/accounts/{account_id}": { + /** + * Get a subscription plan for an account (stubbed) + * @description Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/get-subscription-plan-for-account-stubbed"]; + }; + "/marketplace_listing/stubbed/plans": { + /** + * List plans (stubbed) + * @description Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-plans-stubbed"]; + }; + "/marketplace_listing/stubbed/plans/{plan_id}/accounts": { + /** + * List accounts for a plan (stubbed) + * @description Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-accounts-for-plan-stubbed"]; + }; + "/meta": { + /** + * Get GitHub meta information + * @description Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://docs.github.com/articles/about-github-s-ip-addresses/)." + * + * The API's response also includes a list of GitHub's domain names. + * + * The values shown in the documentation's response are example values. You must always query the API directly to get the latest values. + * + * **Note:** This endpoint returns both IPv4 and IPv6 addresses. However, not all features support IPv6. You should refer to the specific documentation for each feature to determine if IPv6 is supported. + */ + get: operations["meta/get"]; + }; + "/networks/{owner}/{repo}/events": { + /** List public events for a network of repositories */ + get: operations["activity/list-public-events-for-repo-network"]; + }; + "/notifications": { + /** + * List notifications for the authenticated user + * @description List all notifications for the current user, sorted by most recently updated. + */ + get: operations["activity/list-notifications-for-authenticated-user"]; + /** + * Mark notifications as read + * @description Marks all notifications as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + put: operations["activity/mark-notifications-as-read"]; + }; + "/notifications/threads/{thread_id}": { + /** + * Get a thread + * @description Gets information about a notification thread. + */ + get: operations["activity/get-thread"]; + /** + * Mark a thread as done + * @description Marks a thread as "done." Marking a thread as "done" is equivalent to marking a notification in your notification inbox on GitHub as done: https://github.com/notifications. + */ + delete: operations["activity/mark-thread-as-done"]; + /** + * Mark a thread as read + * @description Marks a thread as "read." Marking a thread as "read" is equivalent to clicking a notification in your notification inbox on GitHub: https://github.com/notifications. + */ + patch: operations["activity/mark-thread-as-read"]; + }; + "/notifications/threads/{thread_id}/subscription": { + /** + * Get a thread subscription for the authenticated user + * @description This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/activity/watching#get-a-repository-subscription). + * + * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + */ + get: operations["activity/get-thread-subscription-for-authenticated-user"]; + /** + * Set a thread subscription + * @description If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**. + * + * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. + * + * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription) endpoint. + */ + put: operations["activity/set-thread-subscription"]; + /** + * Delete a thread subscription + * @description Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/activity/notifications#set-a-thread-subscription) endpoint and set `ignore` to `true`. + */ + delete: operations["activity/delete-thread-subscription"]; + }; + "/octocat": { + /** + * Get Octocat + * @description Get the octocat as ASCII art + */ + get: operations["meta/get-octocat"]; + }; + "/organizations": { + /** + * List organizations + * @description Lists all organizations, in the order that they were created. + * + * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of organizations. + */ + get: operations["orgs/list"]; + }; + "/orgs/{org}": { + /** + * Get an organization + * @description Gets information about an organization. + * + * When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://docs.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * + * To see the full details about an organization, the authenticated user must be an organization owner. + * + * The values returned by this endpoint are set by the "Update an organization" endpoint. If your organization set a default security configuration (beta), the following values retrieved from the "Update an organization" endpoint have been overwritten by that configuration: + * + * - advanced_security_enabled_for_new_repositories + * - dependabot_alerts_enabled_for_new_repositories + * - dependabot_security_updates_enabled_for_new_repositories + * - dependency_graph_enabled_for_new_repositories + * - secret_scanning_enabled_for_new_repositories + * - secret_scanning_push_protection_enabled_for_new_repositories + * + * For more information on security configurations, see "[Enabling security features at scale](https://docs.github.com/code-security/securing-your-organization/introduction-to-securing-your-organization-at-scale/about-enabling-security-features-at-scale)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to see the full details about an organization. + * + * To see information about an organization's GitHub plan, GitHub Apps need the `Organization plan` permission. + */ + get: operations["orgs/get"]; + /** + * Delete an organization + * @description Deletes an organization and all its repositories. + * + * The organization login will be unavailable for 90 days after deletion. + * + * Please review the Terms of Service regarding account deletion before using this endpoint: + * + * https://docs.github.com/site-policy/github-terms/github-terms-of-service + */ + delete: operations["orgs/delete"]; + /** + * Update an organization + * @description **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * + * Updates the organization's profile and member privileges. + * + * With security configurations (beta), your organization can choose a default security configuration which will automatically apply a set of security enablement settings to new repositories in your organization based on their visibility. For targeted repositories, the following attributes will be overridden by the default security configuration: + * + * - advanced_security_enabled_for_new_repositories + * - dependabot_alerts_enabled_for_new_repositories + * - dependabot_security_updates_enabled_for_new_repositories + * - dependency_graph_enabled_for_new_repositories + * - secret_scanning_enabled_for_new_repositories + * - secret_scanning_push_protection_enabled_for_new_repositories + * + * For more information on setting a default security configuration, see "[Enabling security features at scale](https://docs.github.com/code-security/securing-your-organization/introduction-to-securing-your-organization-at-scale/about-enabling-security-features-at-scale)." + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` or `repo` scope to use this endpoint. + */ + patch: operations["orgs/update"]; + }; + "/orgs/{org}/actions/cache/usage": { + /** + * Get GitHub Actions cache usage for an organization + * @description Gets the total GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + get: operations["actions/get-actions-cache-usage-for-org"]; + }; + "/orgs/{org}/actions/cache/usage-by-repository": { + /** + * List repositories with GitHub Actions cache usage for an organization + * @description Lists repositories and their GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + get: operations["actions/get-actions-cache-usage-by-repo-for-org"]; + }; + "/orgs/{org}/actions/oidc/customization/sub": { + /** + * Get the customization template for an OIDC subject claim for an organization + * @description Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + get: operations["oidc/get-oidc-custom-sub-template-for-org"]; + /** + * Set the customization template for an OIDC subject claim for an organization + * @description Creates or updates the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + put: operations["oidc/update-oidc-custom-sub-template-for-org"]; + }; + "/orgs/{org}/actions/permissions": { + /** + * Get GitHub Actions permissions for an organization + * @description Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["actions/get-github-actions-permissions-organization"]; + /** + * Set GitHub Actions permissions for an organization + * @description Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-github-actions-permissions-organization"]; + }; + "/orgs/{org}/actions/permissions/repositories": { + /** + * List selected repositories enabled for GitHub Actions in an organization + * @description Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["actions/list-selected-repositories-enabled-github-actions-organization"]; + /** + * Set selected repositories enabled for GitHub Actions in an organization + * @description Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-selected-repositories-enabled-github-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/repositories/{repository_id}": { + /** + * Enable a selected repository for GitHub Actions in an organization + * @description Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/enable-selected-repository-github-actions-organization"]; + /** + * Disable a selected repository for GitHub Actions in an organization + * @description Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["actions/disable-selected-repository-github-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/selected-actions": { + /** + * Get allowed actions and reusable workflows for an organization + * @description Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["actions/get-allowed-actions-organization"]; + /** + * Set allowed actions and reusable workflows for an organization + * @description Sets the actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-allowed-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/workflow": { + /** + * Get default workflow permissions for an organization + * @description Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, + * as well as whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["actions/get-github-actions-default-workflow-permissions-organization"]; + /** + * Set default workflow permissions for an organization + * @description Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, and sets if GitHub Actions + * can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-github-actions-default-workflow-permissions-organization"]; + }; + "/orgs/{org}/actions/runners": { + /** + * List self-hosted runners for an organization + * @description Lists all self-hosted runners configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-self-hosted-runners-for-org"]; + }; + "/orgs/{org}/actions/runners/downloads": { + /** + * List runner applications for an organization + * @description Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-runner-applications-for-org"]; + }; + "/orgs/{org}/actions/runners/generate-jitconfig": { + /** + * Create configuration for a just-in-time runner for an organization + * @description Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the organization. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/generate-runner-jitconfig-for-org"]; + }; + "/orgs/{org}/actions/runners/registration-token": { + /** + * Create a registration token for an organization + * @description Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-registration-token-for-org"]; + }; + "/orgs/{org}/actions/runners/remove-token": { + /** + * Create a remove token for an organization + * @description Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-remove-token-for-org"]; + }; + "/orgs/{org}/actions/runners/{runner_id}": { + /** + * Get a self-hosted runner for an organization + * @description Gets a specific self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/get-self-hosted-runner-for-org"]; + /** + * Delete a self-hosted runner from an organization + * @description Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-self-hosted-runner-from-org"]; + }; + "/orgs/{org}/actions/runners/{runner_id}/labels": { + /** + * List labels for a self-hosted runner for an organization + * @description Lists all labels for a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-labels-for-self-hosted-runner-for-org"]; + /** + * Set custom labels for a self-hosted runner for an organization + * @description Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + put: operations["actions/set-custom-labels-for-self-hosted-runner-for-org"]; + /** + * Add custom labels to a self-hosted runner for an organization + * @description Adds custom labels to a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + post: operations["actions/add-custom-labels-to-self-hosted-runner-for-org"]; + /** + * Remove all custom labels from a self-hosted runner for an organization + * @description Remove all custom labels from a self-hosted runner configured in an + * organization. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + delete: operations["actions/remove-all-custom-labels-from-self-hosted-runner-for-org"]; + }; + "/orgs/{org}/actions/runners/{runner_id}/labels/{name}": { + /** + * Remove a custom label from a self-hosted runner for an organization + * @description Remove a custom label from a self-hosted runner configured + * in an organization. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + delete: operations["actions/remove-custom-label-from-self-hosted-runner-for-org"]; + }; + "/orgs/{org}/actions/secrets": { + /** + * List organization secrets + * @description Lists all secrets available in an organization without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-org-secrets"]; + }; + "/orgs/{org}/actions/secrets/public-key": { + /** + * Get an organization public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-org-public-key"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}": { + /** + * Get an organization secret + * @description Gets a single organization secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-org-secret"]; + /** + * Create or update an organization secret + * @description Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to + * use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + put: operations["actions/create-or-update-org-secret"]; + /** + * Delete an organization secret + * @description Deletes a secret in an organization using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-org-secret"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}/repositories": { + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-selected-repos-for-org-secret"]; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + put: operations["actions/set-selected-repos-for-org-secret"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": { + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. For more information about setting the visibility, see [Create or + * update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/add-selected-repo-to-org-secret"]; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + delete: operations["actions/remove-selected-repo-from-org-secret"]; + }; + "/orgs/{org}/actions/variables": { + /** + * List organization variables + * @description Lists all organization variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-org-variables"]; + /** + * Create an organization variable + * @description Creates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-org-variable"]; + }; + "/orgs/{org}/actions/variables/{name}": { + /** + * Get an organization variable + * @description Gets a specific variable in an organization. + * + * The authenticated user must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-org-variable"]; + /** + * Delete an organization variable + * @description Deletes an organization variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-org-variable"]; + /** + * Update an organization variable + * @description Updates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + patch: operations["actions/update-org-variable"]; + }; + "/orgs/{org}/actions/variables/{name}/repositories": { + /** + * List selected repositories for an organization variable + * @description Lists all repositories that can access an organization variable + * that is available to selected repositories. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-selected-repos-for-org-variable"]; + /** + * Set selected repositories for an organization variable + * @description Replaces all repositories for an organization variable that is available + * to selected repositories. Organization variables that are available to selected + * repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + put: operations["actions/set-selected-repos-for-org-variable"]; + }; + "/orgs/{org}/actions/variables/{name}/repositories/{repository_id}": { + /** + * Add selected repository to an organization variable + * @description Adds a repository to an organization variable that is available to selected repositories. + * Organization variables that are available to selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/add-selected-repo-to-org-variable"]; + /** + * Remove selected repository from an organization variable + * @description Removes a repository from an organization variable that is + * available to selected repositories. Organization variables that are available to + * selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + delete: operations["actions/remove-selected-repo-from-org-variable"]; + }; + "/orgs/{org}/blocks": { + /** + * List users blocked by an organization + * @description List the users blocked by an organization. + */ + get: operations["orgs/list-blocked-users"]; + }; + "/orgs/{org}/blocks/{username}": { + /** + * Check if a user is blocked by an organization + * @description Returns a 204 if the given user is blocked by the given organization. Returns a 404 if the organization is not blocking the user, or if the user account has been identified as spam by GitHub. + */ + get: operations["orgs/check-blocked-user"]; + /** + * Block a user from an organization + * @description Blocks the given user on behalf of the specified organization and returns a 204. If the organization cannot block the given user a 422 is returned. + */ + put: operations["orgs/block-user"]; + /** + * Unblock a user from an organization + * @description Unblocks the given user on behalf of the specified organization. + */ + delete: operations["orgs/unblock-user"]; + }; + "/orgs/{org}/code-scanning/alerts": { + /** + * List code scanning alerts for an organization + * @description Lists code scanning alerts for the default branch for all eligible repositories in an organization. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` or `repo`s cope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/list-alerts-for-org"]; + }; + "/orgs/{org}/codespaces": { + /** + * List codespaces for the organization + * @description Lists the codespaces associated to a specified organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/list-in-organization"]; + }; + "/orgs/{org}/codespaces/access": { + /** + * Manage access control for organization codespaces + * @deprecated + * @description Sets which users can access codespaces in an organization. This is synonymous with granting or revoking codespaces access permissions for users according to the visibility. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["codespaces/set-codespaces-access"]; + }; + "/orgs/{org}/codespaces/access/selected_users": { + /** + * Add users to Codespaces access for an organization + * @deprecated + * @description Codespaces for the specified users will be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + post: operations["codespaces/set-codespaces-access-users"]; + /** + * Remove users from Codespaces access for an organization + * @deprecated + * @description Codespaces for the specified users will no longer be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["codespaces/delete-codespaces-access-users"]; + }; + "/orgs/{org}/codespaces/secrets": { + /** + * List organization secrets + * @description Lists all Codespaces development environment secrets available at the organization-level without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/list-org-secrets"]; + }; + "/orgs/{org}/codespaces/secrets/public-key": { + /** + * Get an organization public key + * @description Gets a public key for an organization, which is required in order to encrypt secrets. You need to encrypt the value of a secret before you can create or update secrets. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/get-org-public-key"]; + }; + "/orgs/{org}/codespaces/secrets/{secret_name}": { + /** + * Get an organization secret + * @description Gets an organization development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/get-org-secret"]; + /** + * Create or update an organization secret + * @description Creates or updates an organization development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["codespaces/create-or-update-org-secret"]; + /** + * Delete an organization secret + * @description Deletes an organization development environment secret using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["codespaces/delete-org-secret"]; + }; + "/orgs/{org}/codespaces/secrets/{secret_name}/repositories": { + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/list-selected-repos-for-org-secret"]; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["codespaces/set-selected-repos-for-org-secret"]; + }; + "/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}": { + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization development environment secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["codespaces/add-selected-repo-to-org-secret"]; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["codespaces/remove-selected-repo-from-org-secret"]; + }; + "/orgs/{org}/copilot/billing": { + /** + * Get Copilot seat information and settings for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Gets information about an organization's Copilot subscription, including seat breakdown + * and code matching policies. To configure these settings, go to your organization's settings on GitHub.com. + * For more information, see "[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-copilot-business-in-your-organization)". + * + * Only organization owners can configure and view details about the organization's Copilot Business subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + get: operations["copilot/get-copilot-organization-details"]; + }; + "/orgs/{org}/copilot/billing/seats": { + /** + * List all Copilot seat assignments for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Lists all Copilot seat assignments for an organization that are currently being billed (either active or pending cancellation at the start of the next billing cycle). + * + * Only organization owners can configure and view details about the organization's Copilot Business or Enterprise subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + get: operations["copilot/list-copilot-seats"]; + }; + "/orgs/{org}/copilot/billing/selected_teams": { + /** + * Add teams to the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for all users within each specified team. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + post: operations["copilot/add-copilot-seats-for-teams"]; + /** + * Remove teams from the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for all members of each team specified. + * This will cause the members of the specified team(s) to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + delete: operations["copilot/cancel-copilot-seat-assignment-for-teams"]; + }; + "/orgs/{org}/copilot/billing/selected_users": { + /** + * Add users to the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for each user specified. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + post: operations["copilot/add-copilot-seats-for-users"]; + /** + * Remove users from the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for each user specified. + * This will cause the specified users to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + delete: operations["copilot/cancel-copilot-seat-assignment-for-users"]; + }; + "/orgs/{org}/copilot/usage": { + /** + * Get a summary of Copilot usage for organization members + * @description **Note**: This endpoint is in beta and is subject to change. + * + * You can use this endpoint to see a daily breakdown of aggregated usage metrics for Copilot completions and Copilot Chat in the IDE + * across an organization, with a further breakdown of suggestions, acceptances, and number of active users by editor and language for each day. + * See the response schema tab for detailed metrics definitions. + * + * The response contains metrics for the prior 28 days. Usage metrics are processed once per day for the previous day, + * and the response will only include data up until yesterday. In order for an end user to be counted towards these metrics, + * they must have telemetry enabled in their IDE. + * + * Copilot Business or Copilot Enterprise organization owners, and owners and billing managers of their parent enterprises, can view + * Copilot usage metrics. + * + * OAuth app tokens and personal access tokens (classic) need the `copilot`, `manage_billing:copilot`, `admin:org`, `admin:enterprise`, or `manage_billing:enterprise` scope to use this endpoint. + */ + get: operations["copilot/usage-metrics-for-org"]; + }; + "/orgs/{org}/dependabot/alerts": { + /** + * List Dependabot alerts for an organization + * @description Lists Dependabot alerts for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["dependabot/list-alerts-for-org"]; + }; + "/orgs/{org}/dependabot/secrets": { + /** + * List organization secrets + * @description Lists all secrets available in an organization without revealing their + * encrypted values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["dependabot/list-org-secrets"]; + }; + "/orgs/{org}/dependabot/secrets/public-key": { + /** + * Get an organization public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["dependabot/get-org-public-key"]; + }; + "/orgs/{org}/dependabot/secrets/{secret_name}": { + /** + * Get an organization secret + * @description Gets a single organization secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["dependabot/get-org-secret"]; + /** + * Create or update an organization secret + * @description Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization + * permission to use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + put: operations["dependabot/create-or-update-org-secret"]; + /** + * Delete an organization secret + * @description Deletes a secret in an organization using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["dependabot/delete-org-secret"]; + }; + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories": { + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["dependabot/list-selected-repos-for-org-secret"]; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["dependabot/set-selected-repos-for-org-secret"]; + }; + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": { + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. The visibility is set when you [Create or + * update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["dependabot/add-selected-repo-to-org-secret"]; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["dependabot/remove-selected-repo-from-org-secret"]; + }; + "/orgs/{org}/docker/conflicts": { + /** + * Get list of conflicting packages during Docker migration for organization + * @description Lists all packages that are in a specific organization, are readable by the requesting user, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + get: operations["packages/list-docker-migration-conflicting-packages-for-organization"]; + }; + "/orgs/{org}/events": { + /** List public organization events */ + get: operations["activity/list-public-org-events"]; + }; + "/orgs/{org}/failed_invitations": { + /** + * List failed organization invitations + * @description The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. + */ + get: operations["orgs/list-failed-invitations"]; + }; + "/orgs/{org}/hooks": { + /** + * List organization webhooks + * @description You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + get: operations["orgs/list-webhooks"]; + /** + * Create an organization webhook + * @description Create a hook that posts payloads in JSON format. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or + * edit webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + post: operations["orgs/create-webhook"]; + }; + "/orgs/{org}/hooks/{hook_id}": { + /** + * Get an organization webhook + * @description Returns a webhook configured in an organization. To get only the webhook + * `config` properties, see "[Get a webhook configuration for an organization](/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization). + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + get: operations["orgs/get-webhook"]; + /** + * Delete an organization webhook + * @description You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + delete: operations["orgs/delete-webhook"]; + /** + * Update an organization webhook + * @description Updates a webhook configured in an organization. When you update a webhook, + * the `secret` will be overwritten. If you previously had a `secret` set, you must + * provide the same `secret` or set a new `secret` or the secret will be removed. If + * you are only updating individual webhook `config` properties, use "[Update a webhook + * configuration for an organization](/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization)". + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + patch: operations["orgs/update-webhook"]; + }; + "/orgs/{org}/hooks/{hook_id}/config": { + /** + * Get a webhook configuration for an organization + * @description Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/orgs/webhooks#get-an-organization-webhook)." + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + get: operations["orgs/get-webhook-config-for-org"]; + /** + * Update a webhook configuration for an organization + * @description Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/orgs/webhooks#update-an-organization-webhook)." + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + patch: operations["orgs/update-webhook-config-for-org"]; + }; + "/orgs/{org}/hooks/{hook_id}/deliveries": { + /** + * List deliveries for an organization webhook + * @description Returns a list of webhook deliveries for a webhook configured in an organization. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + get: operations["orgs/list-webhook-deliveries"]; + }; + "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}": { + /** + * Get a webhook delivery for an organization webhook + * @description Returns a delivery for a webhook configured in an organization. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + get: operations["orgs/get-webhook-delivery"]; + }; + "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": { + /** + * Redeliver a delivery for an organization webhook + * @description Redeliver a delivery for a webhook configured in an organization. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + post: operations["orgs/redeliver-webhook-delivery"]; + }; + "/orgs/{org}/hooks/{hook_id}/pings": { + /** + * Ping an organization webhook + * @description This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) + * to be sent to the hook. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + post: operations["orgs/ping-webhook"]; + }; + "/orgs/{org}/installation": { + /** + * Get an organization installation for the authenticated app + * @description Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-org-installation"]; + }; + "/orgs/{org}/installations": { + /** + * List app installations for an organization + * @description Lists all GitHub Apps in an organization. The installation count includes + * all GitHub Apps installed on repositories in the organization. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:read` scope to use this endpoint. + */ + get: operations["orgs/list-app-installations"]; + }; + "/orgs/{org}/interaction-limits": { + /** + * Get interaction restrictions for an organization + * @description Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response. + */ + get: operations["interactions/get-restrictions-for-org"]; + /** + * Set interaction restrictions for an organization + * @description Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. + */ + put: operations["interactions/set-restrictions-for-org"]; + /** + * Remove interaction restrictions for an organization + * @description Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. + */ + delete: operations["interactions/remove-restrictions-for-org"]; + }; + "/orgs/{org}/invitations": { + /** + * List pending organization invitations + * @description The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, or `hiring_manager`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + get: operations["orgs/list-pending-invitations"]; + /** + * Create an organization invitation + * @description Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + post: operations["orgs/create-invitation"]; + }; + "/orgs/{org}/invitations/{invitation_id}": { + /** + * Cancel an organization invitation + * @description Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + */ + delete: operations["orgs/cancel-invitation"]; + }; + "/orgs/{org}/invitations/{invitation_id}/teams": { + /** + * List organization invitation teams + * @description List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + */ + get: operations["orgs/list-invitation-teams"]; + }; + "/orgs/{org}/issues": { + /** + * List organization issues assigned to the authenticated user + * @description List issues in an organization assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-for-org"]; + }; + "/orgs/{org}/members": { + /** + * List organization members + * @description List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + */ + get: operations["orgs/list-members"]; + }; + "/orgs/{org}/members/{username}": { + /** + * Check organization membership for a user + * @description Check if a user is, publicly or privately, a member of the organization. + */ + get: operations["orgs/check-membership-for-user"]; + /** + * Remove an organization member + * @description Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + */ + delete: operations["orgs/remove-member"]; + }; + "/orgs/{org}/members/{username}/codespaces": { + /** + * List codespaces for a user in organization + * @description Lists the codespaces that a member of an organization has for repositories in that organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/get-codespaces-for-user-in-org"]; + }; + "/orgs/{org}/members/{username}/codespaces/{codespace_name}": { + /** + * Delete a codespace from the organization + * @description Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["codespaces/delete-from-organization"]; + }; + "/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop": { + /** + * Stop a codespace for an organization user + * @description Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + post: operations["codespaces/stop-in-organization"]; + }; + "/orgs/{org}/members/{username}/copilot": { + /** + * Get Copilot seat assignment details for a user + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Gets the GitHub Copilot seat assignment details for a member of an organization who currently has access to GitHub Copilot. + * + * Organization owners can view GitHub Copilot seat assignment details for members in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + get: operations["copilot/get-copilot-seat-details-for-user"]; + }; + "/orgs/{org}/memberships/{username}": { + /** + * Get organization membership for a user + * @description In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status. + */ + get: operations["orgs/get-membership-for-user"]; + /** + * Set organization membership for a user + * @description Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + */ + put: operations["orgs/set-membership-for-user"]; + /** + * Remove organization membership for a user + * @description In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + */ + delete: operations["orgs/remove-membership-for-user"]; + }; + "/orgs/{org}/migrations": { + /** + * List organization migrations + * @description Lists the most recent migrations, including both exports (which can be started through the REST API) and imports (which cannot be started using the REST API). + * + * A list of `repositories` is only returned for export migrations. + */ + get: operations["migrations/list-for-org"]; + /** + * Start an organization migration + * @description Initiates the generation of a migration archive. + */ + post: operations["migrations/start-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}": { + /** + * Get an organization migration status + * @description Fetches the status of a migration. + * + * The `state` of a migration can be one of the following values: + * + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + get: operations["migrations/get-status-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/archive": { + /** + * Download an organization migration archive + * @description Fetches the URL to a migration archive. + */ + get: operations["migrations/download-archive-for-org"]; + /** + * Delete an organization migration archive + * @description Deletes a previous migration archive. Migration archives are automatically deleted after seven days. + */ + delete: operations["migrations/delete-archive-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": { + /** + * Unlock an organization repository + * @description Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/repos/repos#delete-a-repository) when the migration is complete and you no longer need the source data. + */ + delete: operations["migrations/unlock-repo-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/repositories": { + /** + * List repositories in an organization migration + * @description List all the repositories for this organization migration. + */ + get: operations["migrations/list-repos-for-org"]; + }; + "/orgs/{org}/organization-fine-grained-permissions": { + /** + * List organization fine-grained permissions for an organization + * @description Lists the fine-grained permissions that can be used in custom organization roles for an organization. For more information, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To list the fine-grained permissions that can be used in custom repository roles for an organization, see "[List repository fine-grained permissions for an organization](https://docs.github.com/rest/orgs/organization-roles#list-repository-fine-grained-permissions-for-an-organization)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/list-organization-fine-grained-permissions"]; + }; + "/orgs/{org}/organization-roles": { + /** + * Get all organization roles for an organization + * @description Lists the organization roles available in this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/list-org-roles"]; + /** + * Create a custom organization role + * @description Creates a custom organization role that can be assigned to users and teams, granting them specific permissions over the organization. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + post: operations["orgs/create-custom-organization-role"]; + }; + "/orgs/{org}/organization-roles/teams/{team_slug}": { + /** + * Remove all organization roles for a team + * @description Removes all assigned organization roles from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/revoke-all-org-roles-team"]; + }; + "/orgs/{org}/organization-roles/teams/{team_slug}/{role_id}": { + /** + * Assign an organization role to a team + * @description Assigns an organization role to a team in an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["orgs/assign-team-to-org-role"]; + /** + * Remove an organization role from a team + * @description Removes an organization role from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/revoke-org-role-team"]; + }; + "/orgs/{org}/organization-roles/users/{username}": { + /** + * Remove all organization roles for a user + * @description Revokes all assigned organization roles from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/revoke-all-org-roles-user"]; + }; + "/orgs/{org}/organization-roles/users/{username}/{role_id}": { + /** + * Assign an organization role to a user + * @description Assigns an organization role to a member of an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["orgs/assign-user-to-org-role"]; + /** + * Remove an organization role from a user + * @description Remove an organization role from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/revoke-org-role-user"]; + }; + "/orgs/{org}/organization-roles/{role_id}": { + /** + * Get an organization role + * @description Gets an organization role that is available to this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/get-org-role"]; + /** + * Delete a custom organization role. + * @description Deletes a custom organization role. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/delete-custom-organization-role"]; + /** + * Update a custom organization role + * @description Updates an existing custom organization role. Permission changes will apply to all assignees. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + patch: operations["orgs/patch-custom-organization-role"]; + }; + "/orgs/{org}/organization-roles/{role_id}/teams": { + /** + * List teams that are assigned to an organization role + * @description Lists the teams that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/list-org-role-teams"]; + }; + "/orgs/{org}/organization-roles/{role_id}/users": { + /** + * List users that are assigned to an organization role + * @description Lists organization members that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/list-org-role-users"]; + }; + "/orgs/{org}/outside_collaborators": { + /** + * List outside collaborators for an organization + * @description List all users who are outside collaborators of an organization. + */ + get: operations["orgs/list-outside-collaborators"]; + }; + "/orgs/{org}/outside_collaborators/{username}": { + /** + * Convert an organization member to outside collaborator + * @description When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://docs.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". Converting an organization member to an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + */ + put: operations["orgs/convert-member-to-outside-collaborator"]; + /** + * Remove outside collaborator from an organization + * @description Removing a user from this list will remove them from all the organization's repositories. + */ + delete: operations["orgs/remove-outside-collaborator"]; + }; + "/orgs/{org}/packages": { + /** + * List packages for an organization + * @description Lists packages in an organization readable by the user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/list-packages-for-organization"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}": { + /** + * Get a package for an organization + * @description Gets a specific package in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-for-organization"]; + /** + * Delete a package for an organization + * @description Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-for-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/restore": { + /** + * Restore a package for an organization + * @description Restores an entire package in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-for-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/versions": { + /** + * List package versions for a package owned by an organization + * @description Lists package versions for a package owned by an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-all-package-versions-for-package-owned-by-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": { + /** + * Get a package version for an organization + * @description Gets a specific package version in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-version-for-organization"]; + /** + * Delete package version for an organization + * @description Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-version-for-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + /** + * Restore package version for an organization + * @description Restores a specific package version in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-version-for-org"]; + }; + "/orgs/{org}/personal-access-token-requests": { + /** + * List requests to access organization resources with fine-grained personal access tokens + * @description Lists requests from organization members to access organization resources with a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + get: operations["orgs/list-pat-grant-requests"]; + /** + * Review requests to access organization resources with fine-grained personal access tokens + * @description Approves or denies multiple pending requests to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + post: operations["orgs/review-pat-grant-requests-in-bulk"]; + }; + "/orgs/{org}/personal-access-token-requests/{pat_request_id}": { + /** + * Review a request to access organization resources with a fine-grained personal access token + * @description Approves or denies a pending request to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + post: operations["orgs/review-pat-grant-request"]; + }; + "/orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories": { + /** + * List repositories requested to be accessed by a fine-grained personal access token + * @description Lists the repositories a fine-grained personal access token request is requesting access to. + * + * Only GitHub Apps can use this endpoint. + */ + get: operations["orgs/list-pat-grant-request-repositories"]; + }; + "/orgs/{org}/personal-access-tokens": { + /** + * List fine-grained personal access tokens with access to organization resources + * @description Lists approved fine-grained personal access tokens owned by organization members that can access organization resources. + * + * Only GitHub Apps can use this endpoint. + */ + get: operations["orgs/list-pat-grants"]; + /** + * Update the access to organization resources via fine-grained personal access tokens + * @description Updates the access organization members have to organization resources via fine-grained personal access tokens. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + post: operations["orgs/update-pat-accesses"]; + }; + "/orgs/{org}/personal-access-tokens/{pat_id}": { + /** + * Update the access a fine-grained personal access token has to organization resources + * @description Updates the access an organization member has to organization resources via a fine-grained personal access token. Limited to revoking the token's existing access. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + post: operations["orgs/update-pat-access"]; + }; + "/orgs/{org}/personal-access-tokens/{pat_id}/repositories": { + /** + * List repositories a fine-grained personal access token has access to + * @description Lists the repositories a fine-grained personal access token has access to. + * + * Only GitHub Apps can use this endpoint. + */ + get: operations["orgs/list-pat-grant-repositories"]; + }; + "/orgs/{org}/projects": { + /** + * List organization projects + * @description Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + get: operations["projects/list-for-org"]; + /** + * Create an organization project + * @description Creates an organization project board. Returns a `410 Gone` status if projects are disabled in the organization or if the organization does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + post: operations["projects/create-for-org"]; + }; + "/orgs/{org}/properties/schema": { + /** + * Get all custom properties for an organization + * @description Gets all custom properties defined for an organization. + * Organization members can read these properties. + */ + get: operations["orgs/get-all-custom-properties"]; + /** + * Create or update custom properties for an organization + * @description Creates new or updates existing custom properties defined for an organization in a batch. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + patch: operations["orgs/create-or-update-custom-properties"]; + }; + "/orgs/{org}/properties/schema/{custom_property_name}": { + /** + * Get a custom property for an organization + * @description Gets a custom property that is defined for an organization. + * Organization members can read these properties. + */ + get: operations["orgs/get-custom-property"]; + /** + * Create or update a custom property for an organization + * @description Creates a new or updates an existing custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + put: operations["orgs/create-or-update-custom-property"]; + /** + * Remove a custom property for an organization + * @description Removes a custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + delete: operations["orgs/remove-custom-property"]; + }; + "/orgs/{org}/properties/values": { + /** + * List custom property values for organization repositories + * @description Lists organization repositories with all of their custom property values. + * Organization members can read these properties. + */ + get: operations["orgs/list-custom-properties-values-for-repos"]; + /** + * Create or update custom property values for organization repositories + * @description Create new or update existing custom property values for repositories in a batch that belong to an organization. + * Each target repository will have its custom property values updated to match the values provided in the request. + * + * A maximum of 30 repositories can be updated in a single request. + * + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_values_editor` in the organization. + */ + patch: operations["orgs/create-or-update-custom-properties-values-for-repos"]; + }; + "/orgs/{org}/public_members": { + /** + * List public organization members + * @description Members of an organization can choose to have their membership publicized or not. + */ + get: operations["orgs/list-public-members"]; + }; + "/orgs/{org}/public_members/{username}": { + /** + * Check public organization membership for a user + * @description Check if the provided user is a public member of the organization. + */ + get: operations["orgs/check-public-membership-for-user"]; + /** + * Set public organization membership for the authenticated user + * @description The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["orgs/set-public-membership-for-authenticated-user"]; + /** + * Remove public organization membership for the authenticated user + * @description Removes the public membership for the authenticated user from the specified organization, unless public visibility is enforced by default. + */ + delete: operations["orgs/remove-public-membership-for-authenticated-user"]; + }; + "/orgs/{org}/repos": { + /** + * List organization repositories + * @description Lists repositories for the specified organization. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + get: operations["repos/list-for-org"]; + /** + * Create an organization repository + * @description Creates a new repository in the specified organization. The authenticated user must be a member of the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + post: operations["repos/create-in-org"]; + }; + "/orgs/{org}/rulesets": { + /** + * Get all organization repository rulesets + * @description Get all the repository rulesets for an organization. + */ + get: operations["repos/get-org-rulesets"]; + /** + * Create an organization repository ruleset + * @description Create a repository ruleset for an organization. + */ + post: operations["repos/create-org-ruleset"]; + }; + "/orgs/{org}/rulesets/rule-suites": { + /** + * List organization rule suites + * @description Lists suites of rule evaluations at the organization level. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + get: operations["repos/get-org-rule-suites"]; + }; + "/orgs/{org}/rulesets/rule-suites/{rule_suite_id}": { + /** + * Get an organization rule suite + * @description Gets information about a suite of rule evaluations from within an organization. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + get: operations["repos/get-org-rule-suite"]; + }; + "/orgs/{org}/rulesets/{ruleset_id}": { + /** + * Get an organization repository ruleset + * @description Get a repository ruleset for an organization. + */ + get: operations["repos/get-org-ruleset"]; + /** + * Update an organization repository ruleset + * @description Update a ruleset for an organization. + */ + put: operations["repos/update-org-ruleset"]; + /** + * Delete an organization repository ruleset + * @description Delete a ruleset for an organization. + */ + delete: operations["repos/delete-org-ruleset"]; + }; + "/orgs/{org}/secret-scanning/alerts": { + /** + * List secret scanning alerts for an organization + * @description Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["secret-scanning/list-alerts-for-org"]; + }; + "/orgs/{org}/security-advisories": { + /** + * List repository security advisories for an organization + * @description Lists repository security advisories for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + get: operations["security-advisories/list-org-repository-advisories"]; + }; + "/orgs/{org}/security-managers": { + /** + * List security manager teams + * @description Lists teams that are security managers for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + get: operations["orgs/list-security-manager-teams"]; + }; + "/orgs/{org}/security-managers/teams/{team_slug}": { + /** + * Add a security manager team + * @description Adds a team as a security manager for an organization. For more information, see "[Managing security for an organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) for an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + put: operations["orgs/add-security-manager-team"]; + /** + * Remove a security manager team + * @description Removes the security manager role from a team for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) team from an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/remove-security-manager-team"]; + }; + "/orgs/{org}/settings/billing/actions": { + /** + * Get GitHub Actions billing for an organization + * @description Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + get: operations["billing/get-github-actions-billing-org"]; + }; + "/orgs/{org}/settings/billing/packages": { + /** + * Get GitHub Packages billing for an organization + * @description Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + get: operations["billing/get-github-packages-billing-org"]; + }; + "/orgs/{org}/settings/billing/shared-storage": { + /** + * Get shared storage billing for an organization + * @description Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + get: operations["billing/get-shared-storage-billing-org"]; + }; + "/orgs/{org}/team/{team_slug}/copilot/usage": { + /** + * Get a summary of Copilot usage for a team + * @description **Note**: This endpoint is in beta and is subject to change. + * + * You can use this endpoint to see a daily breakdown of aggregated usage metrics for Copilot completions and Copilot Chat in the IDE + * for users within a team, with a further breakdown of suggestions, acceptances, and number of active users by editor and language for each day. + * See the response schema tab for detailed metrics definitions. + * + * The response contains metrics for the prior 28 days. Usage metrics are processed once per day for the previous day, + * and the response will only include data up until yesterday. In order for an end user to be counted towards these metrics, + * they must have telemetry enabled in their IDE. + * + * **Note**: This endpoint will only return results for a given day if the team had five or more members on that day. + * + * Copilot Business or Copilot Enterprise organization owners for the organization that contains this team, + * and owners and billing managers of their parent enterprises, can view Copilot usage metrics for a team. + * + * OAuth app tokens and personal access tokens (classic) need the `copilot`, `manage_billing:copilot`, `admin:org`, `admin:enterprise`, or `manage_billing:enterprise` scope to use this endpoint. + */ + get: operations["copilot/usage-metrics-for-team"]; + }; + "/orgs/{org}/teams": { + /** + * List teams + * @description Lists all teams in an organization that are visible to the authenticated user. + */ + get: operations["teams/list"]; + /** + * Create a team + * @description To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://docs.github.com/articles/setting-team-creation-permissions-in-your-organization)." + * + * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/about-teams)". + */ + post: operations["teams/create"]; + }; + "/orgs/{org}/teams/{team_slug}": { + /** + * Get a team by name + * @description Gets a team using the team's `slug`. To create the `slug`, GitHub replaces special characters in the `name` string, changes all words to lowercase, and replaces spaces with a `-` separator. For example, `"My TEam Näme"` would become `my-team-name`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + */ + get: operations["teams/get-by-name"]; + /** + * Delete a team + * @description To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + */ + delete: operations["teams/delete-in-org"]; + /** + * Update a team + * @description To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + */ + patch: operations["teams/update-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions": { + /** + * List discussions + * @description List all discussions on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/list-discussions-in-org"]; + /** + * Create a discussion + * @description Creates a new discussion post on a team's page. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["teams/create-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": { + /** + * Get a discussion + * @description Get a specific discussion on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/get-discussion-in-org"]; + /** + * Delete a discussion + * @description Delete a discussion from a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["teams/delete-discussion-in-org"]; + /** + * Update a discussion + * @description Edits the title and body text of a discussion post. Only the parameters you provide are updated. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + patch: operations["teams/update-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": { + /** + * List discussion comments + * @description List all comments on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/list-discussion-comments-in-org"]; + /** + * Create a discussion comment + * @description Creates a new comment on a team discussion. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["teams/create-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": { + /** + * Get a discussion comment + * @description Get a specific comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/get-discussion-comment-in-org"]; + /** + * Delete a discussion comment + * @description Deletes a comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["teams/delete-discussion-comment-in-org"]; + /** + * Update a discussion comment + * @description Edits the body text of a discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + patch: operations["teams/update-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + /** + * List reactions for a team discussion comment + * @description List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["reactions/list-for-team-discussion-comment-in-org"]; + /** + * Create reaction for a team discussion comment + * @description Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["reactions/create-for-team-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}": { + /** + * Delete team discussion comment reaction + * @description **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["reactions/delete-for-team-discussion-comment"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": { + /** + * List reactions for a team discussion + * @description List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["reactions/list-for-team-discussion-in-org"]; + /** + * Create reaction for a team discussion + * @description Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["reactions/create-for-team-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}": { + /** + * Delete team discussion reaction + * @description **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["reactions/delete-for-team-discussion"]; + }; + "/orgs/{org}/teams/{team_slug}/invitations": { + /** + * List pending team invitations + * @description The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + */ + get: operations["teams/list-pending-invitations-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/members": { + /** + * List team members + * @description Team members will include the members of child teams. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + get: operations["teams/list-members-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/memberships/{username}": { + /** + * Get team membership for a user + * @description Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + */ + get: operations["teams/get-membership-for-user-in-org"]; + /** + * Add or update team membership for a user + * @description Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + put: operations["teams/add-or-update-membership-for-user-in-org"]; + /** + * Remove team membership for a user + * @description To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + delete: operations["teams/remove-membership-for-user-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/projects": { + /** + * List team projects + * @description Lists the organization projects for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. + */ + get: operations["teams/list-projects-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/projects/{project_id}": { + /** + * Check team permissions for a project + * @description Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + get: operations["teams/check-permissions-for-project-in-org"]; + /** + * Add or update team project permissions + * @description Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + put: operations["teams/add-or-update-project-permissions-in-org"]; + /** + * Remove a project from a team + * @description Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + delete: operations["teams/remove-project-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/repos": { + /** + * List team repositories + * @description Lists a team's repositories visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. + */ + get: operations["teams/list-repos-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": { + /** + * Check team permissions for a repository + * @description Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header. + * + * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. + * + * If the repository is private, you must have at least `read` permission for that repository, and your token must have the `repo` or `admin:org` scope. Otherwise, you will receive a `404 Not Found` response status. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + get: operations["teams/check-permissions-for-repo-in-org"]; + /** + * Add or update team repository permissions + * @description To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + * + * For more information about the permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + */ + put: operations["teams/add-or-update-repo-permissions-in-org"]; + /** + * Remove a repository from a team + * @description If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + delete: operations["teams/remove-repo-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/teams": { + /** + * List child teams + * @description Lists the child teams of the team specified by `{team_slug}`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. + */ + get: operations["teams/list-child-in-org"]; + }; + "/orgs/{org}/{security_product}/{enablement}": { + /** + * Enable or disable a security feature for an organization + * @description Enables or disables the specified security feature for all eligible repositories in an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an organization owner or be member of a team with the security manager role to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + post: operations["orgs/enable-or-disable-security-product-on-all-org-repos"]; + }; + "/projects/columns/cards/{card_id}": { + /** + * Get a project card + * @description Gets information about a project card. + */ + get: operations["projects/get-card"]; + /** + * Delete a project card + * @description Deletes a project card + */ + delete: operations["projects/delete-card"]; + /** Update an existing project card */ + patch: operations["projects/update-card"]; + }; + "/projects/columns/cards/{card_id}/moves": { + /** Move a project card */ + post: operations["projects/move-card"]; + }; + "/projects/columns/{column_id}": { + /** + * Get a project column + * @description Gets information about a project column. + */ + get: operations["projects/get-column"]; + /** + * Delete a project column + * @description Deletes a project column. + */ + delete: operations["projects/delete-column"]; + /** Update an existing project column */ + patch: operations["projects/update-column"]; + }; + "/projects/columns/{column_id}/cards": { + /** + * List project cards + * @description Lists the project cards in a project. + */ + get: operations["projects/list-cards"]; + /** Create a project card */ + post: operations["projects/create-card"]; + }; + "/projects/columns/{column_id}/moves": { + /** Move a project column */ + post: operations["projects/move-column"]; + }; + "/projects/{project_id}": { + /** + * Get a project + * @description Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + get: operations["projects/get"]; + /** + * Delete a project + * @description Deletes a project board. Returns a `404 Not Found` status if projects are disabled. + */ + delete: operations["projects/delete"]; + /** + * Update a project + * @description Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + patch: operations["projects/update"]; + }; + "/projects/{project_id}/collaborators": { + /** + * List project collaborators + * @description Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. + */ + get: operations["projects/list-collaborators"]; + }; + "/projects/{project_id}/collaborators/{username}": { + /** + * Add project collaborator + * @description Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. + */ + put: operations["projects/add-collaborator"]; + /** + * Remove user as a collaborator + * @description Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. + */ + delete: operations["projects/remove-collaborator"]; + }; + "/projects/{project_id}/collaborators/{username}/permission": { + /** + * Get project permission for a user + * @description Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. + */ + get: operations["projects/get-permission-for-user"]; + }; + "/projects/{project_id}/columns": { + /** + * List project columns + * @description Lists the project columns in a project. + */ + get: operations["projects/list-columns"]; + /** + * Create a project column + * @description Creates a new project column. + */ + post: operations["projects/create-column"]; + }; + "/rate_limit": { + /** + * Get rate limit status for the authenticated user + * @description **Note:** Accessing this endpoint does not count against your REST API rate limit. + * + * Some categories of endpoints have custom rate limits that are separate from the rate limit governing the other REST API endpoints. For this reason, the API response categorizes your rate limit. Under `resources`, you'll see objects relating to different categories: + * * The `core` object provides your rate limit status for all non-search-related resources in the REST API. + * * The `search` object provides your rate limit status for the REST API for searching (excluding code searches). For more information, see "[Search](https://docs.github.com/rest/search/search)." + * * The `code_search` object provides your rate limit status for the REST API for searching code. For more information, see "[Search code](https://docs.github.com/rest/search/search#search-code)." + * * The `graphql` object provides your rate limit status for the GraphQL API. For more information, see "[Resource limitations](https://docs.github.com/graphql/overview/resource-limitations#rate-limit)." + * * The `integration_manifest` object provides your rate limit status for the `POST /app-manifests/{code}/conversions` operation. For more information, see "[Creating a GitHub App from a manifest](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app-from-a-manifest#3-you-exchange-the-temporary-code-to-retrieve-the-app-configuration)." + * * The `dependency_snapshots` object provides your rate limit status for submitting snapshots to the dependency graph. For more information, see "[Dependency graph](https://docs.github.com/rest/dependency-graph)." + * * The `code_scanning_upload` object provides your rate limit status for uploading SARIF results to code scanning. For more information, see "[Uploading a SARIF file to GitHub](https://docs.github.com/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github)." + * * The `actions_runner_registration` object provides your rate limit status for registering self-hosted runners in GitHub Actions. For more information, see "[Self-hosted runners](https://docs.github.com/rest/actions/self-hosted-runners)." + * * The `source_import` object is no longer in use for any API endpoints, and it will be removed in the next API version. For more information about API versions, see "[API Versions](https://docs.github.com/rest/overview/api-versions)." + * + * **Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + */ + get: operations["rate-limit/get"]; + }; + "/repos/{owner}/{repo}": { + /** + * Get a repository + * @description The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + get: operations["repos/get"]; + /** + * Delete a repository + * @description Deleting a repository requires admin access. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned + * repositories, you will get a `403 Forbidden` response. + * + * OAuth app tokens and personal access tokens (classic) need the `delete_repo` scope to use this endpoint. + */ + delete: operations["repos/delete"]; + /** + * Update a repository + * @description **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/repos/repos#replace-all-repository-topics) endpoint. + */ + patch: operations["repos/update"]; + }; + "/repos/{owner}/{repo}/actions/artifacts": { + /** + * List artifacts for a repository + * @description Lists all artifacts for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-artifacts-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}": { + /** + * Get an artifact + * @description Gets a specific artifact for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-artifact"]; + /** + * Delete an artifact + * @description Deletes an artifact for a workflow run. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-artifact"]; + }; + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": { + /** + * Download an artifact + * @description Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + * the response header to find the URL for the download. The `:archive_format` must be `zip`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/download-artifact"]; + }; + "/repos/{owner}/{repo}/actions/cache/usage": { + /** + * Get GitHub Actions cache usage for a repository + * @description Gets GitHub Actions cache usage for a repository. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-actions-cache-usage"]; + }; + "/repos/{owner}/{repo}/actions/caches": { + /** + * List GitHub Actions caches for a repository + * @description Lists the GitHub Actions caches for a repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-actions-cache-list"]; + /** + * Delete GitHub Actions caches for a repository (using a cache key) + * @description Deletes one or more GitHub Actions caches for a repository, using a complete cache key. By default, all caches that match the provided key are deleted, but you can optionally provide a Git ref to restrict deletions to caches that match both the provided key and the Git ref. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-actions-cache-by-key"]; + }; + "/repos/{owner}/{repo}/actions/caches/{cache_id}": { + /** + * Delete a GitHub Actions cache for a repository (using a cache ID) + * @description Deletes a GitHub Actions cache for a repository, using a cache ID. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-actions-cache-by-id"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}": { + /** + * Get a job for a workflow run + * @description Gets a specific job in a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-job-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}/logs": { + /** + * Download job logs for a workflow run + * @description Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + * for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/download-job-logs-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun": { + /** + * Re-run a job from a workflow run + * @description Re-run a job and its dependent jobs in a workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/re-run-job-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/oidc/customization/sub": { + /** + * Get the customization template for an OIDC subject claim for a repository + * @description Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-custom-oidc-sub-claim-for-repo"]; + /** + * Set the customization template for an OIDC subject claim for a repository + * @description Sets the customization template and `opt-in` or `opt-out` flag for an OpenID Connect (OIDC) subject claim for a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-custom-oidc-sub-claim-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/organization-secrets": { + /** + * List repository organization secrets + * @description Lists all organization secrets shared with a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-repo-organization-secrets"]; + }; + "/repos/{owner}/{repo}/actions/organization-variables": { + /** + * List repository organization variables + * @description Lists all organization variables shared with a repository. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-repo-organization-variables"]; + }; + "/repos/{owner}/{repo}/actions/permissions": { + /** + * Get GitHub Actions permissions for a repository + * @description Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-github-actions-permissions-repository"]; + /** + * Set GitHub Actions permissions for a repository + * @description Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-github-actions-permissions-repository"]; + }; + "/repos/{owner}/{repo}/actions/permissions/access": { + /** + * Get the level of access for workflows outside of the repository + * @description Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-workflow-access-to-repository"]; + /** + * Set the level of access for workflows outside of the repository + * @description Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-workflow-access-to-repository"]; + }; + "/repos/{owner}/{repo}/actions/permissions/selected-actions": { + /** + * Get allowed actions and reusable workflows for a repository + * @description Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-allowed-actions-repository"]; + /** + * Set allowed actions and reusable workflows for a repository + * @description Sets the actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-allowed-actions-repository"]; + }; + "/repos/{owner}/{repo}/actions/permissions/workflow": { + /** + * Get default workflow permissions for a repository + * @description Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, + * as well as if GitHub Actions can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-github-actions-default-workflow-permissions-repository"]; + /** + * Set default workflow permissions for a repository + * @description Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, and sets if GitHub Actions + * can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-github-actions-default-workflow-permissions-repository"]; + }; + "/repos/{owner}/{repo}/actions/runners": { + /** + * List self-hosted runners for a repository + * @description Lists all self-hosted runners configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-self-hosted-runners-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/downloads": { + /** + * List runner applications for a repository + * @description Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-runner-applications-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/generate-jitconfig": { + /** + * Create configuration for a just-in-time runner for a repository + * @description Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the repository. + * + * OAuth tokens and personal access tokens (classic) need the`repo` scope to use this endpoint. + */ + post: operations["actions/generate-runner-jitconfig-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/registration-token": { + /** + * Create a registration token for a repository + * @description Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-registration-token-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/remove-token": { + /** + * Create a remove token for a repository + * @description Returns a token that you can pass to the `config` script to remove a self-hosted runner from an repository. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-remove-token-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/{runner_id}": { + /** + * Get a self-hosted runner for a repository + * @description Gets a specific self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-self-hosted-runner-for-repo"]; + /** + * Delete a self-hosted runner from a repository + * @description Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-self-hosted-runner-from-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels": { + /** + * List labels for a self-hosted runner for a repository + * @description Lists all labels for a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-labels-for-self-hosted-runner-for-repo"]; + /** + * Set custom labels for a self-hosted runner for a repository + * @description Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-custom-labels-for-self-hosted-runner-for-repo"]; + /** + * Add custom labels to a self-hosted runner for a repository + * @description Adds custom labels to a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/add-custom-labels-to-self-hosted-runner-for-repo"]; + /** + * Remove all custom labels from a self-hosted runner for a repository + * @description Remove all custom labels from a self-hosted runner configured in a + * repository. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/remove-all-custom-labels-from-self-hosted-runner-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}": { + /** + * Remove a custom label from a self-hosted runner for a repository + * @description Remove a custom label from a self-hosted runner configured + * in a repository. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/remove-custom-label-from-self-hosted-runner-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runs": { + /** + * List workflow runs for a repository + * @description Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * This API will return up to 1,000 results for each search when using the following parameters: `actor`, `branch`, `check_suite_id`, `created`, `event`, `head_sha`, `status`. + */ + get: operations["actions/list-workflow-runs-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}": { + /** + * Get a workflow run + * @description Gets a specific workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow-run"]; + /** + * Delete a workflow run + * @description Deletes a specific workflow run. + * + * Anyone with write access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/approvals": { + /** + * Get the review history for a workflow run + * @description Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-reviews-for-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/approve": { + /** + * Approve a workflow run for a fork pull request + * @description Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see ["Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/approve-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": { + /** + * List workflow run artifacts + * @description Lists artifacts for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-workflow-run-artifacts"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}": { + /** + * Get a workflow run attempt + * @description Gets a specific workflow run attempt. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow-run-attempt"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": { + /** + * List jobs for a workflow run attempt + * @description Lists jobs for a specific workflow run attempt. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-jobs-for-workflow-run-attempt"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs": { + /** + * Download workflow run attempt logs + * @description Gets a redirect URL to download an archive of log files for a specific workflow run attempt. This link expires after + * 1 minute. Look for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/download-workflow-run-attempt-logs"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/cancel": { + /** + * Cancel a workflow run + * @description Cancels a workflow run using its `id`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/cancel-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule": { + /** + * Review custom deployment protection rules for a workflow run + * @description Approve or reject custom deployment protection rules provided by a GitHub App for a workflow run. For more information, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * **Note:** GitHub Apps can only review their own custom deployment protection rules. + * To approve or reject pending deployments that are waiting for review from a specific person or team, see [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + post: operations["actions/review-custom-gates-for-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel": { + /** + * Force cancel a workflow run + * @description Cancels a workflow run and bypasses conditions that would otherwise cause a workflow execution to continue, such as an `always()` condition on a job. + * You should only use this endpoint to cancel a workflow run when the workflow run is not responding to [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel`](/rest/actions/workflow-runs#cancel-a-workflow-run). + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/force-cancel-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/jobs": { + /** + * List jobs for a workflow run + * @description Lists jobs for a workflow run. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-jobs-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/logs": { + /** + * Download workflow run logs + * @description Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for + * `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/download-workflow-run-logs"]; + /** + * Delete workflow run logs + * @description Deletes all logs for a workflow run. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-workflow-run-logs"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": { + /** + * Get pending deployments for a workflow run + * @description Get all deployment environments for a workflow run that are waiting for protection rules to pass. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-pending-deployments-for-run"]; + /** + * Review pending deployments for a workflow run + * @description Approve or reject pending deployments that are waiting on approval by a required reviewer. + * + * Required reviewers with read access to the repository contents and deployments can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/review-pending-deployments-for-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun": { + /** + * Re-run a workflow + * @description Re-runs your workflow run using its `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/re-run-workflow"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs": { + /** + * Re-run failed jobs from a workflow run + * @description Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/re-run-workflow-failed-jobs"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/timing": { + /** + * Get workflow run usage + * @description Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow-run-usage"]; + }; + "/repos/{owner}/{repo}/actions/secrets": { + /** + * List repository secrets + * @description Lists all secrets available in a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-repo-secrets"]; + }; + "/repos/{owner}/{repo}/actions/secrets/public-key": { + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-repo-public-key"]; + }; + "/repos/{owner}/{repo}/actions/secrets/{secret_name}": { + /** + * Get a repository secret + * @description Gets a single repository secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-repo-secret"]; + /** + * Create or update a repository secret + * @description Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/create-or-update-repo-secret"]; + /** + * Delete a repository secret + * @description Deletes a secret in a repository using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-repo-secret"]; + }; + "/repos/{owner}/{repo}/actions/variables": { + /** + * List repository variables + * @description Lists all repository variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-repo-variables"]; + /** + * Create a repository variable + * @description Creates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-repo-variable"]; + }; + "/repos/{owner}/{repo}/actions/variables/{name}": { + /** + * Get a repository variable + * @description Gets a specific variable in a repository. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-repo-variable"]; + /** + * Delete a repository variable + * @description Deletes a repository variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-repo-variable"]; + /** + * Update a repository variable + * @description Updates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + patch: operations["actions/update-repo-variable"]; + }; + "/repos/{owner}/{repo}/actions/workflows": { + /** + * List repository workflows + * @description Lists the workflows in a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-repo-workflows"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}": { + /** + * Get a workflow + * @description Gets a specific workflow. You can replace `workflow_id` with the workflow + * file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": { + /** + * Disable a workflow + * @description Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/disable-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": { + /** + * Create a workflow dispatch event + * @description You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-workflow-dispatch"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": { + /** + * Enable a workflow + * @description Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/enable-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": { + /** + * List workflow runs for a workflow + * @description List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-workflow-runs"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": { + /** + * Get workflow usage + * @description Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow-usage"]; + }; + "/repos/{owner}/{repo}/activity": { + /** + * List repository activities + * @description Lists a detailed history of changes to a repository, such as pushes, merges, force pushes, and branch changes, and associates these changes with commits and users. + * + * For more information about viewing repository activity, + * see "[Viewing activity and data for your repository](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository)." + */ + get: operations["repos/list-activities"]; + }; + "/repos/{owner}/{repo}/assignees": { + /** + * List assignees + * @description Lists the [available assignees](https://docs.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. + */ + get: operations["issues/list-assignees"]; + }; + "/repos/{owner}/{repo}/assignees/{assignee}": { + /** + * Check if a user can be assigned + * @description Checks if a user has permission to be assigned to an issue in this repository. + * + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + get: operations["issues/check-user-can-be-assigned"]; + }; + "/repos/{owner}/{repo}/autolinks": { + /** + * Get all autolinks of a repository + * @description Gets all autolinks that are configured for a repository. + * + * Information about autolinks are only available to repository administrators. + */ + get: operations["repos/list-autolinks"]; + /** + * Create an autolink reference for a repository + * @description Users with admin access to the repository can create an autolink. + */ + post: operations["repos/create-autolink"]; + }; + "/repos/{owner}/{repo}/autolinks/{autolink_id}": { + /** + * Get an autolink reference of a repository + * @description This returns a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + get: operations["repos/get-autolink"]; + /** + * Delete an autolink reference from a repository + * @description This deletes a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + delete: operations["repos/delete-autolink"]; + }; + "/repos/{owner}/{repo}/automated-security-fixes": { + /** + * Check if automated security fixes are enabled for a repository + * @description Shows whether automated security fixes are enabled, disabled or paused for a repository. The authenticated user must have admin read access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + get: operations["repos/check-automated-security-fixes"]; + /** + * Enable automated security fixes + * @description Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + put: operations["repos/enable-automated-security-fixes"]; + /** + * Disable automated security fixes + * @description Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + delete: operations["repos/disable-automated-security-fixes"]; + }; + "/repos/{owner}/{repo}/branches": { + /** List branches */ + get: operations["repos/list-branches"]; + }; + "/repos/{owner}/{repo}/branches/{branch}": { + /** Get a branch */ + get: operations["repos/get-branch"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection": { + /** + * Get branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-branch-protection"]; + /** + * Update branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * + * **Note**: The list of users, apps, and teams in total is limited to 100 items. + */ + put: operations["repos/update-branch-protection"]; + /** + * Delete branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + delete: operations["repos/delete-branch-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": { + /** + * Get admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-admin-branch-protection"]; + /** + * Set admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + post: operations["repos/set-admin-branch-protection"]; + /** + * Delete admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + delete: operations["repos/delete-admin-branch-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": { + /** + * Get pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-pull-request-review-protection"]; + /** + * Delete pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + delete: operations["repos/delete-pull-request-review-protection"]; + /** + * Update pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + */ + patch: operations["repos/update-pull-request-review-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": { + /** + * Get commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://docs.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * + * **Note**: You must enable branch protection to require signed commits. + */ + get: operations["repos/get-commit-signature-protection"]; + /** + * Create commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + */ + post: operations["repos/create-commit-signature-protection"]; + /** + * Delete commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + */ + delete: operations["repos/delete-commit-signature-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": { + /** + * Get status checks protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-status-checks-protection"]; + /** + * Remove status check protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + delete: operations["repos/remove-status-check-protection"]; + /** + * Update status check protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + */ + patch: operations["repos/update-status-check-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": { + /** + * Get all status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-all-status-check-contexts"]; + /** + * Set status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + put: operations["repos/set-status-check-contexts"]; + /** + * Add status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + post: operations["repos/add-status-check-contexts"]; + /** + * Remove status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + delete: operations["repos/remove-status-check-contexts"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions": { + /** + * Get access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists who has access to this protected branch. + * + * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + */ + get: operations["repos/get-access-restrictions"]; + /** + * Delete access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Disables the ability to restrict who can push to this branch. + */ + delete: operations["repos/delete-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": { + /** + * Get apps with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + get: operations["repos/get-apps-with-access-to-protected-branch"]; + /** + * Set app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + put: operations["repos/set-app-access-restrictions"]; + /** + * Add app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified apps push access for this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + post: operations["repos/add-app-access-restrictions"]; + /** + * Remove app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of an app to push to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + delete: operations["repos/remove-app-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": { + /** + * Get teams with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. The list includes child teams. + */ + get: operations["repos/get-teams-with-access-to-protected-branch"]; + /** + * Set team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + */ + put: operations["repos/set-team-access-restrictions"]; + /** + * Add team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified teams push access for this branch. You can also give push access to child teams. + */ + post: operations["repos/add-team-access-restrictions"]; + /** + * Remove team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + */ + delete: operations["repos/remove-team-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": { + /** + * Get users with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + */ + get: operations["repos/get-users-with-access-to-protected-branch"]; + /** + * Set user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + put: operations["repos/set-user-access-restrictions"]; + /** + * Add user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified people push access for this branch. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + post: operations["repos/add-user-access-restrictions"]; + /** + * Remove user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a user to push to this branch. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + delete: operations["repos/remove-user-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/rename": { + /** + * Rename a branch + * @description Renames a branch in a repository. + * + * **Note:** Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)". + * + * The authenticated user must have push access to the branch. If the branch is the default branch, the authenticated user must also have admin or owner permissions. + * + * In order to rename the default branch, fine-grained access tokens also need the `administration:write` repository permission. + */ + post: operations["repos/rename-branch"]; + }; + "/repos/{owner}/{repo}/check-runs": { + /** + * Create a check run + * @description **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + * + * In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. + */ + post: operations["checks/create"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}": { + /** + * Get a check run + * @description Gets a single check run using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/get"]; + /** + * Update a check run + * @description Updates a check run for a specific commit in a repository. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + patch: operations["checks/update"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": { + /** + * List check run annotations + * @description Lists annotations for a check run using the annotation `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/list-annotations"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest": { + /** + * Rerequest a check run + * @description Triggers GitHub to rerequest an existing check run, without pushing new code to a repository. This endpoint will trigger the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) event with the action `rerequested`. When a check run is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * For more information about how to re-run GitHub Actions jobs, see "[Re-run a job from a workflow run](https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run)". + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + post: operations["checks/rerequest-run"]; + }; + "/repos/{owner}/{repo}/check-suites": { + /** + * Create a check suite + * @description Creates a check suite manually. By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/checks/runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites)". + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + post: operations["checks/create-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/preferences": { + /** + * Update repository preferences for check suites + * @description Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/checks/suites#create-a-check-suite). + * You must have admin permissions in the repository to set preferences for check suites. + */ + patch: operations["checks/set-suites-preferences"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}": { + /** + * Get a check suite + * @description Gets a single check suite using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/get-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": { + /** + * List check runs in a check suite + * @description Lists check runs for a check suite using its `id`. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/list-for-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": { + /** + * Rerequest a check suite + * @description Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + post: operations["checks/rerequest-suite"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts": { + /** + * List code scanning alerts for a repository + * @description Lists all open code scanning alerts for the default branch (usually `main` + * or `master`). You must use an access token with the `security_events` scope to use + * this endpoint with private repos, the `public_repo` scope also grants permission to read + * security events on public repos only. GitHub Apps must have the `security_events` read + * permission to use this endpoint. + * + * The response includes a `most_recent_instance` object. + * This provides details of the most recent instance of this alert + * for the default branch or for the specified Git reference + * (if you used `ref` in the request). + */ + get: operations["code-scanning/list-alerts-for-repo"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": { + /** + * Get a code scanning alert + * @description Gets a single code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-alert"]; + /** + * Update a code scanning alert + * @description Updates the status of a single code scanning alert. + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + patch: operations["code-scanning/update-alert"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": { + /** + * List instances of a code scanning alert + * @description Lists all instances of the specified code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/list-alert-instances"]; + }; + "/repos/{owner}/{repo}/code-scanning/analyses": { + /** + * List code scanning analyses for a repository + * @description Lists the details of all code scanning analyses for a repository, + * starting with the most recent. + * The response is paginated and you can use the `page` and `per_page` parameters + * to list the analyses you're interested in. + * By default 30 analyses are listed per page. + * + * The `rules_count` field in the response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * **Deprecation notice**: + * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/list-recent-analyses"]; + }; + "/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}": { + /** + * Get a code scanning analysis for a repository + * @description Gets a specified code scanning analysis for a repository. + * + * The default JSON response contains fields that describe the analysis. + * This includes the Git reference and commit SHA to which the analysis relates, + * the datetime of the analysis, the name of the code scanning tool, + * and the number of alerts. + * + * The `rules_count` field in the default response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/sarif+json`**: Instead of returning a summary of the analysis, this endpoint returns a subset of the analysis data that was uploaded. The data is formatted as [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). It also returns additional data such as the `github/alertNumber` and `github/alertUrl` properties. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-analysis"]; + /** + * Delete a code scanning analysis from a repository + * @description Deletes a specified code scanning analysis from a repository. + * + * You can delete one analysis at a time. + * To delete a series of analyses, start with the most recent analysis and work backwards. + * Conceptually, the process is similar to the undo function in a text editor. + * + * When you list the analyses for a repository, + * one or more will be identified as deletable in the response: + * + * ``` + * "deletable": true + * ``` + * + * An analysis is deletable when it's the most recent in a set of analyses. + * Typically, a repository will have multiple sets of analyses + * for each enabled code scanning tool, + * where a set is determined by a unique combination of analysis values: + * + * * `ref` + * * `tool` + * * `category` + * + * If you attempt to delete an analysis that is not the most recent in a set, + * you'll get a 400 response with the message: + * + * ``` + * Analysis specified is not deletable. + * ``` + * + * The response from a successful `DELETE` operation provides you with + * two alternative URLs for deleting the next analysis in the set: + * `next_analysis_url` and `confirm_delete_url`. + * Use the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis + * in a set. This is a useful option if you want to preserve at least one analysis + * for the specified tool in your repository. + * Use the `confirm_delete_url` URL if you are content to remove all analyses for a tool. + * When you delete the last analysis in a set, the value of `next_analysis_url` and `confirm_delete_url` + * in the 200 response is `null`. + * + * As an example of the deletion process, + * let's imagine that you added a workflow that configured a particular code scanning tool + * to analyze the code in a repository. This tool has added 15 analyses: + * 10 on the default branch, and another 5 on a topic branch. + * You therefore have two separate sets of analyses for this tool. + * You've now decided that you want to remove all of the analyses for the tool. + * To do this you must make 15 separate deletion requests. + * To start, you must find an analysis that's identified as deletable. + * Each set of analyses always has one that's identified as deletable. + * Having found the deletable analysis for one of the two sets, + * delete this analysis and then continue deleting the next analysis in the set until they're all deleted. + * Then repeat the process for the second set. + * The procedure therefore consists of a nested loop: + * + * **Outer loop**: + * * List the analyses for the repository, filtered by tool. + * * Parse this list to find a deletable analysis. If found: + * + * **Inner loop**: + * * Delete the identified analysis. + * * Parse the response for the value of `confirm_delete_url` and, if found, use this in the next iteration. + * + * The above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + delete: operations["code-scanning/delete-analysis"]; + }; + "/repos/{owner}/{repo}/code-scanning/codeql/databases": { + /** + * List CodeQL databases for a repository + * @description Lists the CodeQL databases that are available in a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/list-codeql-databases"]; + }; + "/repos/{owner}/{repo}/code-scanning/codeql/databases/{language}": { + /** + * Get a CodeQL database for a repository + * @description Gets a CodeQL database for a language in a repository. + * + * By default this endpoint returns JSON metadata about the CodeQL database. To + * download the CodeQL database binary content, set the `Accept` header of the request + * to [`application/zip`](https://docs.github.com/rest/overview/media-types), and make sure + * your HTTP client is configured to follow redirects or use the `Location` header + * to make a second request to get the redirect URL. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-codeql-database"]; + }; + "/repos/{owner}/{repo}/code-scanning/default-setup": { + /** + * Get a code scanning default setup configuration + * @description Gets a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-default-setup"]; + /** + * Update a code scanning default setup configuration + * @description Updates a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + patch: operations["code-scanning/update-default-setup"]; + }; + "/repos/{owner}/{repo}/code-scanning/sarifs": { + /** + * Upload an analysis as SARIF data + * @description Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. For troubleshooting information, see "[Troubleshooting SARIF uploads](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif)." + * + * There are two places where you can upload code scanning results. + * - If you upload to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)." + * - If you upload to a branch, for example `--ref refs/heads/my-branch`, then the results appear in the **Security** tab for your repository. For more information, see "[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)." + * + * You must compress the SARIF-formatted analysis data that you want to upload, using `gzip`, and then encode it as a Base64 format string. For example: + * + * ``` + * gzip -c analysis-data.sarif | base64 -w0 + * ``` + * + * SARIF upload supports a maximum number of entries per the following data objects, and an analysis will be rejected if any of these objects is above its maximum value. For some objects, there are additional values over which the entries will be ignored while keeping the most important entries whenever applicable. + * To get the most out of your analysis when it includes data above the supported limits, try to optimize the analysis configuration. For example, for the CodeQL tool, identify and remove the most noisy queries. For more information, see "[SARIF results exceed one or more limits](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif/results-exceed-limit)." + * + * + * | **SARIF data** | **Maximum values** | **Additional limits** | + * |----------------------------------|:------------------:|----------------------------------------------------------------------------------| + * | Runs per file | 20 | | + * | Results per run | 25,000 | Only the top 5,000 results will be included, prioritized by severity. | + * | Rules per run | 25,000 | | + * | Tool extensions per run | 100 | | + * | Thread Flow Locations per result | 10,000 | Only the top 1,000 Thread Flow Locations will be included, using prioritization. | + * | Location per result | 1,000 | Only 100 locations will be included. | + * | Tags per rule | 20 | Only 10 tags will be included. | + * + * + * The `202 Accepted` response includes an `id` value. + * You can use this ID to check the status of the upload by using it in the `/sarifs/{sarif_id}` endpoint. + * For more information, see "[Get information about a SARIF upload](/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + post: operations["code-scanning/upload-sarif"]; + }; + "/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}": { + /** + * Get information about a SARIF upload + * @description Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see "[Get a code scanning analysis for a repository](/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository)." + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-sarif"]; + }; + "/repos/{owner}/{repo}/codeowners/errors": { + /** + * List CODEOWNERS errors + * @description List any syntax errors that are detected in the CODEOWNERS + * file. + * + * For more information about the correct CODEOWNERS syntax, + * see "[About code owners](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)." + */ + get: operations["repos/codeowners-errors"]; + }; + "/repos/{owner}/{repo}/codespaces": { + /** + * List codespaces in a repository for the authenticated user + * @description Lists the codespaces associated to a specified repository and the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/list-in-repository-for-authenticated-user"]; + /** + * Create a codespace in a repository + * @description Creates a codespace owned by the authenticated user in the specified repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/create-with-repo-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/devcontainers": { + /** + * List devcontainer configurations in a repository for the authenticated user + * @description Lists the devcontainer.json files associated with a specified repository and the authenticated user. These files + * specify launchpoint configurations for codespaces created within the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/list-devcontainers-in-repository-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/machines": { + /** + * List available machine types for a repository + * @description List the machine types available for a given repository based on its configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/repo-machines-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/new": { + /** + * Get default attributes for a codespace + * @description Gets the default attributes for codespaces created by the user with the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/pre-flight-with-repo-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/permissions_check": { + /** + * Check if permissions defined by a devcontainer have been accepted by the authenticated user + * @description Checks whether the permissions defined by a given devcontainer configuration have been accepted by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/check-permissions-for-devcontainer"]; + }; + "/repos/{owner}/{repo}/codespaces/secrets": { + /** + * List repository secrets + * @description Lists all development environment secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["codespaces/list-repo-secrets"]; + }; + "/repos/{owner}/{repo}/codespaces/secrets/public-key": { + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["codespaces/get-repo-public-key"]; + }; + "/repos/{owner}/{repo}/codespaces/secrets/{secret_name}": { + /** + * Get a repository secret + * @description Gets a single repository development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["codespaces/get-repo-secret"]; + /** + * Create or update a repository secret + * @description Creates or updates a repository development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["codespaces/create-or-update-repo-secret"]; + /** + * Delete a repository secret + * @description Deletes a development environment secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["codespaces/delete-repo-secret"]; + }; + "/repos/{owner}/{repo}/collaborators": { + /** + * List repository collaborators + * @description For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * Organization members with write, maintain, or admin privileges on the organization-owned repository can use this endpoint. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + get: operations["repos/list-collaborators"]; + }; + "/repos/{owner}/{repo}/collaborators/{username}": { + /** + * Check if a user is a repository collaborator + * @description For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + get: operations["repos/check-collaborator"]; + /** + * Add a repository collaborator + * @description This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Adding an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + * + * For more information on permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with: + * + * ``` + * Cannot assign {member} permission of {role name} + * ``` + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [API](https://docs.github.com/rest/collaborators/invitations). + * + * **Updating an existing collaborator's permission level** + * + * The endpoint can also be used to change the permissions of an existing collaborator without first removing and re-adding the collaborator. To change the permissions, use the same endpoint and pass a different `permission` parameter. The response will be a `204`, with no other indication that the permission level changed. + * + * **Rate limits** + * + * You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + */ + put: operations["repos/add-collaborator"]; + /** + * Remove a repository collaborator + * @description Removes a collaborator from a repository. + * + * To use this endpoint, the authenticated user must either be an administrator of the repository or target themselves for removal. + * + * This endpoint also: + * - Cancels any outstanding invitations + * - Unasigns the user from any issues + * - Removes access to organization projects if the user is not an organization member and is not a collaborator on any other organization repositories. + * - Unstars the repository + * - Updates access permissions to packages + * + * Removing a user as a collaborator has the following effects on forks: + * - If the user had access to a fork through their membership to this repository, the user will also be removed from the fork. + * - If the user had their own fork of the repository, the fork will be deleted. + * - If the user still has read access to the repository, open pull requests by this user from a fork will be denied. + * + * **Note**: A user can still have access to the repository through organization permissions like base repository permissions. + * + * Although the API responds immediately, the additional permission updates might take some extra time to complete in the background. + * + * For more information on fork permissions, see "[About permissions and visibility of forks](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks)". + */ + delete: operations["repos/remove-collaborator"]; + }; + "/repos/{owner}/{repo}/collaborators/{username}/permission": { + /** + * Get repository permissions for a user + * @description Checks the repository permission of a collaborator. The possible repository + * permissions are `admin`, `write`, `read`, and `none`. + * + * *Note*: The `permission` attribute provides the legacy base roles of `admin`, `write`, `read`, and `none`, where the + * `maintain` role is mapped to `write` and the `triage` role is mapped to `read`. To determine the role assigned to the + * collaborator, see the `role_name` attribute, which will provide the full role name, including custom roles. The + * `permissions` hash can also be used to determine which base level of access the collaborator has to the repository. + */ + get: operations["repos/get-collaborator-permission-level"]; + }; + "/repos/{owner}/{repo}/comments": { + /** + * List commit comments for a repository + * @description Lists the commit comments for a specified repository. Comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["repos/list-commit-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}": { + /** + * Get a commit comment + * @description Gets a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["repos/get-commit-comment"]; + /** Delete a commit comment */ + delete: operations["repos/delete-commit-comment"]; + /** + * Update a commit comment + * @description Updates the contents of a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + patch: operations["repos/update-commit-comment"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}/reactions": { + /** + * List reactions for a commit comment + * @description List the reactions to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + get: operations["reactions/list-for-commit-comment"]; + /** + * Create reaction for a commit comment + * @description Create a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). A response with an HTTP `200` status means that you already added the reaction type to this commit comment. + */ + post: operations["reactions/create-for-commit-comment"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": { + /** + * Delete a commit comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + delete: operations["reactions/delete-for-commit-comment"]; + }; + "/repos/{owner}/{repo}/commits": { + /** + * List commits + * @description **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/list-commits"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": { + /** + * List branches for HEAD commit + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + */ + get: operations["repos/list-branches-for-head-commit"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/comments": { + /** + * List commit comments + * @description Lists the comments for a specified commit. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["repos/list-comments-for-commit"]; + /** + * Create a commit comment + * @description Create a comment for a commit using its `:commit_sha`. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["repos/create-commit-comment"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/pulls": { + /** + * List pull requests associated with a commit + * @description Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, will only return open pull requests associated with the commit. + * + * To list the open or merged pull requests associated with a branch, you can set the `commit_sha` parameter to the branch name. + */ + get: operations["repos/list-pull-requests-associated-with-commit"]; + }; + "/repos/{owner}/{repo}/commits/{ref}": { + /** + * Get a commit + * @description Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * **Note:** If there are more than 300 files in the commit diff and the default JSON media type is requested, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." Pagination query parameters are not supported for these media types. + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.sha`**: Returns the commit's SHA-1 hash. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/get-commit"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/check-runs": { + /** + * List check runs for a Git reference + * @description Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * If there are more than 1000 check suites on a single git reference, this endpoint will limit check runs to the 1000 most recent check suites. To iterate over all possible check runs, use the [List check suites for a Git reference](https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference) endpoint and provide the `check_suite_id` parameter to the [List check runs in a check suite](https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite) endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/list-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/check-suites": { + /** + * List check suites for a Git reference + * @description Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/list-suites-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/status": { + /** + * Get the combined status for a specific reference + * @description Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + */ + get: operations["repos/get-combined-status-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/statuses": { + /** + * List commit statuses for a reference + * @description Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + */ + get: operations["repos/list-commit-statuses-for-ref"]; + }; + "/repos/{owner}/{repo}/community/profile": { + /** + * Get community profile metrics + * @description Returns all community profile metrics for a repository. The repository cannot be a fork. + * + * The returned metrics include an overall health score, the repository description, the presence of documentation, the + * detected code of conduct, the detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + * README, and CONTRIBUTING files. + * + * The `health_percentage` score is defined as a percentage of how many of + * the recommended community health files are present. For more information, see + * "[About community profiles for public repositories](https://docs.github.com/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories)." + * + * `content_reports_enabled` is only returned for organization-owned repositories. + */ + get: operations["repos/get-community-profile-metrics"]; + }; + "/repos/{owner}/{repo}/compare/{basehead}": { + /** + * Compare two commits + * @description Compares two commits against one another. You can compare refs (branches or tags) and commit SHAs in the same repository, or you can compare refs and commit SHAs that exist in different repositories within the same repository network, including fork branches. For more information about how to view a repository's network, see "[Understanding connections between repositories](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository/understanding-connections-between-repositories)." + * + * This endpoint is equivalent to running the `git log BASE..HEAD` command, but it returns commits in a different order. The `git log BASE..HEAD` command returns commits in reverse chronological order, whereas the API returns commits in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. + * + * The API response includes details about the files that were changed between the two commits. This includes the status of the change (if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * When calling this endpoint without any paging parameter (`per_page` or `page`), the returned list is limited to 250 commits, and the last commit in the list is the most recent of the entire comparison. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, use a query parameter (`per_page` or `page`) to paginate the results. When using pagination: + * + * - The list of changed files is only shown on the first page of results, but it includes all changed files for the entire comparison. + * - The results are returned in chronological order, but the last commit in the returned list may not be the most recent one in the entire set if there are more pages of results. + * + * For more information on working with pagination, see "[Using pagination in the REST API](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The `verification` object includes the following fields: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/compare-commits-with-basehead"]; + }; + "/repos/{owner}/{repo}/contents/{path}": { + /** + * Get repository content + * @description Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks. + * - **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * - **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects. + * + * If the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + * + * If the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself. + * + * If the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + * + * **Notes**: + * + * - To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree). + * - This API has an upper limit of 1,000 files for a directory. If you need to retrieve + * more files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree). + * - Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. + * - If the requested file's size is: + * - 1 MB or smaller: All features of this endpoint are supported. + * - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty + * string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * - Greater than 100 MB: This endpoint is not supported. + */ + get: operations["repos/get-content"]; + /** + * Create or update file contents + * @description Creates a new file or replaces an existing file in a repository. + * + * **Note:** If you use this endpoint and the "[Delete a file](https://docs.github.com/rest/repos/contents/#delete-a-file)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The `workflow` scope is also required in order to modify files in the `.github/workflows` directory. + */ + put: operations["repos/create-or-update-file-contents"]; + /** + * Delete a file + * @description Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + * + * **Note:** If you use this endpoint and the "[Create or update file contents](https://docs.github.com/rest/repos/contents/#create-or-update-file-contents)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + */ + delete: operations["repos/delete-file"]; + }; + "/repos/{owner}/{repo}/contributors": { + /** + * List repository contributors + * @description Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + */ + get: operations["repos/list-contributors"]; + }; + "/repos/{owner}/{repo}/dependabot/alerts": { + /** + * List Dependabot alerts for a repository + * @description OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["dependabot/list-alerts-for-repo"]; + }; + "/repos/{owner}/{repo}/dependabot/alerts/{alert_number}": { + /** + * Get a Dependabot alert + * @description OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["dependabot/get-alert"]; + /** + * Update a Dependabot alert + * @description The authenticated user must have access to security alerts for the repository to use this endpoint. For more information, see "[Granting access to security alerts](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + patch: operations["dependabot/update-alert"]; + }; + "/repos/{owner}/{repo}/dependabot/secrets": { + /** + * List repository secrets + * @description Lists all secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["dependabot/list-repo-secrets"]; + }; + "/repos/{owner}/{repo}/dependabot/secrets/public-key": { + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. Anyone with read access + * to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the repository is private. + */ + get: operations["dependabot/get-repo-public-key"]; + }; + "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}": { + /** + * Get a repository secret + * @description Gets a single repository secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["dependabot/get-repo-secret"]; + /** + * Create or update a repository secret + * @description Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["dependabot/create-or-update-repo-secret"]; + /** + * Delete a repository secret + * @description Deletes a secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["dependabot/delete-repo-secret"]; + }; + "/repos/{owner}/{repo}/dependency-graph/compare/{basehead}": { + /** + * Get a diff of the dependencies between commits + * @description Gets the diff of the dependency changes between two commits of a repository, based on the changes to the dependency manifests made in those commits. + */ + get: operations["dependency-graph/diff-range"]; + }; + "/repos/{owner}/{repo}/dependency-graph/sbom": { + /** + * Export a software bill of materials (SBOM) for a repository. + * @description Exports the software bill of materials (SBOM) for a repository in SPDX JSON format. + */ + get: operations["dependency-graph/export-sbom"]; + }; + "/repos/{owner}/{repo}/dependency-graph/snapshots": { + /** + * Create a snapshot of dependencies for a repository + * @description Create a new snapshot of a repository's dependencies. + * + * The authenticated user must have access to the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["dependency-graph/create-repository-snapshot"]; + }; + "/repos/{owner}/{repo}/deployments": { + /** + * List deployments + * @description Simple filtering of deployments is available via query parameters: + */ + get: operations["repos/list-deployments"]; + /** + * Create a deployment + * @description Deployments offer a few configurable parameters with certain defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + * before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + * makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + * return a failure response. + * + * By default, [commit statuses](https://docs.github.com/rest/commits/statuses) for every submitted context must be in a `success` + * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + * not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + * field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + * application with debugging enabled. + * + * Merged branch response: + * + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + * a deployment. This auto-merge happens when: + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful + * response. + * + * Merge conflict response: + * + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * Failed commit status checks: + * + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + post: operations["repos/create-deployment"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}": { + /** Get a deployment */ + get: operations["repos/get-deployment"]; + /** + * Delete a deployment + * @description If the repository only has one deployment, you can delete the deployment regardless of its status. If the repository has more than one deployment, you can only delete inactive deployments. This ensures that repositories with multiple deployments will always have an active deployment. + * + * To set a deployment as inactive, you must: + * + * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * * Mark the active deployment as inactive by adding any non-successful deployment status. + * + * For more information, see "[Create a deployment](https://docs.github.com/rest/deployments/deployments/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/deployments/statuses#create-a-deployment-status)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + delete: operations["repos/delete-deployment"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses": { + /** + * List deployment statuses + * @description Users with pull access can view deployment statuses for a deployment: + */ + get: operations["repos/list-deployment-statuses"]; + /** + * Create a deployment status + * @description Users with `push` access can create deployment statuses for a given deployment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo_deployment` scope to use this endpoint. + */ + post: operations["repos/create-deployment-status"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": { + /** + * Get a deployment status + * @description Users with pull access can view a deployment status for a deployment: + */ + get: operations["repos/get-deployment-status"]; + }; + "/repos/{owner}/{repo}/dispatches": { + /** + * Create a repository dispatch event + * @description You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["repos/create-dispatch-event"]; + }; + "/repos/{owner}/{repo}/environments": { + /** + * List environments + * @description Lists the environments for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-all-environments"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}": { + /** + * Get an environment + * @description **Note:** To get information about name patterns that branches must match in order to deploy to this environment, see "[Get a deployment branch policy](/rest/deployments/branch-policies#get-a-deployment-branch-policy)." + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-environment"]; + /** + * Create or update an environment + * @description Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "[Environments](/actions/reference/environments#environment-protection-rules)." + * + * **Note:** To create or update name patterns that branches must match in order to deploy to this environment, see "[Deployment branch policies](/rest/deployments/branch-policies)." + * + * **Note:** To create or update secrets for an environment, see "[GitHub Actions secrets](/rest/actions/secrets)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["repos/create-or-update-environment"]; + /** + * Delete an environment + * @description OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["repos/delete-an-environment"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": { + /** + * List deployment branch policies + * @description Lists the deployment branch policies for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/list-deployment-branch-policies"]; + /** + * Create a deployment branch policy + * @description Creates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["repos/create-deployment-branch-policy"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": { + /** + * Get a deployment branch policy + * @description Gets a deployment branch or tag policy for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-deployment-branch-policy"]; + /** + * Update a deployment branch policy + * @description Updates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["repos/update-deployment-branch-policy"]; + /** + * Delete a deployment branch policy + * @description Deletes a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["repos/delete-deployment-branch-policy"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules": { + /** + * Get all deployment protection rules for an environment + * @description Gets all custom deployment protection rules that are enabled for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-all-deployment-protection-rules"]; + /** + * Create a custom deployment protection rule on an environment + * @description Enable a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["repos/create-deployment-protection-rule"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps": { + /** + * List custom deployment rule integrations available for an environment + * @description Gets all custom deployment protection rule integrations that are available for an environment. Anyone with read access to the repository can use this endpoint. + * + * For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see "[GET an app](https://docs.github.com/rest/apps/apps#get-an-app)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/list-custom-deployment-rule-integrations"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}": { + /** + * Get a custom deployment protection rule + * @description Gets an enabled custom deployment protection rule for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see [`GET /apps/{app_slug}`](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-custom-deployment-protection-rule"]; + /** + * Disable a custom protection rule for an environment + * @description Disables a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["repos/disable-deployment-protection-rule"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/secrets": { + /** + * List environment secrets + * @description Lists all secrets available in an environment without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-environment-secrets"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key": { + /** + * Get an environment public key + * @description Get the public key for an environment, which you need to encrypt environment + * secrets. You need to encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-environment-public-key"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}": { + /** + * Get an environment secret + * @description Gets a single environment secret without revealing its encrypted value. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-environment-secret"]; + /** + * Create or update an environment secret + * @description Creates or updates an environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/create-or-update-environment-secret"]; + /** + * Delete an environment secret + * @description Deletes a secret in an environment using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-environment-secret"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/variables": { + /** + * List environment variables + * @description Lists all environment variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-environment-variables"]; + /** + * Create an environment variable + * @description Create an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-environment-variable"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/variables/{name}": { + /** + * Get an environment variable + * @description Gets a specific variable in an environment. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-environment-variable"]; + /** + * Delete an environment variable + * @description Deletes an environment variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-environment-variable"]; + /** + * Update an environment variable + * @description Updates an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + patch: operations["actions/update-environment-variable"]; + }; + "/repos/{owner}/{repo}/events": { + /** + * List repository events + * @description **Note**: This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + */ + get: operations["activity/list-repo-events"]; + }; + "/repos/{owner}/{repo}/forks": { + /** List forks */ + get: operations["repos/list-forks"]; + /** + * Create a fork + * @description Create a fork for the authenticated user. + * + * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * + * **Note**: Although this endpoint works with GitHub Apps, the GitHub App must be installed on the destination account with access to all repositories and on the source account with access to the source repository. + */ + post: operations["repos/create-fork"]; + }; + "/repos/{owner}/{repo}/git/blobs": { + /** Create a blob */ + post: operations["git/create-blob"]; + }; + "/repos/{owner}/{repo}/git/blobs/{file_sha}": { + /** + * Get a blob + * @description The `content` in the response will always be Base64 encoded. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw blob data. + * - **`application/vnd.github+json`**: Returns a JSON representation of the blob with `content` as a base64 encoded string. This is the default if no media type is specified. + * + * **Note** This endpoint supports blobs up to 100 megabytes in size. + */ + get: operations["git/get-blob"]; + }; + "/repos/{owner}/{repo}/git/commits": { + /** + * Create a commit + * @description Creates a new Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + post: operations["git/create-commit"]; + }; + "/repos/{owner}/{repo}/git/commits/{commit_sha}": { + /** + * Get a commit object + * @description Gets a Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * To get the contents of a commit, see "[Get a commit](/rest/commits/commits#get-a-commit)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["git/get-commit"]; + }; + "/repos/{owner}/{repo}/git/matching-refs/{ref}": { + /** + * List matching references + * @description Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + * + * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + */ + get: operations["git/list-matching-refs"]; + }; + "/repos/{owner}/{repo}/git/ref/{ref}": { + /** + * Get a reference + * @description Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + */ + get: operations["git/get-ref"]; + }; + "/repos/{owner}/{repo}/git/refs": { + /** + * Create a reference + * @description Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. + */ + post: operations["git/create-ref"]; + }; + "/repos/{owner}/{repo}/git/refs/{ref}": { + /** + * Delete a reference + * @description Deletes the provided reference. + */ + delete: operations["git/delete-ref"]; + /** + * Update a reference + * @description Updates the provided reference to point to a new SHA. For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. + */ + patch: operations["git/update-ref"]; + }; + "/repos/{owner}/{repo}/git/tags": { + /** + * Create a tag object + * @description Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/git/refs#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/git/refs#create-a-reference) the tag reference - this call would be unnecessary. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + post: operations["git/create-tag"]; + }; + "/repos/{owner}/{repo}/git/tags/{tag_sha}": { + /** + * Get a tag + * @description **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["git/get-tag"]; + }; + "/repos/{owner}/{repo}/git/trees": { + /** + * Create a tree + * @description The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + * + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/git/commits#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/git/refs#update-a-reference)." + * + * Returns an error if you try to delete a file that does not exist. + */ + post: operations["git/create-tree"]; + }; + "/repos/{owner}/{repo}/git/trees/{tree_sha}": { + /** + * Get a tree + * @description Returns a single tree using the SHA1 value or ref name for that tree. + * + * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. + * + * + * **Note**: The limit for the `tree` array is 100,000 entries with a maximum size of 7 MB when using the `recursive` parameter. + */ + get: operations["git/get-tree"]; + }; + "/repos/{owner}/{repo}/hooks": { + /** + * List repository webhooks + * @description Lists webhooks for a repository. `last response` may return null if there have not been any deliveries within 30 days. + */ + get: operations["repos/list-webhooks"]; + /** + * Create a repository webhook + * @description Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + * share the same `config` as long as those webhooks do not have any `events` that overlap. + */ + post: operations["repos/create-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}": { + /** + * Get a repository webhook + * @description Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository)." + */ + get: operations["repos/get-webhook"]; + /** Delete a repository webhook */ + delete: operations["repos/delete-webhook"]; + /** + * Update a repository webhook + * @description Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/webhooks/repo-config#update-a-webhook-configuration-for-a-repository)." + */ + patch: operations["repos/update-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/config": { + /** + * Get a webhook configuration for a repository + * @description Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/webhooks/repos#get-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:repo_hook` or `repo` scope to use this endpoint. + */ + get: operations["repos/get-webhook-config-for-repo"]; + /** + * Update a webhook configuration for a repository + * @description Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/webhooks/repos#update-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:repo_hook` or `repo` scope to use this endpoint. + */ + patch: operations["repos/update-webhook-config-for-repo"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries": { + /** + * List deliveries for a repository webhook + * @description Returns a list of webhook deliveries for a webhook configured in a repository. + */ + get: operations["repos/list-webhook-deliveries"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}": { + /** + * Get a delivery for a repository webhook + * @description Returns a delivery for a webhook configured in a repository. + */ + get: operations["repos/get-webhook-delivery"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": { + /** + * Redeliver a delivery for a repository webhook + * @description Redeliver a webhook delivery for a webhook configured in a repository. + */ + post: operations["repos/redeliver-webhook-delivery"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/pings": { + /** + * Ping a repository webhook + * @description This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + post: operations["repos/ping-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/tests": { + /** + * Test the push repository webhook + * @description This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * + * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + */ + post: operations["repos/test-push-webhook"]; + }; + "/repos/{owner}/{repo}/import": { + /** + * Get an import status + * @deprecated + * @description View the progress of an import. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * **Import status** + * + * This section includes details about the possible values of the `status` field of the Import Progress response. + * + * An import that does not have errors will progress through these steps: + * + * * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * * `complete` - the import is complete, and the repository is ready on GitHub. + * + * If there are problems, you will see one of these in the `status` field: + * + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/migrations/source-imports#cancel-an-import) and [retry](https://docs.github.com/rest/migrations/source-imports#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * + * **The project_choices field** + * + * When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + * + * **Git LFS related fields** + * + * This section includes details about Git LFS related fields that may be present in the Import Progress response. + * + * * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + */ + get: operations["migrations/get-import-status"]; + /** + * Start an import + * @deprecated + * @description Start a source import to a GitHub repository using GitHub Importer. + * Importing into a GitHub repository with GitHub Actions enabled is not supported and will + * return a status `422 Unprocessable Entity` response. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + put: operations["migrations/start-import"]; + /** + * Cancel an import + * @deprecated + * @description Stop an import for a repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + delete: operations["migrations/cancel-import"]; + /** + * Update an import + * @deprecated + * @description An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API + * request. If no parameters are provided, the import will be restarted. + * + * Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will + * have the status `detection_found_multiple` and the Import Progress response will include a `project_choices` array. + * You can select the project to import by providing one of the objects in the `project_choices` array in the update request. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + patch: operations["migrations/update-import"]; + }; + "/repos/{owner}/{repo}/import/authors": { + /** + * Get commit authors + * @deprecated + * @description Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + * + * This endpoint and the [Map a commit author](https://docs.github.com/rest/migrations/source-imports#map-a-commit-author) endpoint allow you to provide correct Git author information. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + get: operations["migrations/get-commit-authors"]; + }; + "/repos/{owner}/{repo}/import/authors/{author_id}": { + /** + * Map a commit author + * @deprecated + * @description Update an author's identity for the import. Your application can continue updating authors any time before you push + * new commits to the repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + patch: operations["migrations/map-commit-author"]; + }; + "/repos/{owner}/{repo}/import/large_files": { + /** + * Get large files + * @deprecated + * @description List files larger than 100MB found during the import + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + get: operations["migrations/get-large-files"]; + }; + "/repos/{owner}/{repo}/import/lfs": { + /** + * Update Git LFS preference + * @deprecated + * @description You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability + * is powered by [Git LFS](https://git-lfs.com). + * + * You can learn more about our LFS feature and working with large files [on our help + * site](https://docs.github.com/repositories/working-with-files/managing-large-files). + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + patch: operations["migrations/set-lfs-preference"]; + }; + "/repos/{owner}/{repo}/installation": { + /** + * Get a repository installation for the authenticated app + * @description Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-repo-installation"]; + }; + "/repos/{owner}/{repo}/interaction-limits": { + /** + * Get interaction restrictions for a repository + * @description Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + get: operations["interactions/get-restrictions-for-repo"]; + /** + * Set interaction restrictions for a repository + * @description Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + put: operations["interactions/set-restrictions-for-repo"]; + /** + * Remove interaction restrictions for a repository + * @description Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + delete: operations["interactions/remove-restrictions-for-repo"]; + }; + "/repos/{owner}/{repo}/invitations": { + /** + * List repository invitations + * @description When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. + */ + get: operations["repos/list-invitations"]; + }; + "/repos/{owner}/{repo}/invitations/{invitation_id}": { + /** Delete a repository invitation */ + delete: operations["repos/delete-invitation"]; + /** Update a repository invitation */ + patch: operations["repos/update-invitation"]; + }; + "/repos/{owner}/{repo}/issues": { + /** + * List repository issues + * @description List issues in a repository. Only open issues will be listed. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-for-repo"]; + /** + * Create an issue + * @description Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://docs.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["issues/create"]; + }; + "/repos/{owner}/{repo}/issues/comments": { + /** + * List issue comments for a repository + * @description You can use the REST API to list comments on issues and pull requests for a repository. Every pull request is an issue, but not every issue is a pull request. + * + * By default, issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}": { + /** + * Get an issue comment + * @description You can use the REST API to get comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/get-comment"]; + /** + * Delete an issue comment + * @description You can use the REST API to delete comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + */ + delete: operations["issues/delete-comment"]; + /** + * Update an issue comment + * @description You can use the REST API to update comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + patch: operations["issues/update-comment"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": { + /** + * List reactions for an issue comment + * @description List the reactions to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + get: operations["reactions/list-for-issue-comment"]; + /** + * Create reaction for an issue comment + * @description Create a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). A response with an HTTP `200` status means that you already added the reaction type to this issue comment. + */ + post: operations["reactions/create-for-issue-comment"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": { + /** + * Delete an issue comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + delete: operations["reactions/delete-for-issue-comment"]; + }; + "/repos/{owner}/{repo}/issues/events": { + /** + * List issue events for a repository + * @description Lists events for a repository. + */ + get: operations["issues/list-events-for-repo"]; + }; + "/repos/{owner}/{repo}/issues/events/{event_id}": { + /** + * Get an issue event + * @description Gets a single event by the event id. + */ + get: operations["issues/get-event"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}": { + /** + * Get an issue + * @description The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api#follow-redirects) if the issue was + * [transferred](https://docs.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API + * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read + * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe + * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/get"]; + /** + * Update an issue + * @description Issue owners and users with push access can edit an issue. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + patch: operations["issues/update"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/assignees": { + /** + * Add assignees to an issue + * @description Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. + */ + post: operations["issues/add-assignees"]; + /** + * Remove assignees from an issue + * @description Removes one or more assignees from an issue. + */ + delete: operations["issues/remove-assignees"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}": { + /** + * Check if a user can be assigned to a issue + * @description Checks if a user has permission to be assigned to a specific issue. + * + * If the `assignee` can be assigned to this issue, a `204` status code with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + get: operations["issues/check-user-can-be-assigned-to-issue"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/comments": { + /** + * List issue comments + * @description You can use the REST API to list comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * Issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-comments"]; + /** + * Create an issue comment + * @description You can use the REST API to create comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + * Creating content too quickly using this endpoint may result in secondary rate limiting. + * For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["issues/create-comment"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/events": { + /** + * List issue events + * @description Lists all events for an issue. + */ + get: operations["issues/list-events"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/labels": { + /** + * List labels for an issue + * @description Lists all labels for an issue. + */ + get: operations["issues/list-labels-on-issue"]; + /** + * Set labels for an issue + * @description Removes any previous labels and sets the new labels for an issue. + */ + put: operations["issues/set-labels"]; + /** + * Add labels to an issue + * @description Adds labels to an issue. If you provide an empty array of labels, all labels are removed from the issue. + */ + post: operations["issues/add-labels"]; + /** + * Remove all labels from an issue + * @description Removes all labels from an issue. + */ + delete: operations["issues/remove-all-labels"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": { + /** + * Remove a label from an issue + * @description Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. + */ + delete: operations["issues/remove-label"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/lock": { + /** + * Lock an issue + * @description Users with push access can lock an issue or pull request's conversation. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["issues/lock"]; + /** + * Unlock an issue + * @description Users with push access can unlock an issue's conversation. + */ + delete: operations["issues/unlock"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/reactions": { + /** + * List reactions for an issue + * @description List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + get: operations["reactions/list-for-issue"]; + /** + * Create reaction for an issue + * @description Create a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). A response with an HTTP `200` status means that you already added the reaction type to this issue. + */ + post: operations["reactions/create-for-issue"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": { + /** + * Delete an issue reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + * + * Delete a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + delete: operations["reactions/delete-for-issue"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/timeline": { + /** + * List timeline events for an issue + * @description List all timeline events for an issue. + */ + get: operations["issues/list-events-for-timeline"]; + }; + "/repos/{owner}/{repo}/keys": { + /** List deploy keys */ + get: operations["repos/list-deploy-keys"]; + /** + * Create a deploy key + * @description You can create a read-only deploy key. + */ + post: operations["repos/create-deploy-key"]; + }; + "/repos/{owner}/{repo}/keys/{key_id}": { + /** Get a deploy key */ + get: operations["repos/get-deploy-key"]; + /** + * Delete a deploy key + * @description Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. + */ + delete: operations["repos/delete-deploy-key"]; + }; + "/repos/{owner}/{repo}/labels": { + /** + * List labels for a repository + * @description Lists all labels for a repository. + */ + get: operations["issues/list-labels-for-repo"]; + /** + * Create a label + * @description Creates a label for the specified repository with the given name and color. The name and color parameters are required. The color must be a valid [hexadecimal color code](http://www.color-hex.com/). + */ + post: operations["issues/create-label"]; + }; + "/repos/{owner}/{repo}/labels/{name}": { + /** + * Get a label + * @description Gets a label using the given name. + */ + get: operations["issues/get-label"]; + /** + * Delete a label + * @description Deletes a label using the given label name. + */ + delete: operations["issues/delete-label"]; + /** + * Update a label + * @description Updates a label using the given label name. + */ + patch: operations["issues/update-label"]; + }; + "/repos/{owner}/{repo}/languages": { + /** + * List repository languages + * @description Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. + */ + get: operations["repos/list-languages"]; + }; + "/repos/{owner}/{repo}/license": { + /** + * Get the license for a repository + * @description This method returns the contents of the repository's license file, if one is detected. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw contents of the license. + * - **`application/vnd.github.html+json`**: Returns the license contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + get: operations["licenses/get-for-repo"]; + }; + "/repos/{owner}/{repo}/merge-upstream": { + /** + * Sync a fork branch with the upstream repository + * @description Sync a branch of a forked repository to keep it up-to-date with the upstream repository. + */ + post: operations["repos/merge-upstream"]; + }; + "/repos/{owner}/{repo}/merges": { + /** Merge a branch */ + post: operations["repos/merge"]; + }; + "/repos/{owner}/{repo}/milestones": { + /** + * List milestones + * @description Lists milestones for a repository. + */ + get: operations["issues/list-milestones"]; + /** + * Create a milestone + * @description Creates a milestone. + */ + post: operations["issues/create-milestone"]; + }; + "/repos/{owner}/{repo}/milestones/{milestone_number}": { + /** + * Get a milestone + * @description Gets a milestone using the given milestone number. + */ + get: operations["issues/get-milestone"]; + /** + * Delete a milestone + * @description Deletes a milestone using the given milestone number. + */ + delete: operations["issues/delete-milestone"]; + /** Update a milestone */ + patch: operations["issues/update-milestone"]; + }; + "/repos/{owner}/{repo}/milestones/{milestone_number}/labels": { + /** + * List labels for issues in a milestone + * @description Lists labels for issues in a milestone. + */ + get: operations["issues/list-labels-for-milestone"]; + }; + "/repos/{owner}/{repo}/notifications": { + /** + * List repository notifications for the authenticated user + * @description Lists all notifications for the current user in the specified repository. + */ + get: operations["activity/list-repo-notifications-for-authenticated-user"]; + /** + * Mark repository notifications as read + * @description Marks all notifications in a repository as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + put: operations["activity/mark-repo-notifications-as-read"]; + }; + "/repos/{owner}/{repo}/pages": { + /** + * Get a GitHub Pages site + * @description Gets information about a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/get-pages"]; + /** + * Update information about a GitHub Pages site + * @description Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["repos/update-information-about-pages-site"]; + /** + * Create a GitHub Pages site + * @description Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["repos/create-pages-site"]; + /** + * Delete a GitHub Pages site + * @description Deletes a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["repos/delete-pages-site"]; + }; + "/repos/{owner}/{repo}/pages/builds": { + /** + * List GitHub Pages builds + * @description Lists builts of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/list-pages-builds"]; + /** + * Request a GitHub Pages build + * @description You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + */ + post: operations["repos/request-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/builds/latest": { + /** + * Get latest Pages build + * @description Gets information about the single most recent build of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/get-latest-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/builds/{build_id}": { + /** + * Get GitHub Pages build + * @description Gets information about a GitHub Pages build. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/get-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/deployments": { + /** + * Create a GitHub Pages deployment + * @description Create a GitHub Pages deployment for a repository. + * + * The authenticated user must have write permission to the repository. + */ + post: operations["repos/create-pages-deployment"]; + }; + "/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}": { + /** + * Get the status of a GitHub Pages deployment + * @description Gets the current status of a GitHub Pages deployment. + * + * The authenticated user must have read permission for the GitHub Pages site. + */ + get: operations["repos/get-pages-deployment"]; + }; + "/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel": { + /** + * Cancel a GitHub Pages deployment + * @description Cancels a GitHub Pages deployment. + * + * The authenticated user must have write permissions for the GitHub Pages site. + */ + post: operations["repos/cancel-pages-deployment"]; + }; + "/repos/{owner}/{repo}/pages/health": { + /** + * Get a DNS health check for GitHub Pages + * @description Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages. + * + * The first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response. + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/get-pages-health-check"]; + }; + "/repos/{owner}/{repo}/private-vulnerability-reporting": { + /** + * Check if private vulnerability reporting is enabled for a repository + * @description Returns a boolean indicating whether or not private vulnerability reporting is enabled for the repository. For more information, see "[Evaluating the security settings of a repository](https://docs.github.com/code-security/security-advisories/working-with-repository-security-advisories/evaluating-the-security-settings-of-a-repository)". + */ + get: operations["repos/check-private-vulnerability-reporting"]; + /** + * Enable private vulnerability reporting for a repository + * @description Enables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)." + */ + put: operations["repos/enable-private-vulnerability-reporting"]; + /** + * Disable private vulnerability reporting for a repository + * @description Disables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)". + */ + delete: operations["repos/disable-private-vulnerability-reporting"]; + }; + "/repos/{owner}/{repo}/projects": { + /** + * List repository projects + * @description Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + get: operations["projects/list-for-repo"]; + /** + * Create a repository project + * @description Creates a repository project board. Returns a `410 Gone` status if projects are disabled in the repository or if the repository does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + post: operations["projects/create-for-repo"]; + }; + "/repos/{owner}/{repo}/properties/values": { + /** + * Get all custom property values for a repository + * @description Gets all custom property values that are set for a repository. + * Users with read access to the repository can use this endpoint. + */ + get: operations["repos/get-custom-properties-values"]; + /** + * Create or update custom property values for a repository + * @description Create new or update existing custom property values for a repository. + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * Repository admins and other users with the repository-level "edit custom property values" fine-grained permission can use this endpoint. + */ + patch: operations["repos/create-or-update-custom-properties-values"]; + }; + "/repos/{owner}/{repo}/pulls": { + /** + * List pull requests + * @description Lists pull requests in a specified repository. + * + * Draft pull requests are available in public repositories with GitHub + * Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing + * plans, and in public and private repositories with GitHub Team and GitHub Enterprise + * Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + * in the GitHub Help documentation. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list"]; + /** + * Create a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["pulls/create"]; + }; + "/repos/{owner}/{repo}/pulls/comments": { + /** + * List review comments in a repository + * @description Lists review comments for all pull requests in a repository. By default, + * review comments are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-review-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}": { + /** + * Get a review comment for a pull request + * @description Provides details for a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/get-review-comment"]; + /** + * Delete a review comment for a pull request + * @description Deletes a review comment. + */ + delete: operations["pulls/delete-review-comment"]; + /** + * Update a review comment for a pull request + * @description Edits the content of a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + patch: operations["pulls/update-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": { + /** + * List reactions for a pull request review comment + * @description List the reactions to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + get: operations["reactions/list-for-pull-request-review-comment"]; + /** + * Create reaction for a pull request review comment + * @description Create a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment. + */ + post: operations["reactions/create-for-pull-request-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": { + /** + * Delete a pull request comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + * + * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + delete: operations["reactions/delete-for-pull-request-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}": { + /** + * Get a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists details of a pull request by providing its number. + * + * When you get, [create](https://docs.github.com/rest/pulls/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/pulls/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + * + * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + * + * * If merged as a [merge commit](https://docs.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://docs.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://docs.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + get: operations["pulls/get"]; + /** + * Update a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + patch: operations["pulls/update"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/codespaces": { + /** + * Create a codespace from a pull request + * @description Creates a codespace owned by the authenticated user for the specified pull request. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/create-with-pr-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/comments": { + /** + * List review comments on a pull request + * @description Lists all review comments for a specified pull request. By default, review comments + * are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-review-comments"]; + /** + * Create a review comment for a pull request + * @description Creates a review comment on the diff of a specified pull request. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/issues/comments#create-an-issue-comment)." + * + * If your comment applies to more than one line in the pull request diff, you should use the parameters `line`, `side`, and optionally `start_line` and `start_side` in your request. + * + * The `position` parameter is deprecated. If you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["pulls/create-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": { + /** + * Create a reply for a review comment + * @description Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["pulls/create-reply-for-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/commits": { + /** + * List commits on a pull request + * @description Lists a maximum of 250 commits for a pull request. To receive a complete + * commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/commits/commits#list-commits) + * endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-commits"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/files": { + /** + * List pull requests files + * @description Lists the files in a specified pull request. + * + * **Note:** Responses include a maximum of 3000 files. The paginated response + * returns 30 files per page by default. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-files"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/merge": { + /** + * Check if a pull request has been merged + * @description Checks if a pull request has been merged into the base branch. The HTTP status of the response indicates whether or not the pull request has been merged; the response body is empty. + */ + get: operations["pulls/check-if-merged"]; + /** + * Merge a pull request + * @description Merges a pull request into the base branch. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + put: operations["pulls/merge"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": { + /** + * Get all requested reviewers for a pull request + * @description Gets the users or teams whose review is requested for a pull request. Once a requested reviewer submits a review, they are no longer considered a requested reviewer. Their review will instead be returned by the [List reviews for a pull request](https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request) operation. + */ + get: operations["pulls/list-requested-reviewers"]; + /** + * Request reviewers for a pull request + * @description This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + post: operations["pulls/request-reviewers"]; + /** + * Remove requested reviewers from a pull request + * @description Removes review requests from a pull request for a given set of users and/or teams. + */ + delete: operations["pulls/remove-requested-reviewers"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews": { + /** + * List reviews for a pull request + * @description Lists all reviews for a specified pull request. The list of reviews returns in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-reviews"]; + /** + * Create a review for a pull request + * @description Creates a review on a specified pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Pull request reviews created in the `PENDING` state are not submitted and therefore do not include the `submitted_at` property in the response. To create a pending review for a pull request, leave the `event` parameter blank. For more information about submitting a `PENDING` review, see "[Submit a review for a pull request](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request)." + * + * **Note:** To comment on a specific line in a file, you need to first determine the position of that line in the diff. To see a pull request diff, add the `application/vnd.github.v3.diff` media type to the `Accept` header of a call to the [Get a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) endpoint. + * + * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["pulls/create-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": { + /** + * Get a review for a pull request + * @description Retrieves a pull request review by its ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/get-review"]; + /** + * Update a review for a pull request + * @description Updates the contents of a specified review summary comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + put: operations["pulls/update-review"]; + /** + * Delete a pending review for a pull request + * @description Deletes a pull request review that has not been submitted. Submitted reviews cannot be deleted. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + delete: operations["pulls/delete-pending-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": { + /** + * List comments for a pull request review + * @description Lists comments for a specific pull request review. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-comments-for-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": { + /** + * Dismiss a review for a pull request + * @description Dismisses a specified review on a pull request. + * + * **Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/branches/branch-protection), + * you must be a repository administrator or be included in the list of people or teams + * who can dismiss pull request reviews. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + put: operations["pulls/dismiss-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": { + /** + * Submit a review for a pull request + * @description Submits a pending review for a pull request. For more information about creating a pending review for a pull request, see "[Create a review for a pull request](https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["pulls/submit-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/update-branch": { + /** + * Update a pull request branch + * @description Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. + */ + put: operations["pulls/update-branch"]; + }; + "/repos/{owner}/{repo}/readme": { + /** + * Get a repository README + * @description Gets the preferred README for a repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + get: operations["repos/get-readme"]; + }; + "/repos/{owner}/{repo}/readme/{dir}": { + /** + * Get a repository README for a directory + * @description Gets the README from a repository directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + get: operations["repos/get-readme-in-directory"]; + }; + "/repos/{owner}/{repo}/releases": { + /** + * List releases + * @description This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/repos/repos#list-repository-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + */ + get: operations["repos/list-releases"]; + /** + * Create a release + * @description Users with push access to the repository can create a release. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + post: operations["repos/create-release"]; + }; + "/repos/{owner}/{repo}/releases/assets/{asset_id}": { + /** + * Get a release asset + * @description To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. + */ + get: operations["repos/get-release-asset"]; + /** Delete a release asset */ + delete: operations["repos/delete-release-asset"]; + /** + * Update a release asset + * @description Users with push access to the repository can edit a release asset. + */ + patch: operations["repos/update-release-asset"]; + }; + "/repos/{owner}/{repo}/releases/generate-notes": { + /** + * Generate release notes content for a release + * @description Generate a name and body describing a [release](https://docs.github.com/rest/releases/releases#get-a-release). The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release. + */ + post: operations["repos/generate-release-notes"]; + }; + "/repos/{owner}/{repo}/releases/latest": { + /** + * Get the latest release + * @description View the latest published full release for the repository. + * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + */ + get: operations["repos/get-latest-release"]; + }; + "/repos/{owner}/{repo}/releases/tags/{tag}": { + /** + * Get a release by tag name + * @description Get a published release with the specified tag. + */ + get: operations["repos/get-release-by-tag"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}": { + /** + * Get a release + * @description Gets a public release with the specified release ID. + * + * **Note:** This returns an `upload_url` key corresponding to the endpoint + * for uploading release assets. This key is a hypermedia resource. For more information, see + * "[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + */ + get: operations["repos/get-release"]; + /** + * Delete a release + * @description Users with push access to the repository can delete a release. + */ + delete: operations["repos/delete-release"]; + /** + * Update a release + * @description Users with push access to the repository can edit a release. + */ + patch: operations["repos/update-release"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}/assets": { + /** List release assets */ + get: operations["repos/list-release-assets"]; + /** + * Upload a release asset + * @description This endpoint makes use of a [Hypermedia relation](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in + * the response of the [Create a release endpoint](https://docs.github.com/rest/releases/releases#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, + * you'll still need to pass your authentication to be able to upload an asset. + * + * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. + * + * **Notes:** + * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List release assets](https://docs.github.com/rest/releases/assets#list-release-assets)" + * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * * To find the `release_id` query the [`GET /repos/{owner}/{repo}/releases/latest` endpoint](https://docs.github.com/rest/releases/releases#get-the-latest-release). + * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. + */ + post: operations["repos/upload-release-asset"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}/reactions": { + /** + * List reactions for a release + * @description List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + get: operations["reactions/list-for-release"]; + /** + * Create reaction for a release + * @description Create a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). A response with a `Status: 200 OK` means that you already added the reaction type to this release. + */ + post: operations["reactions/create-for-release"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}": { + /** + * Delete a release reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id`. + * + * Delete a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + delete: operations["reactions/delete-for-release"]; + }; + "/repos/{owner}/{repo}/rules/branches/{branch}": { + /** + * Get rules for a branch + * @description Returns all active rules that apply to the specified branch. The branch does not need to exist; rules that would apply + * to a branch with that name will be returned. All active rules that apply will be returned, regardless of the level + * at which they are configured (e.g. repository or organization). Rules in rulesets with "evaluate" or "disabled" + * enforcement statuses are not returned. + */ + get: operations["repos/get-branch-rules"]; + }; + "/repos/{owner}/{repo}/rulesets": { + /** + * Get all repository rulesets + * @description Get all the rulesets for a repository. + */ + get: operations["repos/get-repo-rulesets"]; + /** + * Create a repository ruleset + * @description Create a ruleset for a repository. + */ + post: operations["repos/create-repo-ruleset"]; + }; + "/repos/{owner}/{repo}/rulesets/rule-suites": { + /** + * List repository rule suites + * @description Lists suites of rule evaluations at the repository level. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + get: operations["repos/get-repo-rule-suites"]; + }; + "/repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}": { + /** + * Get a repository rule suite + * @description Gets information about a suite of rule evaluations from within a repository. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + get: operations["repos/get-repo-rule-suite"]; + }; + "/repos/{owner}/{repo}/rulesets/{ruleset_id}": { + /** + * Get a repository ruleset + * @description Get a ruleset for a repository. + */ + get: operations["repos/get-repo-ruleset"]; + /** + * Update a repository ruleset + * @description Update a ruleset for a repository. + */ + put: operations["repos/update-repo-ruleset"]; + /** + * Delete a repository ruleset + * @description Delete a ruleset for a repository. + */ + delete: operations["repos/delete-repo-ruleset"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts": { + /** + * List secret scanning alerts for a repository + * @description Lists secret scanning alerts for an eligible repository, from newest to oldest. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["secret-scanning/list-alerts-for-repo"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": { + /** + * Get a secret scanning alert + * @description Gets a single secret scanning alert detected in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["secret-scanning/get-alert"]; + /** + * Update a secret scanning alert + * @description Updates the status of a secret scanning alert in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + patch: operations["secret-scanning/update-alert"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations": { + /** + * List locations for a secret scanning alert + * @description Lists all locations for a given secret scanning alert for an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["secret-scanning/list-locations-for-alert"]; + }; + "/repos/{owner}/{repo}/security-advisories": { + /** + * List repository security advisories + * @description Lists security advisories in a repository. + * + * The authenticated user can access unpublished security advisories from a repository if they are a security manager or administrator of that repository, or if they are a collaborator on any security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + get: operations["security-advisories/list-repository-advisories"]; + /** + * Create a repository security advisory + * @description Creates a new repository security advisory. + * + * In order to create a draft repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + post: operations["security-advisories/create-repository-advisory"]; + }; + "/repos/{owner}/{repo}/security-advisories/reports": { + /** + * Privately report a security vulnerability + * @description Report a security vulnerability to the maintainers of the repository. + * See "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)" for more information about private vulnerability reporting. + */ + post: operations["security-advisories/create-private-vulnerability-report"]; + }; + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}": { + /** + * Get a repository security advisory + * @description Get a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * Anyone can access any published security advisory on a public repository. + * + * The authenticated user can access an unpublished security advisory from a repository if they are a security manager or administrator of that repository, or if they are a + * collaborator on the security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + get: operations["security-advisories/get-repository-advisory"]; + /** + * Update a repository security advisory + * @description Update a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * In order to update any security advisory, the authenticated user must be a security manager or administrator of that repository, + * or a collaborator on the repository security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + patch: operations["security-advisories/update-repository-advisory"]; + }; + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve": { + /** + * Request a CVE for a repository security advisory + * @description If you want a CVE identification number for the security vulnerability in your project, and don't already have one, you can request a CVE identification number from GitHub. For more information see "[Requesting a CVE identification number](https://docs.github.com/code-security/security-advisories/repository-security-advisories/publishing-a-repository-security-advisory#requesting-a-cve-identification-number-optional)." + * + * You may request a CVE for public repositories, but cannot do so for private repositories. + * + * In order to request a CVE for a repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + post: operations["security-advisories/create-repository-advisory-cve-request"]; + }; + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks": { + /** + * Create a temporary private fork + * @description Create a temporary private fork to collaborate on fixing a security vulnerability in your repository. + * + * **Note**: Forking a repository happens asynchronously. You may have to wait up to 5 minutes before you can access the fork. + */ + post: operations["security-advisories/create-fork"]; + }; + "/repos/{owner}/{repo}/stargazers": { + /** + * List stargazers + * @description Lists the people that have starred the repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + get: operations["activity/list-stargazers-for-repo"]; + }; + "/repos/{owner}/{repo}/stats/code_frequency": { + /** + * Get the weekly commit activity + * @description + * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. + * + * **Note:** This endpoint can only be used for repositories with fewer than 10,000 commits. If the repository contains + * 10,000 or more commits, a 422 status code will be returned. + */ + get: operations["repos/get-code-frequency-stats"]; + }; + "/repos/{owner}/{repo}/stats/commit_activity": { + /** + * Get the last year of commit activity + * @description Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. + */ + get: operations["repos/get-commit-activity-stats"]; + }; + "/repos/{owner}/{repo}/stats/contributors": { + /** + * Get all contributor commit activity + * @description + * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: + * + * * `w` - Start of the week, given as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + * + * **Note:** This endpoint will return `0` values for all addition and deletion counts in repositories with 10,000 or more commits. + */ + get: operations["repos/get-contributors-stats"]; + }; + "/repos/{owner}/{repo}/stats/participation": { + /** + * Get the weekly commit count + * @description Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + * + * The array order is oldest week (index 0) to most recent week. + * + * The most recent week is seven days ago at UTC midnight to today at UTC midnight. + */ + get: operations["repos/get-participation-stats"]; + }; + "/repos/{owner}/{repo}/stats/punch_card": { + /** + * Get the hourly commit count for each day + * @description Each array contains the day number, hour number, and number of commits: + * + * * `0-6`: Sunday - Saturday + * * `0-23`: Hour of day + * * Number of commits + * + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + get: operations["repos/get-punch-card-stats"]; + }; + "/repos/{owner}/{repo}/statuses/{sha}": { + /** + * Create a commit status + * @description Users with push access in a repository can create commit statuses for a given SHA. + * + * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + */ + post: operations["repos/create-commit-status"]; + }; + "/repos/{owner}/{repo}/subscribers": { + /** + * List watchers + * @description Lists the people watching the specified repository. + */ + get: operations["activity/list-watchers-for-repo"]; + }; + "/repos/{owner}/{repo}/subscription": { + /** + * Get a repository subscription + * @description Gets information about whether the authenticated user is subscribed to the repository. + */ + get: operations["activity/get-repo-subscription"]; + /** + * Set a repository subscription + * @description If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/activity/watching#delete-a-repository-subscription) completely. + */ + put: operations["activity/set-repo-subscription"]; + /** + * Delete a repository subscription + * @description This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/activity/watching#set-a-repository-subscription). + */ + delete: operations["activity/delete-repo-subscription"]; + }; + "/repos/{owner}/{repo}/tags": { + /** List repository tags */ + get: operations["repos/list-tags"]; + }; + "/repos/{owner}/{repo}/tags/protection": { + /** + * List tag protection states for a repository + * @description This returns the tag protection states of a repository. + * + * This information is only available to repository administrators. + */ + get: operations["repos/list-tag-protection"]; + /** + * Create a tag protection state for a repository + * @description This creates a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + post: operations["repos/create-tag-protection"]; + }; + "/repos/{owner}/{repo}/tags/protection/{tag_protection_id}": { + /** + * Delete a tag protection state for a repository + * @description This deletes a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + delete: operations["repos/delete-tag-protection"]; + }; + "/repos/{owner}/{repo}/tarball/{ref}": { + /** + * Download a repository archive (tar) + * @description Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + get: operations["repos/download-tarball-archive"]; + }; + "/repos/{owner}/{repo}/teams": { + /** + * List repository teams + * @description Lists the teams that have access to the specified repository and that are also visible to the authenticated user. + * + * For a public repository, a team is listed only if that team added the public repository explicitly. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to use this endpoint with a public repository, and `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/list-teams"]; + }; + "/repos/{owner}/{repo}/topics": { + /** Get all repository topics */ + get: operations["repos/get-all-topics"]; + /** Replace all repository topics */ + put: operations["repos/replace-all-topics"]; + }; + "/repos/{owner}/{repo}/traffic/clones": { + /** + * Get repository clones + * @description Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + get: operations["repos/get-clones"]; + }; + "/repos/{owner}/{repo}/traffic/popular/paths": { + /** + * Get top referral paths + * @description Get the top 10 popular contents over the last 14 days. + */ + get: operations["repos/get-top-paths"]; + }; + "/repos/{owner}/{repo}/traffic/popular/referrers": { + /** + * Get top referral sources + * @description Get the top 10 referrers over the last 14 days. + */ + get: operations["repos/get-top-referrers"]; + }; + "/repos/{owner}/{repo}/traffic/views": { + /** + * Get page views + * @description Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + get: operations["repos/get-views"]; + }; + "/repos/{owner}/{repo}/transfer": { + /** + * Transfer a repository + * @description A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://docs.github.com/articles/about-repository-transfers/). + */ + post: operations["repos/transfer"]; + }; + "/repos/{owner}/{repo}/vulnerability-alerts": { + /** + * Check if vulnerability alerts are enabled for a repository + * @description Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin read access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + get: operations["repos/check-vulnerability-alerts"]; + /** + * Enable vulnerability alerts + * @description Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + put: operations["repos/enable-vulnerability-alerts"]; + /** + * Disable vulnerability alerts + * @description Disables dependency alerts and the dependency graph for a repository. + * The authenticated user must have admin access to the repository. For more information, + * see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + delete: operations["repos/disable-vulnerability-alerts"]; + }; + "/repos/{owner}/{repo}/zipball/{ref}": { + /** + * Download a repository archive (zip) + * @description Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * + * **Note**: For private repositories, these links are temporary and expire after five minutes. If the repository is empty, you will receive a 404 when you follow the redirect. + */ + get: operations["repos/download-zipball-archive"]; + }; + "/repos/{template_owner}/{template_repo}/generate": { + /** + * Create a repository using a template + * @description Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. If the repository is not public, the authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + post: operations["repos/create-using-template"]; + }; + "/repositories": { + /** + * List public repositories + * @description Lists all public repositories in the order that they were created. + * + * Note: + * - For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise. + * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of repositories. + */ + get: operations["repos/list-public"]; + }; + "/search/code": { + /** + * Search code + * @description Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: + * + * `q=addClass+in:file+language:js+repo:jquery/jquery` + * + * This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. + * + * Considerations for code search: + * + * Due to the complexity of searching code, there are a few restrictions on how searches are performed: + * + * * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * * Only files smaller than 384 KB are searchable. + * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing + * language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + * + * This endpoint requires you to authenticate and limits you to 10 requests per minute. + */ + get: operations["search/code"]; + }; + "/search/commits": { + /** + * Search commits + * @description Find commits via various criteria on the default branch (usually `main`). This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match + * metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + * + * `q=repo:octocat/Spoon-Knife+css` + */ + get: operations["search/commits"]; + }; + "/search/issues": { + /** + * Search issues and pull requests + * @description Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted + * search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * `q=windows+label:bug+language:python+state:open&sort=created&order=asc` + * + * This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. + * + * **Note:** For requests made by GitHub Apps with a user access token, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + */ + get: operations["search/issues-and-pull-requests"]; + }; + "/search/labels": { + /** + * Search labels + * @description Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + * + * `q=bug+defect+enhancement&repository_id=64778136` + * + * The labels that best match the query appear first in the search results. + */ + get: operations["search/labels"]; + }; + "/search/repositories": { + /** + * Search repositories + * @description Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: + * + * `q=tetris+language:assembly&sort=stars&order=desc` + * + * This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. + */ + get: operations["search/repos"]; + }; + "/search/topics": { + /** + * Search topics + * @description Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). See "[Searching topics](https://docs.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: + * + * `q=ruby+is:featured` + * + * This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + */ + get: operations["search/topics"]; + }; + "/search/users": { + /** + * Search users + * @description Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for users, you can get text match metadata for the issue **login**, public **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you're looking for a list of popular users, you might try this query: + * + * `q=tom+repos:%3E42+followers:%3E1000` + * + * This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. + * + * This endpoint does not accept authentication and will only include publicly visible users. As an alternative, you can use the GraphQL API. The GraphQL API requires authentication and will return private users, including Enterprise Managed Users (EMUs), that you are authorized to view. For more information, see "[GraphQL Queries](https://docs.github.com/graphql/reference/queries#search)." + */ + get: operations["search/users"]; + }; + "/teams/{team_id}": { + /** + * Get a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/teams/teams#get-a-team-by-name) endpoint. + */ + get: operations["teams/get-legacy"]; + /** + * Delete a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/teams/teams#delete-a-team) endpoint. + * + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + */ + delete: operations["teams/delete-legacy"]; + /** + * Update a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/teams/teams#update-a-team) endpoint. + * + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** With nested teams, the `privacy` for parent teams cannot be `secret`. + */ + patch: operations["teams/update-legacy"]; + }; + "/teams/{team_id}/discussions": { + /** + * List discussions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List discussions`](https://docs.github.com/rest/teams/discussions#list-discussions) endpoint. + * + * List all discussions on a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/list-discussions-legacy"]; + /** + * Create a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create a discussion`](https://docs.github.com/rest/teams/discussions#create-a-discussion) endpoint. + * + * Creates a new discussion post on a team's page. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["teams/create-discussion-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}": { + /** + * Get a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion) endpoint. + * + * Get a specific discussion on a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/get-discussion-legacy"]; + /** + * Delete a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Delete a discussion`](https://docs.github.com/rest/teams/discussions#delete-a-discussion) endpoint. + * + * Delete a discussion from a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["teams/delete-discussion-legacy"]; + /** + * Update a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion](https://docs.github.com/rest/teams/discussions#update-a-discussion) endpoint. + * + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + patch: operations["teams/update-discussion-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments": { + /** + * List discussion comments (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List discussion comments](https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments) endpoint. + * + * List all comments on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/list-discussion-comments-legacy"]; + /** + * Create a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Create a discussion comment](https://docs.github.com/rest/teams/discussion-comments#create-a-discussion-comment) endpoint. + * + * Creates a new comment on a team discussion. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["teams/create-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": { + /** + * Get a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment) endpoint. + * + * Get a specific comment on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/get-discussion-comment-legacy"]; + /** + * Delete a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a discussion comment](https://docs.github.com/rest/teams/discussion-comments#delete-a-discussion-comment) endpoint. + * + * Deletes a comment on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["teams/delete-discussion-comment-legacy"]; + /** + * Update a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion comment](https://docs.github.com/rest/teams/discussion-comments#update-a-discussion-comment) endpoint. + * + * Edits the body text of a discussion comment. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + patch: operations["teams/update-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + /** + * List reactions for a team discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment) endpoint. + * + * List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["reactions/list-for-team-discussion-comment-legacy"]; + /** + * Create reaction for a team discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Create reaction for a team discussion comment](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment)" endpoint. + * + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["reactions/create-for-team-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/reactions": { + /** + * List reactions for a team discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion) endpoint. + * + * List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["reactions/list-for-team-discussion-legacy"]; + /** + * Create reaction for a team discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion`](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion) endpoint. + * + * Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["reactions/create-for-team-discussion-legacy"]; + }; + "/teams/{team_id}/invitations": { + /** + * List pending team invitations (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/teams/members#list-pending-team-invitations) endpoint. + * + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + get: operations["teams/list-pending-invitations-legacy"]; + }; + "/teams/{team_id}/members": { + /** + * List team members (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/teams/members#list-team-members) endpoint. + * + * Team members will include the members of child teams. + */ + get: operations["teams/list-members-legacy"]; + }; + "/teams/{team_id}/members/{username}": { + /** + * Get team member (Legacy) + * @deprecated + * @description The "Get team member" endpoint (described below) is deprecated. + * + * We recommend using the [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + get: operations["teams/get-member-legacy"]; + /** + * Add team member (Legacy) + * @deprecated + * @description The "Add team member" endpoint (described below) is deprecated. + * + * We recommend using the [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["teams/add-member-legacy"]; + /** + * Remove team member (Legacy) + * @deprecated + * @description The "Remove team member" endpoint (described below) is deprecated. + * + * We recommend using the [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + delete: operations["teams/remove-member-legacy"]; + }; + "/teams/{team_id}/memberships/{username}": { + /** + * Get team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint. + * + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + */ + get: operations["teams/get-membership-for-user-legacy"]; + /** + * Add or update team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + */ + put: operations["teams/add-or-update-membership-for-user-legacy"]; + /** + * Remove team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + delete: operations["teams/remove-membership-for-user-legacy"]; + }; + "/teams/{team_id}/projects": { + /** + * List team projects (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team projects`](https://docs.github.com/rest/teams/teams#list-team-projects) endpoint. + * + * Lists the organization projects for a team. + */ + get: operations["teams/list-projects-legacy"]; + }; + "/teams/{team_id}/projects/{project_id}": { + /** + * Check team permissions for a project (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a project](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-project) endpoint. + * + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + */ + get: operations["teams/check-permissions-for-project-legacy"]; + /** + * Add or update team project permissions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team project permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-project-permissions) endpoint. + * + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + */ + put: operations["teams/add-or-update-project-permissions-legacy"]; + /** + * Remove a project from a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a project from a team](https://docs.github.com/rest/teams/teams#remove-a-project-from-a-team) endpoint. + * + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. **Note:** This endpoint removes the project from the team, but does not delete it. + */ + delete: operations["teams/remove-project-legacy"]; + }; + "/teams/{team_id}/repos": { + /** + * List team repositories (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/teams/teams#list-team-repositories) endpoint. + */ + get: operations["teams/list-repos-legacy"]; + }; + "/teams/{team_id}/repos/{owner}/{repo}": { + /** + * Check team permissions for a repository (Legacy) + * @deprecated + * @description **Note**: Repositories inherited through a parent team will also be checked. + * + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository) endpoint. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + get: operations["teams/check-permissions-for-repo-legacy"]; + /** + * Add or update team repository permissions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Add or update team repository permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions)" endpoint. + * + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["teams/add-or-update-repo-permissions-legacy"]; + /** + * Remove a repository from a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team) endpoint. + * + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team. + */ + delete: operations["teams/remove-repo-legacy"]; + }; + "/teams/{team_id}/teams": { + /** + * List child teams (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/teams/teams#list-child-teams) endpoint. + */ + get: operations["teams/list-child-legacy"]; + }; + "/user": { + /** + * Get the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information. + */ + get: operations["users/get-authenticated"]; + /** + * Update the authenticated user + * @description **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API. + */ + patch: operations["users/update-authenticated"]; + }; + "/user/blocks": { + /** + * List users blocked by the authenticated user + * @description List the users you've blocked on your personal account. + */ + get: operations["users/list-blocked-by-authenticated-user"]; + }; + "/user/blocks/{username}": { + /** + * Check if a user is blocked by the authenticated user + * @description Returns a 204 if the given user is blocked by the authenticated user. Returns a 404 if the given user is not blocked by the authenticated user, or if the given user account has been identified as spam by GitHub. + */ + get: operations["users/check-blocked"]; + /** + * Block a user + * @description Blocks the given user and returns a 204. If the authenticated user cannot block the given user a 422 is returned. + */ + put: operations["users/block"]; + /** + * Unblock a user + * @description Unblocks the given user and returns a 204. + */ + delete: operations["users/unblock"]; + }; + "/user/codespaces": { + /** + * List codespaces for the authenticated user + * @description Lists the authenticated user's codespaces. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/list-for-authenticated-user"]; + /** + * Create a codespace for the authenticated user + * @description Creates a new codespace, owned by the authenticated user. + * + * This endpoint requires either a `repository_id` OR a `pull_request` but not both. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/create-for-authenticated-user"]; + }; + "/user/codespaces/secrets": { + /** + * List secrets for the authenticated user + * @description Lists all development environment secrets available for a user's codespaces without revealing their + * encrypted values. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + get: operations["codespaces/list-secrets-for-authenticated-user"]; + }; + "/user/codespaces/secrets/public-key": { + /** + * Get public key for the authenticated user + * @description Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + get: operations["codespaces/get-public-key-for-authenticated-user"]; + }; + "/user/codespaces/secrets/{secret_name}": { + /** + * Get a secret for the authenticated user + * @description Gets a development environment secret available to a user's codespaces without revealing its encrypted value. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + get: operations["codespaces/get-secret-for-authenticated-user"]; + /** + * Create or update a secret for the authenticated user + * @description Creates or updates a development environment secret for a user's codespace with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + put: operations["codespaces/create-or-update-secret-for-authenticated-user"]; + /** + * Delete a secret for the authenticated user + * @description Deletes a development environment secret from a user's codespaces using the secret name. Deleting the secret will remove access from all codespaces that were allowed to access the secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + delete: operations["codespaces/delete-secret-for-authenticated-user"]; + }; + "/user/codespaces/secrets/{secret_name}/repositories": { + /** + * List selected repositories for a user secret + * @description List the repositories that have been granted the ability to use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + get: operations["codespaces/list-repositories-for-secret-for-authenticated-user"]; + /** + * Set selected repositories for a user secret + * @description Select the repositories that will use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + put: operations["codespaces/set-repositories-for-secret-for-authenticated-user"]; + }; + "/user/codespaces/secrets/{secret_name}/repositories/{repository_id}": { + /** + * Add a selected repository to a user secret + * @description Adds a repository to the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + put: operations["codespaces/add-repository-for-secret-for-authenticated-user"]; + /** + * Remove a selected repository from a user secret + * @description Removes a repository from the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + delete: operations["codespaces/remove-repository-for-secret-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}": { + /** + * Get a codespace for the authenticated user + * @description Gets information about a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/get-for-authenticated-user"]; + /** + * Delete a codespace for the authenticated user + * @description Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + delete: operations["codespaces/delete-for-authenticated-user"]; + /** + * Update a codespace for the authenticated user + * @description Updates a codespace owned by the authenticated user. Currently only the codespace's machine type and recent folders can be modified using this endpoint. + * + * If you specify a new machine type it will be applied the next time your codespace is started. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + patch: operations["codespaces/update-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/exports": { + /** + * Export a codespace for the authenticated user + * @description Triggers an export of the specified codespace and returns a URL and ID where the status of the export can be monitored. + * + * If changes cannot be pushed to the codespace's repository, they will be pushed to a new or previously-existing fork instead. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/export-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/exports/{export_id}": { + /** + * Get details about a codespace export + * @description Gets information about an export of a codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/get-export-details-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/machines": { + /** + * List machine types for a codespace + * @description List the machine types a codespace can transition to use. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/codespace-machines-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/publish": { + /** + * Create a repository from an unpublished codespace + * @description Publishes an unpublished codespace, creating a new repository and assigning it to the codespace. + * + * The codespace's token is granted write permissions to the repository, allowing the user to push their changes. + * + * This will fail for a codespace that is already published, meaning it has an associated repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/publish-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/start": { + /** + * Start a codespace for the authenticated user + * @description Starts a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/start-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/stop": { + /** + * Stop a codespace for the authenticated user + * @description Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/stop-for-authenticated-user"]; + }; + "/user/docker/conflicts": { + /** + * Get list of conflicting packages during Docker migration for authenticated-user + * @description Lists all packages that are owned by the authenticated user within the user's namespace, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + get: operations["packages/list-docker-migration-conflicting-packages-for-authenticated-user"]; + }; + "/user/email/visibility": { + /** + * Set primary email visibility for the authenticated user + * @description Sets the visibility for your primary email addresses. + */ + patch: operations["users/set-primary-email-visibility-for-authenticated-user"]; + }; + "/user/emails": { + /** + * List email addresses for the authenticated user + * @description Lists all of your email addresses, and specifies which one is visible + * to the public. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + get: operations["users/list-emails-for-authenticated-user"]; + /** + * Add an email address for the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + post: operations["users/add-email-for-authenticated-user"]; + /** + * Delete an email address for the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + delete: operations["users/delete-email-for-authenticated-user"]; + }; + "/user/followers": { + /** + * List followers of the authenticated user + * @description Lists the people following the authenticated user. + */ + get: operations["users/list-followers-for-authenticated-user"]; + }; + "/user/following": { + /** + * List the people the authenticated user follows + * @description Lists the people who the authenticated user follows. + */ + get: operations["users/list-followed-by-authenticated-user"]; + }; + "/user/following/{username}": { + /** Check if a person is followed by the authenticated user */ + get: operations["users/check-person-is-followed-by-authenticated"]; + /** + * Follow a user + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + put: operations["users/follow"]; + /** + * Unfollow a user + * @description OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + delete: operations["users/unfollow"]; + }; + "/user/gpg_keys": { + /** + * List GPG keys for the authenticated user + * @description Lists the current user's GPG keys. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + get: operations["users/list-gpg-keys-for-authenticated-user"]; + /** + * Create a GPG key for the authenticated user + * @description Adds a GPG key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + post: operations["users/create-gpg-key-for-authenticated-user"]; + }; + "/user/gpg_keys/{gpg_key_id}": { + /** + * Get a GPG key for the authenticated user + * @description View extended details for a single GPG key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + get: operations["users/get-gpg-key-for-authenticated-user"]; + /** + * Delete a GPG key for the authenticated user + * @description Removes a GPG key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:gpg_key` scope to use this endpoint. + */ + delete: operations["users/delete-gpg-key-for-authenticated-user"]; + }; + "/user/installations": { + /** + * List app installations accessible to the user access token + * @description Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You can find the permissions for the installation under the `permissions` key. + */ + get: operations["apps/list-installations-for-authenticated-user"]; + }; + "/user/installations/{installation_id}/repositories": { + /** + * List repositories accessible to the user access token + * @description List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + get: operations["apps/list-installation-repos-for-authenticated-user"]; + }; + "/user/installations/{installation_id}/repositories/{repository_id}": { + /** + * Add a repository to an app installation + * @description Add a single repository to an installation. The authenticated user must have admin access to the repository. + */ + put: operations["apps/add-repo-to-installation-for-authenticated-user"]; + /** + * Remove a repository from an app installation + * @description Remove a single repository from an installation. The authenticated user must have admin access to the repository. The installation must have the `repository_selection` of `selected`. + */ + delete: operations["apps/remove-repo-from-installation-for-authenticated-user"]; + }; + "/user/interaction-limits": { + /** + * Get interaction restrictions for your public repositories + * @description Shows which type of GitHub user can interact with your public repositories and when the restriction expires. + */ + get: operations["interactions/get-restrictions-for-authenticated-user"]; + /** + * Set interaction restrictions for your public repositories + * @description Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. + */ + put: operations["interactions/set-restrictions-for-authenticated-user"]; + /** + * Remove interaction restrictions from your public repositories + * @description Removes any interaction restrictions from your public repositories. + */ + delete: operations["interactions/remove-restrictions-for-authenticated-user"]; + }; + "/user/issues": { + /** + * List user account issues assigned to the authenticated user + * @description List issues across owned and member repositories assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-for-authenticated-user"]; + }; + "/user/keys": { + /** + * List public SSH keys for the authenticated user + * @description Lists the public SSH keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + get: operations["users/list-public-ssh-keys-for-authenticated-user"]; + /** + * Create a public SSH key for the authenticated user + * @description Adds a public SSH key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + post: operations["users/create-public-ssh-key-for-authenticated-user"]; + }; + "/user/keys/{key_id}": { + /** + * Get a public SSH key for the authenticated user + * @description View extended details for a single public SSH key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + get: operations["users/get-public-ssh-key-for-authenticated-user"]; + /** + * Delete a public SSH key for the authenticated user + * @description Removes a public SSH key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:public_key` scope to use this endpoint. + */ + delete: operations["users/delete-public-ssh-key-for-authenticated-user"]; + }; + "/user/marketplace_purchases": { + /** + * List subscriptions for the authenticated user + * @description Lists the active subscriptions for the authenticated user. + */ + get: operations["apps/list-subscriptions-for-authenticated-user"]; + }; + "/user/marketplace_purchases/stubbed": { + /** + * List subscriptions for the authenticated user (stubbed) + * @description Lists the active subscriptions for the authenticated user. + */ + get: operations["apps/list-subscriptions-for-authenticated-user-stubbed"]; + }; + "/user/memberships/orgs": { + /** + * List organization memberships for the authenticated user + * @description Lists all of the authenticated user's organization memberships. + */ + get: operations["orgs/list-memberships-for-authenticated-user"]; + }; + "/user/memberships/orgs/{org}": { + /** + * Get an organization membership for the authenticated user + * @description If the authenticated user is an active or pending member of the organization, this endpoint will return the user's membership. If the authenticated user is not affiliated with the organization, a `404` is returned. This endpoint will return a `403` if the request is made by a GitHub App that is blocked by the organization. + */ + get: operations["orgs/get-membership-for-authenticated-user"]; + /** + * Update an organization membership for the authenticated user + * @description Converts the authenticated user to an active member of the organization, if that user has a pending invitation from the organization. + */ + patch: operations["orgs/update-membership-for-authenticated-user"]; + }; + "/user/migrations": { + /** + * List user migrations + * @description Lists all migrations a user has started. + */ + get: operations["migrations/list-for-authenticated-user"]; + /** + * Start a user migration + * @description Initiates the generation of a user migration archive. + */ + post: operations["migrations/start-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}": { + /** + * Get a user migration status + * @description Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + * + * * `pending` - the migration hasn't started yet. + * * `exporting` - the migration is in progress. + * * `exported` - the migration finished successfully. + * * `failed` - the migration failed. + * + * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/migrations/users#download-a-user-migration-archive). + */ + get: operations["migrations/get-status-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/archive": { + /** + * Download a user migration archive + * @description Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + * + * * attachments + * * bases + * * commit\_comments + * * issue\_comments + * * issue\_events + * * issues + * * milestones + * * organizations + * * projects + * * protected\_branches + * * pull\_request\_reviews + * * pull\_requests + * * releases + * * repositories + * * review\_comments + * * schema + * * users + * + * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + */ + get: operations["migrations/get-archive-for-authenticated-user"]; + /** + * Delete a user migration archive + * @description Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/migrations/users#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/migrations/users#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. + */ + delete: operations["migrations/delete-archive-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/repos/{repo_name}/lock": { + /** + * Unlock a user repository + * @description Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/migrations/users#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/repos/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. + */ + delete: operations["migrations/unlock-repo-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/repositories": { + /** + * List repositories for a user migration + * @description Lists all the repositories for this user migration. + */ + get: operations["migrations/list-repos-for-authenticated-user"]; + }; + "/user/orgs": { + /** + * List organizations for the authenticated user + * @description List organizations for the authenticated user. + * + * For OAuth app tokens and personal access tokens (classic), this endpoint only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope for OAuth app tokens and personal access tokens (classic). Requests with insufficient scope will receive a `403 Forbidden` response. + */ + get: operations["orgs/list-for-authenticated-user"]; + }; + "/user/packages": { + /** + * List packages for the authenticated user's namespace + * @description Lists packages owned by the authenticated user within the user's namespace. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/list-packages-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}": { + /** + * Get a package for the authenticated user + * @description Gets a specific package for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-for-authenticated-user"]; + /** + * Delete a package for the authenticated user + * @description Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, `repo` scope is also required. For the list these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/restore": { + /** + * Restore a package for the authenticated user + * @description Restores a package owned by the authenticated user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/versions": { + /** + * List package versions for a package owned by the authenticated user + * @description Lists package versions for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-all-package-versions-for-package-owned-by-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}": { + /** + * Get a package version for the authenticated user + * @description Gets a specific package version for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-version-for-authenticated-user"]; + /** + * Delete a package version for the authenticated user + * @description Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-version-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + /** + * Restore a package version for the authenticated user + * @description Restores a package version owned by the authenticated user. + * + * You can restore a deleted package version under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-version-for-authenticated-user"]; + }; + "/user/projects": { + /** + * Create a user project + * @description Creates a user project board. Returns a `410 Gone` status if the user does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + post: operations["projects/create-for-authenticated-user"]; + }; + "/user/public_emails": { + /** + * List public email addresses for the authenticated user + * @description Lists your publicly visible email address, which you can set with the + * [Set primary email visibility for the authenticated user](https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user) + * endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + get: operations["users/list-public-emails-for-authenticated-user"]; + }; + "/user/repos": { + /** + * List repositories for the authenticated user + * @description Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + */ + get: operations["repos/list-for-authenticated-user"]; + /** + * Create a repository for the authenticated user + * @description Creates a new repository for the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + post: operations["repos/create-for-authenticated-user"]; + }; + "/user/repository_invitations": { + /** + * List repository invitations for the authenticated user + * @description When authenticating as a user, this endpoint will list all currently open repository invitations for that user. + */ + get: operations["repos/list-invitations-for-authenticated-user"]; + }; + "/user/repository_invitations/{invitation_id}": { + /** Decline a repository invitation */ + delete: operations["repos/decline-invitation-for-authenticated-user"]; + /** Accept a repository invitation */ + patch: operations["repos/accept-invitation-for-authenticated-user"]; + }; + "/user/social_accounts": { + /** + * List social accounts for the authenticated user + * @description Lists all of your social accounts. + */ + get: operations["users/list-social-accounts-for-authenticated-user"]; + /** + * Add social accounts for the authenticated user + * @description Add one or more social accounts to the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + post: operations["users/add-social-account-for-authenticated-user"]; + /** + * Delete social accounts for the authenticated user + * @description Deletes one or more social accounts from the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + delete: operations["users/delete-social-account-for-authenticated-user"]; + }; + "/user/ssh_signing_keys": { + /** + * List SSH signing keys for the authenticated user + * @description Lists the SSH signing keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + get: operations["users/list-ssh-signing-keys-for-authenticated-user"]; + /** + * Create a SSH signing key for the authenticated user + * @description Creates an SSH signing key for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:ssh_signing_key` scope to use this endpoint. + */ + post: operations["users/create-ssh-signing-key-for-authenticated-user"]; + }; + "/user/ssh_signing_keys/{ssh_signing_key_id}": { + /** + * Get an SSH signing key for the authenticated user + * @description Gets extended details for an SSH signing key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + get: operations["users/get-ssh-signing-key-for-authenticated-user"]; + /** + * Delete an SSH signing key for the authenticated user + * @description Deletes an SSH signing key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:ssh_signing_key` scope to use this endpoint. + */ + delete: operations["users/delete-ssh-signing-key-for-authenticated-user"]; + }; + "/user/starred": { + /** + * List repositories starred by the authenticated user + * @description Lists repositories the authenticated user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + get: operations["activity/list-repos-starred-by-authenticated-user"]; + }; + "/user/starred/{owner}/{repo}": { + /** + * Check if a repository is starred by the authenticated user + * @description Whether the authenticated user has starred the repository. + */ + get: operations["activity/check-repo-is-starred-by-authenticated-user"]; + /** + * Star a repository for the authenticated user + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["activity/star-repo-for-authenticated-user"]; + /** + * Unstar a repository for the authenticated user + * @description Unstar a repository that the authenticated user has previously starred. + */ + delete: operations["activity/unstar-repo-for-authenticated-user"]; + }; + "/user/subscriptions": { + /** + * List repositories watched by the authenticated user + * @description Lists repositories the authenticated user is watching. + */ + get: operations["activity/list-watched-repos-for-authenticated-user"]; + }; + "/user/teams": { + /** + * List teams for the authenticated user + * @description List all of the teams across all of the organizations to which the authenticated + * user belongs. + * + * OAuth app tokens and personal access tokens (classic) need the `user`, `repo`, or `read:org` scope to use this endpoint. + * + * When using a fine-grained personal access token, the resource owner of the token must be a single organization, and the response will only include the teams from that organization. + */ + get: operations["teams/list-for-authenticated-user"]; + }; + "/users": { + /** + * List users + * @description Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of users. + */ + get: operations["users/list"]; + }; + "/users/{username}": { + /** + * Get a user + * @description Provides publicly available information about someone with a GitHub account. + * + * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#authentication). + * + * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://docs.github.com/rest/users/emails)". + */ + get: operations["users/get-by-username"]; + }; + "/users/{username}/docker/conflicts": { + /** + * Get list of conflicting packages during Docker migration for user + * @description Lists all packages that are in a specific user's namespace, that the requesting user has access to, and that encountered a conflict during Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + get: operations["packages/list-docker-migration-conflicting-packages-for-user"]; + }; + "/users/{username}/events": { + /** + * List events for the authenticated user + * @description If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. + */ + get: operations["activity/list-events-for-authenticated-user"]; + }; + "/users/{username}/events/orgs/{org}": { + /** + * List organization events for the authenticated user + * @description This is the user's organization dashboard. You must be authenticated as the user to view this. + */ + get: operations["activity/list-org-events-for-authenticated-user"]; + }; + "/users/{username}/events/public": { + /** List public events for a user */ + get: operations["activity/list-public-events-for-user"]; + }; + "/users/{username}/followers": { + /** + * List followers of a user + * @description Lists the people following the specified user. + */ + get: operations["users/list-followers-for-user"]; + }; + "/users/{username}/following": { + /** + * List the people a user follows + * @description Lists the people who the specified user follows. + */ + get: operations["users/list-following-for-user"]; + }; + "/users/{username}/following/{target_user}": { + /** Check if a user follows another user */ + get: operations["users/check-following-for-user"]; + }; + "/users/{username}/gists": { + /** + * List gists for a user + * @description Lists public gists for the specified user: + */ + get: operations["gists/list-for-user"]; + }; + "/users/{username}/gpg_keys": { + /** + * List GPG keys for a user + * @description Lists the GPG keys for a user. This information is accessible by anyone. + */ + get: operations["users/list-gpg-keys-for-user"]; + }; + "/users/{username}/hovercard": { + /** + * Get contextual information for a user + * @description Provides hovercard information. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + * + * The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository, you would use a `subject_type` value of `repository` and a `subject_id` value of `1300192` (the ID of the `Spoon-Knife` repository). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["users/get-context-for-user"]; + }; + "/users/{username}/installation": { + /** + * Get a user installation for the authenticated app + * @description Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-user-installation"]; + }; + "/users/{username}/keys": { + /** + * List public keys for a user + * @description Lists the _verified_ public SSH keys for a user. This is accessible by anyone. + */ + get: operations["users/list-public-keys-for-user"]; + }; + "/users/{username}/orgs": { + /** + * List organizations for a user + * @description List [public organization memberships](https://docs.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user) API instead. + */ + get: operations["orgs/list-for-user"]; + }; + "/users/{username}/packages": { + /** + * List packages for a user + * @description Lists all packages in a user's namespace for which the requesting user has access. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/list-packages-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}": { + /** + * Get a package for a user + * @description Gets a specific package metadata for a public package owned by a user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-for-user"]; + /** + * Delete a package for a user + * @description Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/restore": { + /** + * Restore a package for a user + * @description Restores an entire package for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/versions": { + /** + * List package versions for a package owned by a user + * @description Lists package versions for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-all-package-versions-for-package-owned-by-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": { + /** + * Get a package version for a user + * @description Gets a specific package version for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-version-for-user"]; + /** + * Delete package version for a user + * @description Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-version-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + /** + * Restore package version for a user + * @description Restores a specific package version for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-version-for-user"]; + }; + "/users/{username}/projects": { + /** + * List user projects + * @description Lists projects for a user. + */ + get: operations["projects/list-for-user"]; + }; + "/users/{username}/received_events": { + /** + * List events received by the authenticated user + * @description These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. + */ + get: operations["activity/list-received-events-for-user"]; + }; + "/users/{username}/received_events/public": { + /** List public events received by a user */ + get: operations["activity/list-received-public-events-for-user"]; + }; + "/users/{username}/repos": { + /** + * List repositories for a user + * @description Lists public repositories for the specified user. + */ + get: operations["repos/list-for-user"]; + }; + "/users/{username}/settings/billing/actions": { + /** + * Get GitHub Actions billing for a user + * @description Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + get: operations["billing/get-github-actions-billing-user"]; + }; + "/users/{username}/settings/billing/packages": { + /** + * Get GitHub Packages billing for a user + * @description Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + get: operations["billing/get-github-packages-billing-user"]; + }; + "/users/{username}/settings/billing/shared-storage": { + /** + * Get shared storage billing for a user + * @description Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + get: operations["billing/get-shared-storage-billing-user"]; + }; + "/users/{username}/social_accounts": { + /** + * List social accounts for a user + * @description Lists social media accounts for a user. This endpoint is accessible by anyone. + */ + get: operations["users/list-social-accounts-for-user"]; + }; + "/users/{username}/ssh_signing_keys": { + /** + * List SSH signing keys for a user + * @description Lists the SSH signing keys for a user. This operation is accessible by anyone. + */ + get: operations["users/list-ssh-signing-keys-for-user"]; + }; + "/users/{username}/starred": { + /** + * List repositories starred by a user + * @description Lists repositories a user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + get: operations["activity/list-repos-starred-by-user"]; + }; + "/users/{username}/subscriptions": { + /** + * List repositories watched by a user + * @description Lists repositories a user is watching. + */ + get: operations["activity/list-repos-watched-by-user"]; + }; + "/versions": { + /** + * Get all API versions + * @description Get all supported GitHub API versions. + */ + get: operations["meta/get-all-versions"]; + }; + "/zen": { + /** + * Get the Zen of GitHub + * @description Get a random sentence from the Zen of GitHub + */ + get: operations["meta/get-zen"]; + }; + "/repos/{owner}/{repo}/compare/{base}...{head}": { + /** + * Compare two commits + * @description **Deprecated**: Use `repos.compareCommitsWithBasehead()` (`GET /repos/{owner}/{repo}/compare/{basehead}`) instead. Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + * + * When calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/compare-commits"]; + }; +} + +export type webhooks = Record; + +export interface components { + schemas: { + root: { + /** Format: uri-template */ + current_user_url: string; + /** Format: uri-template */ + current_user_authorizations_html_url: string; + /** Format: uri-template */ + authorizations_url: string; + /** Format: uri-template */ + code_search_url: string; + /** Format: uri-template */ + commit_search_url: string; + /** Format: uri-template */ + emails_url: string; + /** Format: uri-template */ + emojis_url: string; + /** Format: uri-template */ + events_url: string; + /** Format: uri-template */ + feeds_url: string; + /** Format: uri-template */ + followers_url: string; + /** Format: uri-template */ + following_url: string; + /** Format: uri-template */ + gists_url: string; + /** + * Format: uri-template + * @deprecated + */ + hub_url?: string; + /** Format: uri-template */ + issue_search_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + label_search_url: string; + /** Format: uri-template */ + notifications_url: string; + /** Format: uri-template */ + organization_url: string; + /** Format: uri-template */ + organization_repositories_url: string; + /** Format: uri-template */ + organization_teams_url: string; + /** Format: uri-template */ + public_gists_url: string; + /** Format: uri-template */ + rate_limit_url: string; + /** Format: uri-template */ + repository_url: string; + /** Format: uri-template */ + repository_search_url: string; + /** Format: uri-template */ + current_user_repositories_url: string; + /** Format: uri-template */ + starred_url: string; + /** Format: uri-template */ + starred_gists_url: string; + /** Format: uri-template */ + topic_search_url?: string; + /** Format: uri-template */ + user_url: string; + /** Format: uri-template */ + user_organizations_url: string; + /** Format: uri-template */ + user_repositories_url: string; + /** Format: uri-template */ + user_search_url: string; + }; + /** + * @description The package's language or package management ecosystem. + * @enum {string} + */ + "security-advisory-ecosystems": + | "rubygems" + | "npm" + | "pip" + | "maven" + | "nuget" + | "composer" + | "go" + | "rust" + | "erlang" + | "actions" + | "pub" + | "other" + | "swift"; + /** @description A vulnerability describing the product and its affected versions within a GitHub Security Advisory. */ + vulnerability: { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name: string | null; + } | null; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range: string | null; + /** @description The package version that resolves the vulnerability. */ + first_patched_version: string | null; + /** @description The functions in the package that are affected by the vulnerability. */ + vulnerable_functions: readonly string[] | null; + }; + /** + * Simple User + * @description A GitHub user. + */ + "simple-user": { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + }; + /** + * @description The type of credit the user is receiving. + * @enum {string} + */ + "security-advisory-credit-types": + | "analyst" + | "finder" + | "reporter" + | "coordinator" + | "remediation_developer" + | "remediation_reviewer" + | "remediation_verifier" + | "tool" + | "sponsor" + | "other"; + /** @description A GitHub Security Advisory. */ + "global-advisory": { + /** @description The GitHub Security Advisory ID. */ + ghsa_id: string; + /** @description The Common Vulnerabilities and Exposures (CVE) ID. */ + cve_id: string | null; + /** @description The API URL for the advisory. */ + url: string; + /** + * Format: uri + * @description The URL for the advisory. + */ + html_url: string; + /** + * Format: uri + * @description The API URL for the repository advisory. + */ + repository_advisory_url: string | null; + /** @description A short summary of the advisory. */ + summary: string; + /** @description A detailed description of what the advisory entails. */ + description: string | null; + /** + * @description The type of advisory. + * @enum {string} + */ + type: "reviewed" | "unreviewed" | "malware"; + /** + * @description The severity of the advisory. + * @enum {string} + */ + severity: "critical" | "high" | "medium" | "low" | "unknown"; + /** + * Format: uri + * @description The URL of the advisory's source code. + */ + source_code_location: string | null; + identifiers: + | readonly { + /** + * @description The type of identifier. + * @enum {string} + */ + type: "CVE" | "GHSA"; + /** @description The identifier value. */ + value: string; + }[] + | null; + references: string[] | null; + /** + * Format: date-time + * @description The date and time of when the advisory was published, in ISO 8601 format. + */ + published_at: string; + /** + * Format: date-time + * @description The date and time of when the advisory was last updated, in ISO 8601 format. + */ + updated_at: string; + /** + * Format: date-time + * @description The date and time of when the advisory was reviewed by GitHub, in ISO 8601 format. + */ + github_reviewed_at: string | null; + /** + * Format: date-time + * @description The date and time when the advisory was published in the National Vulnerability Database, in ISO 8601 format. + * This field is only populated when the advisory is imported from the National Vulnerability Database. + */ + nvd_published_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was withdrawn, in ISO 8601 format. + */ + withdrawn_at: string | null; + /** @description The products and respective version ranges affected by the advisory. */ + vulnerabilities: components["schemas"]["vulnerability"][] | null; + cvss: { + /** @description The CVSS vector. */ + vector_string: string | null; + /** @description The CVSS score. */ + score: number | null; + } | null; + cwes: + | { + /** @description The Common Weakness Enumeration (CWE) identifier. */ + cwe_id: string; + /** @description The name of the CWE. */ + name: string; + }[] + | null; + /** @description The users who contributed to the advisory. */ + credits: + | readonly { + user: components["schemas"]["simple-user"]; + type: components["schemas"]["security-advisory-credit-types"]; + }[] + | null; + }; + /** + * Basic Error + * @description Basic Error + */ + "basic-error": { + message?: string; + documentation_url?: string; + url?: string; + status?: string; + }; + /** + * Validation Error Simple + * @description Validation Error Simple + */ + "validation-error-simple": { + message: string; + documentation_url: string; + errors?: string[]; + }; + /** + * Simple User + * @description A GitHub user. + */ + "nullable-simple-user": { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + } | null; + /** + * GitHub app + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + integration: { + /** + * @description Unique identifier of the GitHub app + * @example 37 + */ + id: number; + /** + * @description The slug name of the GitHub app + * @example probot-owners + */ + slug?: string; + /** @example MDExOkludGVncmF0aW9uMQ== */ + node_id: string; + owner: components["schemas"]["nullable-simple-user"]; + /** + * @description The name of the GitHub app + * @example Probot Owners + */ + name: string; + /** @example The description of the app. */ + description: string | null; + /** + * Format: uri + * @example https://example.com + */ + external_url: string; + /** + * Format: uri + * @example https://github.com/apps/super-ci + */ + html_url: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + created_at: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + updated_at: string; + /** + * @description The set of permissions for the GitHub app + * @example { + * "issues": "read", + * "deployments": "write" + * } + */ + permissions: { + issues?: string; + checks?: string; + metadata?: string; + contents?: string; + deployments?: string; + [key: string]: string | undefined; + }; + /** + * @description The list of events for the GitHub app + * @example [ + * "label", + * "deployment" + * ] + */ + events: string[]; + /** + * @description The number of installations associated with the GitHub app + * @example 5 + */ + installations_count?: number; + /** @example "Iv1.25b5d1e65ffc4022" */ + client_id?: string; + /** @example "1d4b2097ac622ba702d19de498f005747a8b21d3" */ + client_secret?: string; + /** @example "6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b" */ + webhook_secret?: string | null; + /** @example "-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\n-----END RSA PRIVATE KEY-----\n" */ + pem?: string; + } | null; + /** + * Format: uri + * @description The URL to which the payloads will be delivered. + * @example https://example.com/webhook + */ + "webhook-config-url": string; + /** + * @description The media type used to serialize the payloads. Supported values include `json` and `form`. The default is `form`. + * @example "json" + */ + "webhook-config-content-type": string; + /** + * @description If provided, the `secret` will be used as the `key` to generate the HMAC hex digest value for [delivery signature headers](https://docs.github.com/webhooks/event-payloads/#delivery-headers). + * @example "********" + */ + "webhook-config-secret": string; + "webhook-config-insecure-ssl": string | number; + /** + * Webhook Configuration + * @description Configuration object of the webhook + */ + "webhook-config": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + /** + * Simple webhook delivery + * @description Delivery made by a webhook, without request and response information. + */ + "hook-delivery-item": { + /** + * @description Unique identifier of the webhook delivery. + * @example 42 + */ + id: number; + /** + * @description Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event). + * @example 58474f00-b361-11eb-836d-0e4f3503ccbe + */ + guid: string; + /** + * Format: date-time + * @description Time when the webhook delivery occurred. + * @example 2021-05-12T20:33:44Z + */ + delivered_at: string; + /** + * @description Whether the webhook delivery is a redelivery. + * @example false + */ + redelivery: boolean; + /** + * @description Time spent delivering. + * @example 0.03 + */ + duration: number; + /** + * @description Describes the response returned after attempting the delivery. + * @example failed to connect + */ + status: string; + /** + * @description Status code received when delivery was made. + * @example 502 + */ + status_code: number; + /** + * @description The event that triggered the delivery. + * @example issues + */ + event: string; + /** + * @description The type of activity for the event that triggered the delivery. + * @example opened + */ + action: string | null; + /** + * @description The id of the GitHub App installation associated with this event. + * @example 123 + */ + installation_id: number | null; + /** + * @description The id of the repository associated with this event. + * @example 123 + */ + repository_id: number | null; + }; + /** + * Scim Error + * @description Scim Error + */ + "scim-error": { + message?: string | null; + documentation_url?: string | null; + detail?: string | null; + status?: number; + scimType?: string | null; + schemas?: string[]; + }; + /** + * Validation Error + * @description Validation Error + */ + "validation-error": { + message: string; + documentation_url: string; + errors?: { + resource?: string; + field?: string; + message?: string; + code: string; + index?: number; + value?: (string | null) | (number | null) | (string[] | null); + }[]; + }; + /** + * Webhook delivery + * @description Delivery made by a webhook. + */ + "hook-delivery": { + /** + * @description Unique identifier of the delivery. + * @example 42 + */ + id: number; + /** + * @description Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event). + * @example 58474f00-b361-11eb-836d-0e4f3503ccbe + */ + guid: string; + /** + * Format: date-time + * @description Time when the delivery was delivered. + * @example 2021-05-12T20:33:44Z + */ + delivered_at: string; + /** + * @description Whether the delivery is a redelivery. + * @example false + */ + redelivery: boolean; + /** + * @description Time spent delivering. + * @example 0.03 + */ + duration: number; + /** + * @description Description of the status of the attempted delivery + * @example failed to connect + */ + status: string; + /** + * @description Status code received when delivery was made. + * @example 502 + */ + status_code: number; + /** + * @description The event that triggered the delivery. + * @example issues + */ + event: string; + /** + * @description The type of activity for the event that triggered the delivery. + * @example opened + */ + action: string | null; + /** + * @description The id of the GitHub App installation associated with this event. + * @example 123 + */ + installation_id: number | null; + /** + * @description The id of the repository associated with this event. + * @example 123 + */ + repository_id: number | null; + /** + * @description The URL target of the delivery. + * @example https://www.example.com + */ + url?: string; + request: { + /** @description The request headers sent with the webhook delivery. */ + headers: { + [key: string]: unknown; + } | null; + /** @description The webhook payload. */ + payload: { + [key: string]: unknown; + } | null; + }; + response: { + /** @description The response headers received when the delivery was made. */ + headers: { + [key: string]: unknown; + } | null; + /** @description The response payload received. */ + payload: string | null; + }; + }; + /** + * Enterprise + * @description An enterprise on GitHub. + */ + enterprise: { + /** @description A short description of the enterprise. */ + description?: string | null; + /** + * Format: uri + * @example https://github.com/enterprises/octo-business + */ + html_url: string; + /** + * Format: uri + * @description The enterprise's website URL. + */ + website_url?: string | null; + /** + * @description Unique identifier of the enterprise + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the enterprise. + * @example Octo Business + */ + name: string; + /** + * @description The slug url identifier for the enterprise. + * @example octo-business + */ + slug: string; + /** + * Format: date-time + * @example 2019-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2019-01-26T19:14:43Z + */ + updated_at: string | null; + /** Format: uri */ + avatar_url: string; + }; + /** + * Integration Installation Request + * @description Request to install an integration on a target + */ + "integration-installation-request": { + /** + * @description Unique identifier of the request installation. + * @example 42 + */ + id: number; + /** @example MDExOkludGVncmF0aW9uMQ== */ + node_id?: string; + account: + | components["schemas"]["simple-user"] + | components["schemas"]["enterprise"]; + requester: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @example 2022-07-08T16:18:44-04:00 + */ + created_at: string; + }; + /** + * App Permissions + * @description The permissions granted to the user access token. + * @example { + * "contents": "read", + * "issues": "read", + * "deployments": "write", + * "single_file": "read" + * } + */ + "app-permissions": { + /** + * @description The level of permission to grant the access token for GitHub Actions workflows, workflow runs, and artifacts. + * @enum {string} + */ + actions?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository creation, deletion, settings, teams, and collaborators creation. + * @enum {string} + */ + administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token for checks on code. + * @enum {string} + */ + checks?: "read" | "write"; + /** + * @description The level of permission to grant the access token to create, edit, delete, and list Codespaces. + * @enum {string} + */ + codespaces?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges. + * @enum {string} + */ + contents?: "read" | "write"; + /** + * @description The leve of permission to grant the access token to manage Dependabot secrets. + * @enum {string} + */ + dependabot_secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token for deployments and deployment statuses. + * @enum {string} + */ + deployments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for managing repository environments. + * @enum {string} + */ + environments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for issues and related comments, assignees, labels, and milestones. + * @enum {string} + */ + issues?: "read" | "write"; + /** + * @description The level of permission to grant the access token to search repositories, list collaborators, and access repository metadata. + * @enum {string} + */ + metadata?: "read" | "write"; + /** + * @description The level of permission to grant the access token for packages published to GitHub Packages. + * @enum {string} + */ + packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to retrieve Pages statuses, configuration, and builds, as well as create new builds. + * @enum {string} + */ + pages?: "read" | "write"; + /** + * @description The level of permission to grant the access token for pull requests and related comments, assignees, labels, milestones, and merges. + * @enum {string} + */ + pull_requests?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and edit custom properties for a repository, when allowed by the property. + * @enum {string} + */ + repository_custom_properties?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for a repository. + * @enum {string} + */ + repository_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository projects, columns, and cards. + * @enum {string} + */ + repository_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token to view and manage secret scanning alerts. + * @enum {string} + */ + secret_scanning_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository secrets. + * @enum {string} + */ + secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage security events like code scanning alerts. + * @enum {string} + */ + security_events?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage just a single file. + * @enum {string} + */ + single_file?: "read" | "write"; + /** + * @description The level of permission to grant the access token for commit statuses. + * @enum {string} + */ + statuses?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage Dependabot alerts. + * @enum {string} + */ + vulnerability_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to update GitHub Actions workflow files. + * @enum {string} + */ + workflows?: "write"; + /** + * @description The level of permission to grant the access token for organization teams and members. + * @enum {string} + */ + members?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage access to an organization. + * @enum {string} + */ + organization_administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token for custom repository roles management. + * @enum {string} + */ + organization_custom_roles?: "read" | "write"; + /** + * @description The level of permission to grant the access token for custom organization roles management. + * @enum {string} + */ + organization_custom_org_roles?: "read" | "write"; + /** + * @description The level of permission to grant the access token for custom property management. + * @enum {string} + */ + organization_custom_properties?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token for managing access to GitHub Copilot for members of an organization with a Copilot Business subscription. This property is in beta and is subject to change. + * @enum {string} + */ + organization_copilot_seat_management?: "write"; + /** + * @description The level of permission to grant the access token to view and manage announcement banners for an organization. + * @enum {string} + */ + organization_announcement_banners?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view events triggered by an activity in an organization. + * @enum {string} + */ + organization_events?: "read"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for an organization. + * @enum {string} + */ + organization_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing and managing fine-grained personal access token requests to an organization. + * @enum {string} + */ + organization_personal_access_tokens?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing and managing fine-grained personal access tokens that have been approved by an organization. + * @enum {string} + */ + organization_personal_access_token_requests?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing an organization's plan. + * @enum {string} + */ + organization_plan?: "read"; + /** + * @description The level of permission to grant the access token to manage organization projects and projects beta (where available). + * @enum {string} + */ + organization_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token for organization packages published to GitHub Packages. + * @enum {string} + */ + organization_packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage organization secrets. + * @enum {string} + */ + organization_secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage GitHub Actions self-hosted runners available to an organization. + * @enum {string} + */ + organization_self_hosted_runners?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage users blocked by the organization. + * @enum {string} + */ + organization_user_blocking?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage team discussions and related comments. + * @enum {string} + */ + team_discussions?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the email addresses belonging to a user. + * @enum {string} + */ + email_addresses?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the followers belonging to a user. + * @enum {string} + */ + followers?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage git SSH keys. + * @enum {string} + */ + git_ssh_keys?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage GPG keys belonging to a user. + * @enum {string} + */ + gpg_keys?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage interaction limits on a repository. + * @enum {string} + */ + interaction_limits?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the profile settings belonging to a user. + * @enum {string} + */ + profile?: "write"; + /** + * @description The level of permission to grant the access token to list and manage repositories a user is starring. + * @enum {string} + */ + starring?: "read" | "write"; + }; + /** + * Installation + * @description Installation + */ + installation: { + /** + * @description The ID of the installation. + * @example 1 + */ + id: number; + account: + | ( + | components["schemas"]["simple-user"] + | components["schemas"]["enterprise"] + ) + | null; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** + * Format: uri + * @example https://api.github.com/app/installations/1/access_tokens + */ + access_tokens_url: string; + /** + * Format: uri + * @example https://api.github.com/installation/repositories + */ + repositories_url: string; + /** + * Format: uri + * @example https://github.com/organizations/github/settings/installations/1 + */ + html_url: string; + /** @example 1 */ + app_id: number; + /** @description The ID of the user or organization this token is being scoped to. */ + target_id: number; + /** @example Organization */ + target_type: string; + permissions: components["schemas"]["app-permissions"]; + events: string[]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** @example config.yaml */ + single_file_name: string | null; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + /** @example github-actions */ + app_slug: string; + suspended_by: components["schemas"]["nullable-simple-user"]; + /** Format: date-time */ + suspended_at: string | null; + /** @example "test_13f1e99741e3e004@d7e1eb0bc0a1ba12.com" */ + contact_email?: string | null; + }; + /** + * License Simple + * @description License Simple + */ + "nullable-license-simple": { + /** @example mit */ + key: string; + /** @example MIT License */ + name: string; + /** + * Format: uri + * @example https://api.github.com/licenses/mit + */ + url: string | null; + /** @example MIT */ + spdx_id: string | null; + /** @example MDc6TGljZW5zZW1pdA== */ + node_id: string; + /** Format: uri */ + html_url?: string; + } | null; + /** + * Repository + * @description A repository on GitHub. + */ + repository: { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @deprecated + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + */ + web_commit_signoff_required?: boolean; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + /** @description Whether anonymous git access is enabled for this repository */ + anonymous_access_enabled?: boolean; + }; + /** + * Installation Token + * @description Authentication token for a GitHub App installed on a user or org. + */ + "installation-token": { + token: string; + expires_at: string; + permissions?: components["schemas"]["app-permissions"]; + /** @enum {string} */ + repository_selection?: "all" | "selected"; + repositories?: components["schemas"]["repository"][]; + /** @example README.md */ + single_file?: string; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + }; + /** Scoped Installation */ + "nullable-scoped-installation": { + permissions: components["schemas"]["app-permissions"]; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** @example config.yaml */ + single_file_name: string | null; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repositories_url: string; + account: components["schemas"]["simple-user"]; + } | null; + /** + * Authorization + * @description The authorization for an OAuth app, GitHub App, or a Personal Access Token. + */ + authorization: { + id: number; + /** Format: uri */ + url: string; + /** @description A list of scopes that this authorization is in. */ + scopes: string[] | null; + token: string; + token_last_eight: string | null; + hashed_token: string | null; + app: { + client_id: string; + name: string; + /** Format: uri */ + url: string; + }; + note: string | null; + /** Format: uri */ + note_url: string | null; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + created_at: string; + fingerprint: string | null; + user?: components["schemas"]["nullable-simple-user"]; + installation?: components["schemas"]["nullable-scoped-installation"]; + /** Format: date-time */ + expires_at: string | null; + }; + /** + * Simple Classroom Repository + * @description A GitHub repository view for Classroom + */ + "simple-classroom-repository": { + /** + * @description A unique identifier of the repository. + * @example 1296269 + */ + id: number; + /** + * @description The full, globally unique name of the repository. + * @example octocat/Hello-World + */ + full_name: string; + /** + * Format: uri + * @description The URL to view the repository on GitHub.com. + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** + * @description The GraphQL identifier of the repository. + * @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + */ + node_id: string; + /** @description Whether the repository is private. */ + private: boolean; + /** + * @description The default branch for the repository. + * @example main + */ + default_branch: string; + }; + /** + * Organization Simple for Classroom + * @description A GitHub organization. + */ + "simple-classroom-organization": { + /** @example 1 */ + id: number; + /** @example github */ + login: string; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/github + */ + html_url: string; + /** @example Github - Code thigns happen here */ + name: string | null; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + }; + /** + * Classroom + * @description A GitHub Classroom classroom + */ + classroom: { + /** + * @description Unique identifier of the classroom. + * @example 42 + */ + id: number; + /** + * @description The name of the classroom. + * @example Programming Elixir + */ + name: string; + /** + * @description Whether classroom is archived. + * @example false + */ + archived: boolean; + organization: components["schemas"]["simple-classroom-organization"]; + /** + * @description The URL of the classroom on GitHub Classroom. + * @example https://classroom.github.com/classrooms/1-programming-elixir + */ + url: string; + }; + /** + * Classroom Assignment + * @description A GitHub Classroom assignment + */ + "classroom-assignment": { + /** + * @description Unique identifier of the repository. + * @example 42 + */ + id: number; + /** + * @description Whether an accepted assignment creates a public repository. + * @example true + */ + public_repo: boolean; + /** + * @description Assignment title. + * @example Intro to Binaries + */ + title: string; + /** + * @description Whether it's a group assignment or individual assignment. + * @example individual + * @enum {string} + */ + type: "individual" | "group"; + /** + * @description The link that a student can use to accept the assignment. + * @example https://classroom.github.com/a/Lx7jiUgx + */ + invite_link: string; + /** + * @description Whether the invitation link is enabled. Visiting an enabled invitation link will accept the assignment. + * @example true + */ + invitations_enabled: boolean; + /** + * @description Sluggified name of the assignment. + * @example intro-to-binaries + */ + slug: string; + /** + * @description Whether students are admins on created repository when a student accepts the assignment. + * @example true + */ + students_are_repo_admins: boolean; + /** + * @description Whether feedback pull request will be created when a student accepts the assignment. + * @example true + */ + feedback_pull_requests_enabled: boolean; + /** + * @description The maximum allowable teams for the assignment. + * @example 0 + */ + max_teams: number | null; + /** + * @description The maximum allowable members per team. + * @example 0 + */ + max_members: number | null; + /** + * @description The selected editor for the assignment. + * @example codespaces + */ + editor: string; + /** + * @description The number of students that have accepted the assignment. + * @example 25 + */ + accepted: number; + /** + * @description The number of students that have submitted the assignment. + * @example 10 + */ + submitted: number; + /** + * @description The number of students that have passed the assignment. + * @example 10 + */ + passing: number; + /** + * @description The programming language used in the assignment. + * @example elixir + */ + language: string; + /** + * Format: date-time + * @description The time at which the assignment is due. + * @example 2011-01-26T19:06:43Z + */ + deadline: string | null; + starter_code_repository: components["schemas"]["simple-classroom-repository"]; + classroom: components["schemas"]["classroom"]; + }; + /** + * Simple Classroom User + * @description A GitHub user simplified for Classroom. + */ + "simple-classroom-user": { + /** @example 1 */ + id: number; + /** @example octocat */ + login: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + }; + /** + * Simple Classroom + * @description A GitHub Classroom classroom + */ + "simple-classroom": { + /** + * @description Unique identifier of the classroom. + * @example 42 + */ + id: number; + /** + * @description The name of the classroom. + * @example Programming Elixir + */ + name: string; + /** + * @description Returns whether classroom is archived or not. + * @example false + */ + archived: boolean; + /** + * @description The url of the classroom on GitHub Classroom. + * @example https://classroom.github.com/classrooms/1-programming-elixir + */ + url: string; + }; + /** + * Simple Classroom Assignment + * @description A GitHub Classroom assignment + */ + "simple-classroom-assignment": { + /** + * @description Unique identifier of the repository. + * @example 42 + */ + id: number; + /** + * @description Whether an accepted assignment creates a public repository. + * @example true + */ + public_repo: boolean; + /** + * @description Assignment title. + * @example Intro to Binaries + */ + title: string; + /** + * @description Whether it's a Group Assignment or Individual Assignment. + * @example individual + * @enum {string} + */ + type: "individual" | "group"; + /** + * @description The link that a student can use to accept the assignment. + * @example https://classroom.github.com/a/Lx7jiUgx + */ + invite_link: string; + /** + * @description Whether the invitation link is enabled. Visiting an enabled invitation link will accept the assignment. + * @example true + */ + invitations_enabled: boolean; + /** + * @description Sluggified name of the assignment. + * @example intro-to-binaries + */ + slug: string; + /** + * @description Whether students are admins on created repository on accepted assignment. + * @example true + */ + students_are_repo_admins: boolean; + /** + * @description Whether feedback pull request will be created on assignment acceptance. + * @example true + */ + feedback_pull_requests_enabled: boolean; + /** + * @description The maximum allowable teams for the assignment. + * @example 0 + */ + max_teams?: number | null; + /** + * @description The maximum allowable members per team. + * @example 0 + */ + max_members?: number | null; + /** + * @description The selected editor for the assignment. + * @example codespaces + */ + editor: string; + /** + * @description The number of students that have accepted the assignment. + * @example 25 + */ + accepted: number; + /** + * @description The number of students that have submitted the assignment. + * @example 10 + */ + submitted: number; + /** + * @description The number of students that have passed the assignment. + * @example 10 + */ + passing: number; + /** + * @description The programming language used in the assignment. + * @example elixir + */ + language: string; + /** + * Format: date-time + * @description The time at which the assignment is due. + * @example 2011-01-26T19:06:43Z + */ + deadline: string | null; + classroom: components["schemas"]["simple-classroom"]; + }; + /** + * Classroom Accepted Assignment + * @description A GitHub Classroom accepted assignment + */ + "classroom-accepted-assignment": { + /** + * @description Unique identifier of the repository. + * @example 42 + */ + id: number; + /** + * @description Whether an accepted assignment has been submitted. + * @example true + */ + submitted: boolean; + /** + * @description Whether a submission passed. + * @example true + */ + passing: boolean; + /** + * @description Count of student commits. + * @example 5 + */ + commit_count: number; + /** + * @description Most recent grade. + * @example 10/10 + */ + grade: string; + students: components["schemas"]["simple-classroom-user"][]; + repository: components["schemas"]["simple-classroom-repository"]; + assignment: components["schemas"]["simple-classroom-assignment"]; + }; + /** + * Classroom Assignment Grade + * @description Grade for a student or groups GitHub Classroom assignment + */ + "classroom-assignment-grade": { + /** @description Name of the assignment */ + assignment_name: string; + /** @description URL of the assignment */ + assignment_url: string; + /** @description URL of the starter code for the assignment */ + starter_code_url: string; + /** @description GitHub username of the student */ + github_username: string; + /** @description Roster identifier of the student */ + roster_identifier: string; + /** @description Name of the student's assignment repository */ + student_repository_name: string; + /** @description URL of the student's assignment repository */ + student_repository_url: string; + /** @description Timestamp of the student's assignment submission */ + submission_timestamp: string; + /** @description Number of points awarded to the student */ + points_awarded: number; + /** @description Number of points available for the assignment */ + points_available: number; + /** @description If a group assignment, name of the group the student is in */ + group_name?: string; + }; + /** + * Code Of Conduct + * @description Code Of Conduct + */ + "code-of-conduct": { + /** @example contributor_covenant */ + key: string; + /** @example Contributor Covenant */ + name: string; + /** + * Format: uri + * @example https://api.github.com/codes_of_conduct/contributor_covenant + */ + url: string; + /** + * @example # Contributor Covenant Code of Conduct + * + * ## Our Pledge + * + * 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. + * + * ## Our Standards + * + * Examples of behavior that contributes to creating a positive environment include: + * + * * Using welcoming and inclusive language + * * Being respectful of differing viewpoints and experiences + * * Gracefully accepting constructive criticism + * * Focusing on what is best for the community + * * Showing empathy towards other community members + * + * Examples of unacceptable behavior by participants include: + * + * * The use of sexualized language or imagery and unwelcome sexual attention or advances + * * Trolling, insulting/derogatory comments, and personal or political attacks + * * Public or private harassment + * * Publishing others' private information, such as a physical or electronic address, without explicit permission + * * Other conduct which could reasonably be considered inappropriate in a professional setting + * + * ## Our Responsibilities + * + * 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. + * + * 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. + * + * ## Scope + * + * 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. + * + * ## Enforcement + * + * Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. 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. + * + * 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. + * + * ## Attribution + * + * This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.4, available at [http://contributor-covenant.org/version/1/4](http://contributor-covenant.org/version/1/4/). + */ + body?: string; + /** Format: uri */ + html_url: string | null; + }; + /** + * Copilot Usage Metrics + * @description Summary of Copilot usage. + */ + "copilot-usage-metrics": { + /** + * Format: date + * @description The date for which the usage metrics are reported, in `YYYY-MM-DD` format. + */ + day: string; + /** @description The total number of Copilot code completion suggestions shown to users. */ + total_suggestions_count?: number; + /** @description The total number of Copilot code completion suggestions accepted by users. */ + total_acceptances_count?: number; + /** @description The total number of lines of code completions suggested by Copilot. */ + total_lines_suggested?: number; + /** @description The total number of lines of code completions accepted by users. */ + total_lines_accepted?: number; + /** @description The total number of users who were shown Copilot code completion suggestions during the day specified. */ + total_active_users?: number; + /** @description The total instances of users who accepted code suggested by Copilot Chat in the IDE (panel and inline). */ + total_chat_acceptances?: number; + /** @description The total number of chat turns (prompt and response pairs) sent between users and Copilot Chat in the IDE. */ + total_chat_turns?: number; + /** @description The total number of users who interacted with Copilot Chat in the IDE during the day specified. */ + total_active_chat_users?: number; + /** @description Breakdown of Copilot code completions usage by language and editor */ + breakdown: + | { + /** @description The language in which Copilot suggestions were shown to users in the specified editor. */ + language?: string; + /** @description The editor in which Copilot suggestions were shown to users for the specified language. */ + editor?: string; + /** @description The number of Copilot suggestions shown to users in the editor specified during the day specified. */ + suggestions_count?: number; + /** @description The number of Copilot suggestions accepted by users in the editor specified during the day specified. */ + acceptances_count?: number; + /** @description The number of lines of code suggested by Copilot in the editor specified during the day specified. */ + lines_suggested?: number; + /** @description The number of lines of code accepted by users in the editor specified during the day specified. */ + lines_accepted?: number; + /** @description The number of users who were shown Copilot completion suggestions in the editor specified during the day specified. */ + active_users?: number; + [key: string]: unknown; + }[] + | null; + }; + /** @description The security alert number. */ + readonly "alert-number": number; + /** @description Details for the vulnerable package. */ + readonly "dependabot-alert-package": { + /** @description The package's language or package management ecosystem. */ + readonly ecosystem: string; + /** @description The unique package name within its ecosystem. */ + readonly name: string; + }; + /** @description Details pertaining to one vulnerable version range for the advisory. */ + readonly "dependabot-alert-security-vulnerability": { + readonly package: components["schemas"]["dependabot-alert-package"]; + /** + * @description The severity of the vulnerability. + * @enum {string} + */ + readonly severity: "low" | "medium" | "high" | "critical"; + /** @description Conditions that identify vulnerable versions of this vulnerability's package. */ + readonly vulnerable_version_range: string; + /** @description Details pertaining to the package version that patches this vulnerability. */ + readonly first_patched_version: { + /** @description The package version that patches this vulnerability. */ + readonly identifier: string; + } | null; + }; + /** @description Details for the GitHub Security Advisory. */ + readonly "dependabot-alert-security-advisory": { + /** @description The unique GitHub Security Advisory ID assigned to the advisory. */ + readonly ghsa_id: string; + /** @description The unique CVE ID assigned to the advisory. */ + readonly cve_id: string | null; + /** @description A short, plain text summary of the advisory. */ + readonly summary: string; + /** @description A long-form Markdown-supported description of the advisory. */ + readonly description: string; + /** @description Vulnerable version range information for the advisory. */ + readonly vulnerabilities: readonly components["schemas"]["dependabot-alert-security-vulnerability"][]; + /** + * @description The severity of the advisory. + * @enum {string} + */ + readonly severity: "low" | "medium" | "high" | "critical"; + /** @description Details for the advisory pertaining to the Common Vulnerability Scoring System. */ + readonly cvss: { + /** @description The overall CVSS score of the advisory. */ + readonly score: number; + /** @description The full CVSS vector string for the advisory. */ + readonly vector_string: string | null; + }; + /** @description Details for the advisory pertaining to Common Weakness Enumeration. */ + readonly cwes: readonly { + /** @description The unique CWE ID. */ + readonly cwe_id: string; + /** @description The short, plain text name of the CWE. */ + readonly name: string; + }[]; + /** @description Values that identify this advisory among security information sources. */ + readonly identifiers: readonly { + /** + * @description The type of advisory identifier. + * @enum {string} + */ + readonly type: "CVE" | "GHSA"; + /** @description The value of the advisory identifer. */ + readonly value: string; + }[]; + /** @description Links to additional advisory information. */ + readonly references: readonly { + /** + * Format: uri + * @description The URL of the reference. + */ + readonly url: string; + }[]; + /** + * Format: date-time + * @description The time that the advisory was published in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly published_at: string; + /** + * Format: date-time + * @description The time that the advisory was last modified in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly updated_at: string; + /** + * Format: date-time + * @description The time that the advisory was withdrawn in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly withdrawn_at: string | null; + }; + /** + * Format: uri + * @description The REST API URL of the alert resource. + */ + readonly "alert-url": string; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + readonly "alert-html-url": string; + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-created-at": string; + /** + * Format: date-time + * @description The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-updated-at": string; + /** + * Format: date-time + * @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-dismissed-at": string | null; + /** + * Format: date-time + * @description The time that the alert was no longer detected and was considered fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-fixed-at": string | null; + /** + * Format: date-time + * @description The time that the alert was auto-dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-auto-dismissed-at": string | null; + /** + * Simple Repository + * @description A GitHub repository. + */ + "simple-repository": { + /** + * @description A unique identifier of the repository. + * @example 1296269 + */ + id: number; + /** + * @description The GraphQL identifier of the repository. + * @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + */ + node_id: string; + /** + * @description The name of the repository. + * @example Hello-World + */ + name: string; + /** + * @description The full, globally unique, name of the repository. + * @example octocat/Hello-World + */ + full_name: string; + owner: components["schemas"]["simple-user"]; + /** @description Whether the repository is private. */ + private: boolean; + /** + * Format: uri + * @description The URL to view the repository on GitHub.com. + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** + * @description The repository description. + * @example This your first repo! + */ + description: string | null; + /** @description Whether the repository is a fork. */ + fork: boolean; + /** + * Format: uri + * @description The URL to get more information about the repository from the GitHub API. + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** + * @description A template for the API URL to download the repository as an archive. + * @example https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + */ + archive_url: string; + /** + * @description A template for the API URL to list the available assignees for issues in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/assignees{/user} + */ + assignees_url: string; + /** + * @description A template for the API URL to create or retrieve a raw Git blob in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + */ + blobs_url: string; + /** + * @description A template for the API URL to get information about branches in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/branches{/branch} + */ + branches_url: string; + /** + * @description A template for the API URL to get information about collaborators of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + */ + collaborators_url: string; + /** + * @description A template for the API URL to get information about comments on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/comments{/number} + */ + comments_url: string; + /** + * @description A template for the API URL to get information about commits on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/commits{/sha} + */ + commits_url: string; + /** + * @description A template for the API URL to compare two commits or refs. + * @example https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + */ + compare_url: string; + /** + * @description A template for the API URL to get the contents of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/contents/{+path} + */ + contents_url: string; + /** + * Format: uri + * @description A template for the API URL to list the contributors to the repository. + * @example https://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @description The API URL to list the deployments of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @description The API URL to list the downloads on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @description The API URL to list the events of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @description The API URL to list the forks of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** + * @description A template for the API URL to get information about Git commits of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + */ + git_commits_url: string; + /** + * @description A template for the API URL to get information about Git refs of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + */ + git_refs_url: string; + /** + * @description A template for the API URL to get information about Git tags of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + */ + git_tags_url: string; + /** + * @description A template for the API URL to get information about issue comments on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + */ + issue_comment_url: string; + /** + * @description A template for the API URL to get information about issue events on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + */ + issue_events_url: string; + /** + * @description A template for the API URL to get information about issues on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/issues{/number} + */ + issues_url: string; + /** + * @description A template for the API URL to get information about deploy keys on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + */ + keys_url: string; + /** + * @description A template for the API URL to get information about labels of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/labels{/name} + */ + labels_url: string; + /** + * Format: uri + * @description The API URL to get information about the languages of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @description The API URL to merge branches in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** + * @description A template for the API URL to get information about milestones of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/milestones{/number} + */ + milestones_url: string; + /** + * @description A template for the API URL to get information about notifications on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + */ + notifications_url: string; + /** + * @description A template for the API URL to get information about pull requests on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/pulls{/number} + */ + pulls_url: string; + /** + * @description A template for the API URL to get information about releases on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/releases{/id} + */ + releases_url: string; + /** + * Format: uri + * @description The API URL to list the stargazers on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** + * @description A template for the API URL to get information about statuses of a commit. + * @example https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + */ + statuses_url: string; + /** + * Format: uri + * @description The API URL to list the subscribers on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @description The API URL to subscribe to notifications for this repository. + * @example https://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @description The API URL to get information about tags on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @description The API URL to list the teams on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** + * @description A template for the API URL to create or retrieve a raw Git tree of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + */ + trees_url: string; + /** + * Format: uri + * @description The API URL to list the hooks on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + }; + /** @description A Dependabot alert. */ + "dependabot-alert-with-repository": { + number: components["schemas"]["alert-number"]; + /** + * @description The state of the Dependabot alert. + * @enum {string} + */ + state: "auto_dismissed" | "dismissed" | "fixed" | "open"; + /** @description Details for the vulnerable dependency. */ + dependency: { + readonly package?: components["schemas"]["dependabot-alert-package"]; + /** @description The full path to the dependency manifest file, relative to the root of the repository. */ + readonly manifest_path?: string; + /** + * @description The execution scope of the vulnerable dependency. + * @enum {string|null} + */ + readonly scope?: "development" | "runtime" | null; + }; + security_advisory: components["schemas"]["dependabot-alert-security-advisory"]; + security_vulnerability: components["schemas"]["dependabot-alert-security-vulnerability"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at: components["schemas"]["alert-updated-at"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + /** + * @description The reason that the alert was dismissed. + * @enum {string|null} + */ + dismissed_reason: + | "fix_started" + | "inaccurate" + | "no_bandwidth" + | "not_used" + | "tolerable_risk" + | null; + /** @description An optional comment associated with the alert's dismissal. */ + dismissed_comment: string | null; + fixed_at: components["schemas"]["alert-fixed-at"]; + auto_dismissed_at?: components["schemas"]["alert-auto-dismissed-at"]; + repository: components["schemas"]["simple-repository"]; + }; + /** + * Format: date-time + * @description The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "nullable-alert-updated-at": string | null; + /** + * @description Sets the state of the secret scanning alert. You must provide `resolution` when you set the state to `resolved`. + * @enum {string} + */ + "secret-scanning-alert-state": "open" | "resolved"; + /** + * @description **Required when the `state` is `resolved`.** The reason for resolving the alert. + * @enum {string|null} + */ + "secret-scanning-alert-resolution": + | "false_positive" + | "wont_fix" + | "revoked" + | "used_in_tests" + | null; + "organization-secret-scanning-alert": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["nullable-alert-updated-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + /** + * Format: uri + * @description The REST API URL of the code locations for this alert. + */ + locations_url?: string; + state?: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + /** + * Format: date-time + * @description The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + resolved_at?: string | null; + resolved_by?: components["schemas"]["nullable-simple-user"]; + /** @description The type of secret that secret scanning detected. */ + secret_type?: string; + /** + * @description User-friendly name for the detected secret, matching the `secret_type`. + * For a list of built-in patterns, see "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)." + */ + secret_type_display_name?: string; + /** @description The secret that was detected. */ + secret?: string; + repository?: components["schemas"]["simple-repository"]; + /** @description Whether push protection was bypassed for the detected secret. */ + push_protection_bypassed?: boolean | null; + push_protection_bypassed_by?: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + push_protection_bypassed_at?: string | null; + /** @description The comment that was optionally added when this alert was closed */ + resolution_comment?: string | null; + /** + * @description The token status as of the latest validity check. + * @enum {string} + */ + validity?: "active" | "inactive" | "unknown"; + }; + /** + * Actor + * @description Actor + */ + actor: { + id: number; + login: string; + display_login?: string; + gravatar_id: string | null; + /** Format: uri */ + url: string; + /** Format: uri */ + avatar_url: string; + }; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + "nullable-milestone": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1 + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/milestones/v1.0 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + */ + labels_url: string; + /** @example 1002604 */ + id: number; + /** @example MDk6TWlsZXN0b25lMTAwMjYwNA== */ + node_id: string; + /** + * @description The number of the milestone. + * @example 42 + */ + number: number; + /** + * @description The state of the milestone. + * @default open + * @example open + * @enum {string} + */ + state: "open" | "closed"; + /** + * @description The title of the milestone. + * @example v1.0 + */ + title: string; + /** @example Tracking milestone for version 1.0 */ + description: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** @example 4 */ + open_issues: number; + /** @example 8 */ + closed_issues: number; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2013-02-12T13:22:01Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2012-10-09T23:39:01Z + */ + due_on: string | null; + } | null; + /** + * GitHub app + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + "nullable-integration": { + /** + * @description Unique identifier of the GitHub app + * @example 37 + */ + id: number; + /** + * @description The slug name of the GitHub app + * @example probot-owners + */ + slug?: string; + /** @example MDExOkludGVncmF0aW9uMQ== */ + node_id: string; + owner: components["schemas"]["nullable-simple-user"]; + /** + * @description The name of the GitHub app + * @example Probot Owners + */ + name: string; + /** @example The description of the app. */ + description: string | null; + /** + * Format: uri + * @example https://example.com + */ + external_url: string; + /** + * Format: uri + * @example https://github.com/apps/super-ci + */ + html_url: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + created_at: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + updated_at: string; + /** + * @description The set of permissions for the GitHub app + * @example { + * "issues": "read", + * "deployments": "write" + * } + */ + permissions: { + issues?: string; + checks?: string; + metadata?: string; + contents?: string; + deployments?: string; + [key: string]: string | undefined; + }; + /** + * @description The list of events for the GitHub app + * @example [ + * "label", + * "deployment" + * ] + */ + events: string[]; + /** + * @description The number of installations associated with the GitHub app + * @example 5 + */ + installations_count?: number; + /** @example "Iv1.25b5d1e65ffc4022" */ + client_id?: string; + /** @example "1d4b2097ac622ba702d19de498f005747a8b21d3" */ + client_secret?: string; + /** @example "6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b" */ + webhook_secret?: string | null; + /** @example "-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\n-----END RSA PRIVATE KEY-----\n" */ + pem?: string; + } | null; + /** + * author_association + * @description How the author is associated with the repository. + * @example OWNER + * @enum {string} + */ + "author-association": + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** Reaction Rollup */ + "reaction-rollup": { + /** Format: uri */ + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + eyes: number; + rocket: number; + }; + /** + * Issue + * @description Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. + */ + issue: { + /** Format: int64 */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue + * @example https://api.github.com/repositories/42/issues/1 + */ + url: string; + /** Format: uri */ + repository_url: string; + labels_url: string; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** + * @description Number uniquely identifying the issue within its repository + * @example 42 + */ + number: number; + /** + * @description State of the issue; either 'open' or 'closed' + * @example open + */ + state: string; + /** + * @description The reason for the current state + * @example not_planned + * @enum {string|null} + */ + state_reason?: "completed" | "reopened" | "not_planned" | null; + /** + * @description Title of the issue + * @example Widget creation fails in Safari on OS X 10.8 + */ + title: string; + /** + * @description Contents of the issue + * @example It looks like the new widget form is broken on Safari. When I try and create the widget, Safari crashes. This is reproducible on 10.8, but not 10.9. Maybe a browser bug? + */ + body?: string | null; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository + * @example [ + * "bug", + * "registration" + * ] + */ + labels: OneOf< + [ + string, + { + /** Format: int64 */ + id?: number; + node_id?: string; + /** Format: uri */ + url?: string; + name?: string; + description?: string | null; + color?: string | null; + default?: boolean; + }, + ] + >[]; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + milestone: components["schemas"]["nullable-milestone"]; + locked: boolean; + active_lock_reason?: string | null; + comments: number; + pull_request?: { + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + diff_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + patch_url: string | null; + /** Format: uri */ + url: string | null; + }; + /** Format: date-time */ + closed_at: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + draft?: boolean; + closed_by?: components["schemas"]["nullable-simple-user"]; + body_html?: string; + body_text?: string; + /** Format: uri */ + timeline_url?: string; + repository?: components["schemas"]["repository"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + author_association: components["schemas"]["author-association"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Issue Comment + * @description Comments provide a way for people to collaborate on an issue. + */ + "issue-comment": { + /** + * Format: int64 + * @description Unique identifier of the issue comment + * @example 42 + */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue comment + * @example https://api.github.com/repositories/42/issues/comments/1 + */ + url: string; + /** + * @description Contents of the issue comment + * @example What version of Safari were you using when you observed this bug? + */ + body?: string; + body_text?: string; + body_html?: string; + /** Format: uri */ + html_url: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** Format: uri */ + issue_url: string; + author_association: components["schemas"]["author-association"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Event + * @description Event + */ + event: { + id: string; + type: string | null; + actor: components["schemas"]["actor"]; + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + org?: components["schemas"]["actor"]; + payload: { + action?: string; + issue?: components["schemas"]["issue"]; + comment?: components["schemas"]["issue-comment"]; + pages?: { + page_name?: string; + title?: string; + summary?: string | null; + action?: string; + sha?: string; + html_url?: string; + }[]; + }; + public: boolean; + /** Format: date-time */ + created_at: string | null; + }; + /** + * Link With Type + * @description Hypermedia Link with Type + */ + "link-with-type": { + href: string; + type: string; + }; + /** + * Feed + * @description Feed + */ + feed: { + /** @example https://github.com/timeline */ + timeline_url: string; + /** @example https://github.com/{user} */ + user_url: string; + /** @example https://github.com/octocat */ + current_user_public_url?: string; + /** @example https://github.com/octocat.private?token=abc123 */ + current_user_url?: string; + /** @example https://github.com/octocat.private.actor?token=abc123 */ + current_user_actor_url?: string; + /** @example https://github.com/octocat-org */ + current_user_organization_url?: string; + /** + * @example [ + * "https://github.com/organizations/github/octocat.private.atom?token=abc123" + * ] + */ + current_user_organization_urls?: string[]; + /** @example https://github.com/security-advisories */ + security_advisories_url?: string; + /** + * @description A feed of discussions for a given repository. + * @example https://github.com/{user}/{repo}/discussions + */ + repository_discussions_url?: string; + /** + * @description A feed of discussions for a given repository and category. + * @example https://github.com/{user}/{repo}/discussions/categories/{category} + */ + repository_discussions_category_url?: string; + _links: { + timeline: components["schemas"]["link-with-type"]; + user: components["schemas"]["link-with-type"]; + security_advisories?: components["schemas"]["link-with-type"]; + current_user?: components["schemas"]["link-with-type"]; + current_user_public?: components["schemas"]["link-with-type"]; + current_user_actor?: components["schemas"]["link-with-type"]; + current_user_organization?: components["schemas"]["link-with-type"]; + current_user_organizations?: components["schemas"]["link-with-type"][]; + repository_discussions?: components["schemas"]["link-with-type"]; + repository_discussions_category?: components["schemas"]["link-with-type"]; + }; + }; + /** + * Base Gist + * @description Base Gist + */ + "base-gist": { + /** Format: uri */ + url: string; + /** Format: uri */ + forks_url: string; + /** Format: uri */ + commits_url: string; + id: string; + node_id: string; + /** Format: uri */ + git_pull_url: string; + /** Format: uri */ + git_push_url: string; + /** Format: uri */ + html_url: string; + files: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + }; + }; + public: boolean; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + description: string | null; + comments: number; + user: components["schemas"]["nullable-simple-user"]; + /** Format: uri */ + comments_url: string; + owner?: components["schemas"]["simple-user"]; + truncated?: boolean; + forks?: unknown[]; + history?: unknown[]; + }; + /** + * Public User + * @description Public User + */ + "public-user": { + login: string; + id: number; + node_id: string; + /** Format: uri */ + avatar_url: string; + gravatar_id: string | null; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + repos_url: string; + events_url: string; + /** Format: uri */ + received_events_url: string; + type: string; + site_admin: boolean; + name: string | null; + company: string | null; + blog: string | null; + location: string | null; + /** Format: email */ + email: string | null; + hireable: boolean | null; + bio: string | null; + twitter_username?: string | null; + public_repos: number; + public_gists: number; + followers: number; + following: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + plan?: { + collaborators: number; + name: string; + space: number; + private_repos: number; + }; + /** Format: date-time */ + suspended_at?: string | null; + /** @example 1 */ + private_gists?: number; + /** @example 2 */ + total_private_repos?: number; + /** @example 2 */ + owned_private_repos?: number; + /** @example 1 */ + disk_usage?: number; + /** @example 3 */ + collaborators?: number; + }; + /** + * Gist History + * @description Gist History + */ + "gist-history": { + user?: components["schemas"]["nullable-simple-user"]; + version?: string; + /** Format: date-time */ + committed_at?: string; + change_status?: { + total?: number; + additions?: number; + deletions?: number; + }; + /** Format: uri */ + url?: string; + }; + /** + * Gist Simple + * @description Gist Simple + */ + "gist-simple": { + /** @deprecated */ + forks?: + | { + id?: string; + /** Format: uri */ + url?: string; + user?: components["schemas"]["public-user"]; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + updated_at?: string; + }[] + | null; + /** @deprecated */ + history?: components["schemas"]["gist-history"][] | null; + /** + * Gist + * @description Gist + */ + fork_of?: { + /** Format: uri */ + url: string; + /** Format: uri */ + forks_url: string; + /** Format: uri */ + commits_url: string; + id: string; + node_id: string; + /** Format: uri */ + git_pull_url: string; + /** Format: uri */ + git_push_url: string; + /** Format: uri */ + html_url: string; + files: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + }; + }; + public: boolean; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + description: string | null; + comments: number; + user: components["schemas"]["nullable-simple-user"]; + /** Format: uri */ + comments_url: string; + owner?: components["schemas"]["nullable-simple-user"]; + truncated?: boolean; + forks?: unknown[]; + history?: unknown[]; + } | null; + url?: string; + forks_url?: string; + commits_url?: string; + id?: string; + node_id?: string; + git_pull_url?: string; + git_push_url?: string; + html_url?: string; + files?: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + truncated?: boolean; + content?: string; + } | null; + }; + public?: boolean; + created_at?: string; + updated_at?: string; + description?: string | null; + comments?: number; + user?: string | null; + comments_url?: string; + owner?: components["schemas"]["simple-user"]; + truncated?: boolean; + }; + /** + * Gist Comment + * @description A comment made to a gist. + */ + "gist-comment": { + /** @example 1 */ + id: number; + /** @example MDExOkdpc3RDb21tZW50MQ== */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/gists/a6db0bec360bb87e9418/comments/1 + */ + url: string; + /** + * @description The comment text. + * @example Body of the attachment + */ + body: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2011-04-18T23:23:56Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-18T23:23:56Z + */ + updated_at: string; + author_association: components["schemas"]["author-association"]; + }; + /** + * Gist Commit + * @description Gist Commit + */ + "gist-commit": { + /** + * Format: uri + * @example https://api.github.com/gists/aa5a315d61ae9438b18d/57a7f021a713b1c5a6a199b54cc514735d2d462f + */ + url: string; + /** @example 57a7f021a713b1c5a6a199b54cc514735d2d462f */ + version: string; + user: components["schemas"]["nullable-simple-user"]; + change_status: { + total?: number; + additions?: number; + deletions?: number; + }; + /** + * Format: date-time + * @example 2010-04-14T02:15:15Z + */ + committed_at: string; + }; + /** + * Gitignore Template + * @description Gitignore Template + */ + "gitignore-template": { + /** @example C */ + name: string; + /** + * @example # Object files + * *.o + * + * # Libraries + * *.lib + * *.a + * + * # Shared objects (inc. Windows DLLs) + * *.dll + * *.so + * *.so.* + * *.dylib + * + * # Executables + * *.exe + * *.out + * *.app + */ + source: string; + }; + /** + * License Simple + * @description License Simple + */ + "license-simple": { + /** @example mit */ + key: string; + /** @example MIT License */ + name: string; + /** + * Format: uri + * @example https://api.github.com/licenses/mit + */ + url: string | null; + /** @example MIT */ + spdx_id: string | null; + /** @example MDc6TGljZW5zZW1pdA== */ + node_id: string; + /** Format: uri */ + html_url?: string; + }; + /** + * License + * @description License + */ + license: { + /** @example mit */ + key: string; + /** @example MIT License */ + name: string; + /** @example MIT */ + spdx_id: string | null; + /** + * Format: uri + * @example https://api.github.com/licenses/mit + */ + url: string | null; + /** @example MDc6TGljZW5zZW1pdA== */ + node_id: string; + /** + * Format: uri + * @example http://choosealicense.com/licenses/mit/ + */ + html_url: string; + /** @example A permissive license that is short and to the point. It lets people do anything with your code with proper attribution and without warranty. */ + description: string; + /** @example Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. Replace [year] with the current year and [fullname] with the name (or names) of the copyright holders. */ + implementation: string; + /** + * @example [ + * "commercial-use", + * "modifications", + * "distribution", + * "sublicense", + * "private-use" + * ] + */ + permissions: string[]; + /** + * @example [ + * "include-copyright" + * ] + */ + conditions: string[]; + /** + * @example [ + * "no-liability" + * ] + */ + limitations: string[]; + /** + * @example + * + * The MIT License (MIT) + * + * Copyright (c) [year] [fullname] + * + * 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: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * 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. + */ + body: string; + /** @example true */ + featured: boolean; + }; + /** + * Marketplace Listing Plan + * @description Marketplace Listing Plan + */ + "marketplace-listing-plan": { + /** + * Format: uri + * @example https://api.github.com/marketplace_listing/plans/1313 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/marketplace_listing/plans/1313/accounts + */ + accounts_url: string; + /** @example 1313 */ + id: number; + /** @example 3 */ + number: number; + /** @example Pro */ + name: string; + /** @example A professional-grade CI solution */ + description: string; + /** @example 1099 */ + monthly_price_in_cents: number; + /** @example 11870 */ + yearly_price_in_cents: number; + /** + * @example FLAT_RATE + * @enum {string} + */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + /** @example true */ + has_free_trial: boolean; + unit_name: string | null; + /** @example published */ + state: string; + /** + * @example [ + * "Up to 25 private repositories", + * "11 concurrent builds" + * ] + */ + bullets: string[]; + }; + /** + * Marketplace Purchase + * @description Marketplace Purchase + */ + "marketplace-purchase": { + url: string; + type: string; + id: number; + login: string; + organization_billing_email?: string; + email?: string | null; + marketplace_pending_change?: { + is_installed?: boolean; + effective_date?: string; + unit_count?: number | null; + id?: number; + plan?: components["schemas"]["marketplace-listing-plan"]; + } | null; + marketplace_purchase: { + billing_cycle?: string; + next_billing_date?: string | null; + is_installed?: boolean; + unit_count?: number | null; + on_free_trial?: boolean; + free_trial_ends_on?: string | null; + updated_at?: string; + plan?: components["schemas"]["marketplace-listing-plan"]; + }; + }; + /** + * Api Overview + * @description Api Overview + */ + "api-overview": { + /** @example true */ + verifiable_password_authentication: boolean; + ssh_key_fingerprints?: { + SHA256_RSA?: string; + SHA256_DSA?: string; + SHA256_ECDSA?: string; + SHA256_ED25519?: string; + }; + /** + * @example [ + * "ssh-ed25519 ABCDEFGHIJKLMNOPQRSTUVWXYZ" + * ] + */ + ssh_keys?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + hooks?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + github_enterprise_importer?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + web?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + api?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + git?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + packages?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + pages?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + importer?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + actions?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + dependabot?: string[]; + domains?: { + website?: string[]; + codespaces?: string[]; + copilot?: string[]; + packages?: string[]; + actions?: string[]; + }; + }; + "security-and-analysis": { + advanced_security?: { + /** @enum {string} */ + status?: "enabled" | "disabled"; + }; + /** @description Enable or disable Dependabot security updates for the repository. */ + dependabot_security_updates?: { + /** + * @description The enablement status of Dependabot security updates for the repository. + * @enum {string} + */ + status?: "enabled" | "disabled"; + }; + secret_scanning?: { + /** @enum {string} */ + status?: "enabled" | "disabled"; + }; + secret_scanning_push_protection?: { + /** @enum {string} */ + status?: "enabled" | "disabled"; + }; + } | null; + /** + * Minimal Repository + * @description Minimal Repository + */ + "minimal-repository": { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** @example Hello-World */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + owner: components["schemas"]["simple-user"]; + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + git_url?: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + ssh_url?: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + clone_url?: string; + mirror_url?: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + svn_url?: string; + homepage?: string | null; + language?: string | null; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + /** @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. */ + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + has_discussions?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at?: string | null; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + /** @example admin */ + role_name?: string; + temp_clone_token?: string; + delete_branch_on_merge?: boolean; + subscribers_count?: number; + network_count?: number; + code_of_conduct?: components["schemas"]["code-of-conduct"]; + license?: { + key?: string; + name?: string; + spdx_id?: string; + url?: string; + node_id?: string; + } | null; + /** @example 0 */ + forks?: number; + /** @example 0 */ + open_issues?: number; + /** @example 0 */ + watchers?: number; + allow_forking?: boolean; + /** @example false */ + web_commit_signoff_required?: boolean; + security_and_analysis?: components["schemas"]["security-and-analysis"]; + }; + /** + * Thread + * @description Thread + */ + thread: { + id: string; + repository: components["schemas"]["minimal-repository"]; + subject: { + title: string; + url: string; + latest_comment_url: string; + type: string; + }; + reason: string; + unread: boolean; + updated_at: string; + last_read_at: string | null; + url: string; + /** @example https://api.github.com/notifications/threads/2/subscription */ + subscription_url: string; + }; + /** + * Thread Subscription + * @description Thread Subscription + */ + "thread-subscription": { + /** @example true */ + subscribed: boolean; + ignored: boolean; + reason: string | null; + /** + * Format: date-time + * @example 2012-10-06T21:34:12Z + */ + created_at: string | null; + /** + * Format: uri + * @example https://api.github.com/notifications/threads/1/subscription + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/notifications/threads/1 + */ + thread_url?: string; + /** + * Format: uri + * @example https://api.github.com/repos/1 + */ + repository_url?: string; + }; + /** + * Organization Simple + * @description A GitHub organization. + */ + "organization-simple": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + }; + /** + * Organization Full + * @description Organization Full + */ + "organization-full": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + /** @example github */ + name?: string; + /** @example GitHub */ + company?: string; + /** + * Format: uri + * @example https://github.com/blog + */ + blog?: string; + /** @example San Francisco */ + location?: string; + /** + * Format: email + * @example octocat@github.com + */ + email?: string; + /** @example github */ + twitter_username?: string | null; + /** @example true */ + is_verified?: boolean; + /** @example true */ + has_organization_projects: boolean; + /** @example true */ + has_repository_projects: boolean; + /** @example 2 */ + public_repos: number; + /** @example 1 */ + public_gists: number; + /** @example 20 */ + followers: number; + /** @example 0 */ + following: number; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** @example Organization */ + type: string; + /** @example 100 */ + total_private_repos?: number; + /** @example 100 */ + owned_private_repos?: number; + /** @example 81 */ + private_gists?: number | null; + /** @example 10000 */ + disk_usage?: number | null; + /** @example 8 */ + collaborators?: number | null; + /** + * Format: email + * @example org@example.com + */ + billing_email?: string | null; + plan?: { + name: string; + space: number; + private_repos: number; + filled_seats?: number; + seats?: number; + }; + default_repository_permission?: string | null; + /** @example true */ + members_can_create_repositories?: boolean | null; + /** @example true */ + two_factor_requirement_enabled?: boolean | null; + /** @example all */ + members_allowed_repository_creation_type?: string; + /** @example true */ + members_can_create_public_repositories?: boolean; + /** @example true */ + members_can_create_private_repositories?: boolean; + /** @example true */ + members_can_create_internal_repositories?: boolean; + /** @example true */ + members_can_create_pages?: boolean; + /** @example true */ + members_can_create_public_pages?: boolean; + /** @example true */ + members_can_create_private_pages?: boolean; + /** @example false */ + members_can_fork_private_repositories?: boolean | null; + /** @example false */ + web_commit_signoff_required?: boolean; + /** + * @description Whether GitHub Advanced Security is enabled for new repositories and repositories transferred to this organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + advanced_security_enabled_for_new_repositories?: boolean; + /** + * @description Whether GitHub Advanced Security is automatically enabled for new repositories and repositories transferred to + * this organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + dependabot_alerts_enabled_for_new_repositories?: boolean; + /** + * @description Whether dependabot security updates are automatically enabled for new repositories and repositories transferred + * to this organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + dependabot_security_updates_enabled_for_new_repositories?: boolean; + /** + * @description Whether dependency graph is automatically enabled for new repositories and repositories transferred to this + * organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + dependency_graph_enabled_for_new_repositories?: boolean; + /** + * @description Whether secret scanning is automatically enabled for new repositories and repositories transferred to this + * organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + secret_scanning_enabled_for_new_repositories?: boolean; + /** + * @description Whether secret scanning push protection is automatically enabled for new repositories and repositories + * transferred to this organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + secret_scanning_push_protection_enabled_for_new_repositories?: boolean; + /** + * @description Whether a custom link is shown to contributors who are blocked from pushing a secret by push protection. + * @example false + */ + secret_scanning_push_protection_custom_link_enabled?: boolean; + /** + * @description An optional URL string to display to contributors who are blocked from pushing a secret. + * @example https://github.com/test-org/test-repo/blob/main/README.md + */ + secret_scanning_push_protection_custom_link?: string | null; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + archived_at: string | null; + }; + "actions-cache-usage-org-enterprise": { + /** @description The count of active caches across all repositories of an enterprise or an organization. */ + total_active_caches_count: number; + /** @description The total size in bytes of all active cache items across all repositories of an enterprise or an organization. */ + total_active_caches_size_in_bytes: number; + }; + /** + * Actions Cache Usage by repository + * @description GitHub Actions Cache Usage by repository. + */ + "actions-cache-usage-by-repository": { + /** + * @description The repository owner and name for the cache usage being shown. + * @example octo-org/Hello-World + */ + full_name: string; + /** + * @description The sum of the size in bytes of all the active cache items in the repository. + * @example 2322142 + */ + active_caches_size_in_bytes: number; + /** + * @description The number of active caches in the repository. + * @example 3 + */ + active_caches_count: number; + }; + /** + * Actions OIDC Subject customization + * @description Actions OIDC Subject customization + */ + "oidc-custom-sub": { + /** @description Array of unique strings. Each claim key can only contain alphanumeric characters and underscores. */ + include_claim_keys: string[]; + }; + /** + * Empty Object + * @description An object without any properties. + */ + "empty-object": Record; + /** + * @description The policy that controls the repositories in the organization that are allowed to run GitHub Actions. + * @enum {string} + */ + "enabled-repositories": "all" | "none" | "selected"; + /** + * @description The permissions policy that controls the actions and reusable workflows that are allowed to run. + * @enum {string} + */ + "allowed-actions": "all" | "local_only" | "selected"; + /** @description The API URL to use to get or set the actions and reusable workflows that are allowed to run, when `allowed_actions` is set to `selected`. */ + "selected-actions-url": string; + "actions-organization-permissions": { + enabled_repositories: components["schemas"]["enabled-repositories"]; + /** @description The API URL to use to get or set the selected repositories that are allowed to run GitHub Actions, when `enabled_repositories` is set to `selected`. */ + selected_repositories_url?: string; + allowed_actions?: components["schemas"]["allowed-actions"]; + selected_actions_url?: components["schemas"]["selected-actions-url"]; + }; + "selected-actions": { + /** @description Whether GitHub-owned actions are allowed. For example, this includes the actions in the `actions` organization. */ + github_owned_allowed?: boolean; + /** @description Whether actions from GitHub Marketplace verified creators are allowed. Set to `true` to allow all actions by GitHub Marketplace verified creators. */ + verified_allowed?: boolean; + /** + * @description Specifies a list of string-matching patterns to allow specific action(s) and reusable workflow(s). Wildcards, tags, and SHAs are allowed. For example, `monalisa/octocat@*`, `monalisa/octocat@v2`, `monalisa/*`. + * + * **Note**: The `patterns_allowed` setting only applies to public repositories. + */ + patterns_allowed?: string[]; + }; + /** + * @description The default workflow permissions granted to the GITHUB_TOKEN when running workflows. + * @enum {string} + */ + "actions-default-workflow-permissions": "read" | "write"; + /** @description Whether GitHub Actions can approve pull requests. Enabling this can be a security risk. */ + "actions-can-approve-pull-request-reviews": boolean; + "actions-get-default-workflow-permissions": { + default_workflow_permissions: components["schemas"]["actions-default-workflow-permissions"]; + can_approve_pull_request_reviews: components["schemas"]["actions-can-approve-pull-request-reviews"]; + }; + "actions-set-default-workflow-permissions": { + default_workflow_permissions?: components["schemas"]["actions-default-workflow-permissions"]; + can_approve_pull_request_reviews?: components["schemas"]["actions-can-approve-pull-request-reviews"]; + }; + /** + * Self hosted runner label + * @description A label for a self hosted runner + */ + "runner-label": { + /** @description Unique identifier of the label. */ + id?: number; + /** @description Name of the label. */ + name: string; + /** + * @description The type of label. Read-only labels are applied automatically when the runner is configured. + * @enum {string} + */ + type?: "read-only" | "custom"; + }; + /** + * Self hosted runners + * @description A self hosted runner + */ + runner: { + /** + * @description The id of the runner. + * @example 5 + */ + id: number; + /** + * @description The id of the runner group. + * @example 1 + */ + runner_group_id?: number; + /** + * @description The name of the runner. + * @example iMac + */ + name: string; + /** + * @description The Operating System of the runner. + * @example macos + */ + os: string; + /** + * @description The status of the runner. + * @example online + */ + status: string; + busy: boolean; + labels: components["schemas"]["runner-label"][]; + }; + /** + * Runner Application + * @description Runner Application + */ + "runner-application": { + os: string; + architecture: string; + download_url: string; + filename: string; + /** @description A short lived bearer token used to download the runner, if needed. */ + temp_download_token?: string; + sha256_checksum?: string; + }; + /** + * Authentication Token + * @description Authentication Token + */ + "authentication-token": { + /** + * @description The token used for authentication + * @example v1.1f699f1069f60xxx + */ + token: string; + /** + * Format: date-time + * @description The time this token expires + * @example 2016-07-11T22:14:10Z + */ + expires_at: string; + /** + * @example { + * "issues": "read", + * "deployments": "write" + * } + */ + permissions?: Record; + /** @description The repositories this token has access to */ + repositories?: components["schemas"]["repository"][]; + /** @example config.yaml */ + single_file?: string | null; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection?: "all" | "selected"; + }; + /** + * Actions Secret for an Organization + * @description Secrets for GitHub Actions for an organization. + */ + "organization-actions-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** + * @description Visibility of a secret + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @example https://api.github.com/organizations/org/secrets/my_secret/repositories + */ + selected_repositories_url?: string; + }; + /** + * ActionsPublicKey + * @description The public key used for setting Actions Secrets. + */ + "actions-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + /** @example 2 */ + id?: number; + /** @example https://api.github.com/user/keys/2 */ + url?: string; + /** @example ssh-rsa AAAAB3NzaC1yc2EAAA */ + title?: string; + /** @example 2011-01-26T19:01:12Z */ + created_at?: string; + }; + /** + * Actions Variable for an Organization + * @description Organization variable for GitHub Actions. + */ + "organization-actions-variable": { + /** + * @description The name of the variable. + * @example USERNAME + */ + name: string; + /** + * @description The value of the variable. + * @example octocat + */ + value: string; + /** + * Format: date-time + * @description The date and time at which the variable was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + * @example 2019-01-24T22:45:36.000Z + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the variable was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + * @example 2019-01-24T22:45:36.000Z + */ + updated_at: string; + /** + * @description Visibility of a variable + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @example https://api.github.com/organizations/org/variables/USERNAME/repositories + */ + selected_repositories_url?: string; + }; + /** @description The name of the tool used to generate the code scanning analysis. */ + "code-scanning-analysis-tool-name": string; + /** @description The GUID of the tool used to generate the code scanning analysis, if provided in the uploaded SARIF data. */ + "code-scanning-analysis-tool-guid": string | null; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + "code-scanning-alert-state-query": + | "open" + | "closed" + | "dismissed" + | "fixed"; + /** + * @description Severity of a code scanning alert. + * @enum {string} + */ + "code-scanning-alert-severity": + | "critical" + | "high" + | "medium" + | "low" + | "warning" + | "note" + | "error"; + /** + * Format: uri + * @description The REST API URL for fetching the list of instances for an alert. + */ + readonly "alert-instances-url": string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + "code-scanning-alert-state": "open" | "dismissed" | "fixed"; + /** + * @description **Required when the state is dismissed.** The reason for dismissing or closing the alert. + * @enum {string|null} + */ + "code-scanning-alert-dismissed-reason": + | null + | "false positive" + | "won't fix" + | "used in tests"; + /** @description The dismissal comment associated with the dismissal of the alert. */ + "code-scanning-alert-dismissed-comment": string | null; + "code-scanning-alert-rule-summary": { + /** @description A unique identifier for the rule used to detect the alert. */ + id?: string | null; + /** @description The name of the rule used to detect the alert. */ + name?: string; + /** @description A set of tags applicable for the rule. */ + tags?: string[] | null; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity?: "none" | "note" | "warning" | "error" | null; + /** + * @description The security severity of the alert. + * @enum {string|null} + */ + security_severity_level?: "low" | "medium" | "high" | "critical" | null; + /** @description A short description of the rule used to detect the alert. */ + description?: string; + }; + /** @description The version of the tool used to generate the code scanning analysis. */ + "code-scanning-analysis-tool-version": string | null; + "code-scanning-analysis-tool": { + name?: components["schemas"]["code-scanning-analysis-tool-name"]; + version?: components["schemas"]["code-scanning-analysis-tool-version"]; + guid?: components["schemas"]["code-scanning-analysis-tool-guid"]; + }; + /** + * @description The Git reference, formatted as `refs/pull//merge`, `refs/pull//head`, + * `refs/heads/` or simply ``. + */ + "code-scanning-ref": string; + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + "code-scanning-analysis-analysis-key": string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + "code-scanning-alert-environment": string; + /** @description Identifies the configuration under which the analysis was executed. Used to distinguish between multiple analyses for the same tool and commit, but performed on different languages or different parts of the code. */ + "code-scanning-analysis-category": string; + /** @description Describe a region within a file for the alert. */ + "code-scanning-alert-location": { + path?: string; + start_line?: number; + end_line?: number; + start_column?: number; + end_column?: number; + }; + /** + * @description A classification of the file. For example to identify it as generated. + * @enum {string|null} + */ + "code-scanning-alert-classification": + | "source" + | "generated" + | "test" + | "library" + | null; + "code-scanning-alert-instance": { + ref?: components["schemas"]["code-scanning-ref"]; + analysis_key?: components["schemas"]["code-scanning-analysis-analysis-key"]; + environment?: components["schemas"]["code-scanning-alert-environment"]; + category?: components["schemas"]["code-scanning-analysis-category"]; + state?: components["schemas"]["code-scanning-alert-state"]; + commit_sha?: string; + message?: { + text?: string; + }; + location?: components["schemas"]["code-scanning-alert-location"]; + html_url?: string; + /** + * @description Classifications that have been applied to the file that triggered the alert. + * For example identifying it as documentation, or a generated file. + */ + classifications?: components["schemas"]["code-scanning-alert-classification"][]; + }; + "code-scanning-organization-alert-items": { + number: components["schemas"]["alert-number"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["alert-updated-at"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + instances_url: components["schemas"]["alert-instances-url"]; + state: components["schemas"]["code-scanning-alert-state"]; + fixed_at?: components["schemas"]["alert-fixed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_reason: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + rule: components["schemas"]["code-scanning-alert-rule-summary"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + most_recent_instance: components["schemas"]["code-scanning-alert-instance"]; + repository: components["schemas"]["simple-repository"]; + }; + /** + * Codespace machine + * @description A description of the machine powering a codespace. + */ + "nullable-codespace-machine": { + /** + * @description The name of the machine. + * @example standardLinux + */ + name: string; + /** + * @description The display name of the machine includes cores, memory, and storage. + * @example 4 cores, 16 GB RAM, 64 GB storage + */ + display_name: string; + /** + * @description The operating system of the machine. + * @example linux + */ + operating_system: string; + /** + * @description How much storage is available to the codespace. + * @example 68719476736 + */ + storage_in_bytes: number; + /** + * @description How much memory is available to the codespace. + * @example 17179869184 + */ + memory_in_bytes: number; + /** + * @description How many cores are available to the codespace. + * @example 4 + */ + cpus: number; + /** + * @description Whether a prebuild is currently available when creating a codespace for this machine and repository. If a branch was not specified as a ref, the default branch will be assumed. Value will be "null" if prebuilds are not supported or prebuild availability could not be determined. Value will be "none" if no prebuild is available. Latest values "ready" and "in_progress" indicate the prebuild availability status. + * @example ready + * @enum {string|null} + */ + prebuild_availability: "none" | "ready" | "in_progress" | null; + } | null; + /** + * Codespace + * @description A codespace. + */ + codespace: { + /** @example 1 */ + id: number; + /** + * @description Automatically generated name of this codespace. + * @example monalisa-octocat-hello-world-g4wpq6h95q + */ + name: string; + /** + * @description Display name for this codespace. + * @example bookish space pancake + */ + display_name?: string | null; + /** + * @description UUID identifying this codespace's environment. + * @example 26a7c758-7299-4a73-b978-5a92a7ae98a0 + */ + environment_id: string | null; + owner: components["schemas"]["simple-user"]; + billable_owner: components["schemas"]["simple-user"]; + repository: components["schemas"]["minimal-repository"]; + machine: components["schemas"]["nullable-codespace-machine"]; + /** + * @description Path to devcontainer.json from repo root used to create Codespace. + * @example .devcontainer/example/devcontainer.json + */ + devcontainer_path?: string | null; + /** + * @description Whether the codespace was created from a prebuild. + * @example false + */ + prebuild: boolean | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @description Last known time this codespace was started. + * @example 2011-01-26T19:01:12Z + */ + last_used_at: string; + /** + * @description State of this codespace. + * @example Available + * @enum {string} + */ + state: + | "Unknown" + | "Created" + | "Queued" + | "Provisioning" + | "Available" + | "Awaiting" + | "Unavailable" + | "Deleted" + | "Moved" + | "Shutdown" + | "Archived" + | "Starting" + | "ShuttingDown" + | "Failed" + | "Exporting" + | "Updating" + | "Rebuilding"; + /** + * Format: uri + * @description API URL for this codespace. + */ + url: string; + /** @description Details about the codespace's git repository. */ + git_status: { + /** + * @description The number of commits the local repository is ahead of the remote. + * @example 0 + */ + ahead?: number; + /** + * @description The number of commits the local repository is behind the remote. + * @example 0 + */ + behind?: number; + /** @description Whether the local repository has unpushed changes. */ + has_unpushed_changes?: boolean; + /** @description Whether the local repository has uncommitted changes. */ + has_uncommitted_changes?: boolean; + /** + * @description The current branch (or SHA if in detached HEAD state) of the local repository. + * @example main + */ + ref?: string; + }; + /** + * @description The initally assigned location of a new codespace. + * @example WestUs2 + * @enum {string} + */ + location: "EastUs" | "SouthEastAsia" | "WestEurope" | "WestUs2"; + /** + * @description The number of minutes of inactivity after which this codespace will be automatically stopped. + * @example 60 + */ + idle_timeout_minutes: number | null; + /** + * Format: uri + * @description URL to access this codespace on the web. + */ + web_url: string; + /** + * Format: uri + * @description API URL to access available alternate machine types for this codespace. + */ + machines_url: string; + /** + * Format: uri + * @description API URL to start this codespace. + */ + start_url: string; + /** + * Format: uri + * @description API URL to stop this codespace. + */ + stop_url: string; + /** + * Format: uri + * @description API URL to publish this codespace to a new repository. + */ + publish_url?: string | null; + /** + * Format: uri + * @description API URL for the Pull Request associated with this codespace, if any. + */ + pulls_url: string | null; + recent_folders: string[]; + runtime_constraints?: { + /** @description The privacy settings a user can select from when forwarding a port. */ + allowed_port_privacy_settings?: string[] | null; + }; + /** @description Whether or not a codespace has a pending async operation. This would mean that the codespace is temporarily unavailable. The only thing that you can do with a codespace in this state is delete it. */ + pending_operation?: boolean | null; + /** @description Text to show user when codespace is disabled by a pending operation */ + pending_operation_disabled_reason?: string | null; + /** @description Text to show user when codespace idle timeout minutes has been overriden by an organization policy */ + idle_timeout_notice?: string | null; + /** + * @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). + * @example 60 + */ + retention_period_minutes?: number | null; + /** + * Format: date-time + * @description When a codespace will be auto-deleted based on the "retention_period_minutes" and "last_used_at" + * @example 2011-01-26T20:01:12Z + */ + retention_expires_at?: string | null; + /** + * @description The text to display to a user when a codespace has been stopped for a potentially actionable reason. + * @example you've used 100% of your spending limit for Codespaces + */ + last_known_stop_notice?: string | null; + }; + /** + * Codespaces Secret + * @description Secrets for a GitHub Codespace. + */ + "codespaces-org-secret": { + /** + * @description The name of the secret + * @example SECRET_NAME + */ + name: string; + /** + * Format: date-time + * @description The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + updated_at: string; + /** + * @description The type of repositories in the organization that the secret is visible to + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @description The API URL at which the list of repositories this secret is visible to can be retrieved + * @example https://api.github.com/orgs/ORGANIZATION/codespaces/secrets/SECRET_NAME/repositories + */ + selected_repositories_url?: string; + }; + /** + * CodespacesPublicKey + * @description The public key used for setting Codespaces secrets. + */ + "codespaces-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + /** @example 2 */ + id?: number; + /** @example https://api.github.com/user/keys/2 */ + url?: string; + /** @example ssh-rsa AAAAB3NzaC1yc2EAAA */ + title?: string; + /** @example 2011-01-26T19:01:12Z */ + created_at?: string; + }; + /** + * Copilot Business Seat Breakdown + * @description The breakdown of Copilot Business seats for the organization. + */ + "copilot-seat-breakdown": { + /** @description The total number of seats being billed for the organization as of the current billing cycle. */ + total?: number; + /** @description Seats added during the current billing cycle. */ + added_this_cycle?: number; + /** @description The number of seats that are pending cancellation at the end of the current billing cycle. */ + pending_cancellation?: number; + /** @description The number of seats that have been assigned to users that have not yet accepted an invitation to this organization. */ + pending_invitation?: number; + /** @description The number of seats that have used Copilot during the current billing cycle. */ + active_this_cycle?: number; + /** @description The number of seats that have not used Copilot during the current billing cycle. */ + inactive_this_cycle?: number; + }; + /** + * Copilot Business Organization Details + * @description Information about the seat breakdown and policies set for an organization with a Copilot Business subscription. + */ + "copilot-organization-details": { + seat_breakdown: components["schemas"]["copilot-seat-breakdown"]; + /** + * @description The organization policy for allowing or disallowing Copilot to make suggestions that match public code. + * @enum {string} + */ + public_code_suggestions: "allow" | "block" | "unconfigured" | "unknown"; + /** + * @description The organization policy for allowing or disallowing organization members to use Copilot Chat within their editor. + * @enum {string} + */ + ide_chat?: "enabled" | "disabled" | "unconfigured"; + /** + * @description The organization policy for allowing or disallowing organization members to use Copilot features within github.com. + * @enum {string} + */ + platform_chat?: "enabled" | "disabled" | "unconfigured"; + /** + * @description The organization policy for allowing or disallowing organization members to use Copilot within their CLI. + * @enum {string} + */ + cli?: "enabled" | "disabled" | "unconfigured"; + /** + * @description The mode of assigning new seats. + * @enum {string} + */ + seat_management_setting: + | "assign_all" + | "assign_selected" + | "disabled" + | "unconfigured"; + [key: string]: unknown; + }; + /** + * Team Simple + * @description Groups of organization members that gives permissions on specified repositories. + */ + "nullable-team-simple": { + /** + * @description Unique identifier of the team + * @example 1 + */ + id: number; + /** @example MDQ6VGVhbTE= */ + node_id: string; + /** + * Format: uri + * @description URL for the team + * @example https://api.github.com/organizations/1/team/1 + */ + url: string; + /** @example https://api.github.com/organizations/1/team/1/members{/member} */ + members_url: string; + /** + * @description Name of the team + * @example Justice League + */ + name: string; + /** + * @description Description of the team + * @example A great team. + */ + description: string | null; + /** + * @description Permission that the team will have for its repositories + * @example admin + */ + permission: string; + /** + * @description The level of privacy this team should have + * @example closed + */ + privacy?: string; + /** + * @description The notification setting the team has set + * @example notifications_enabled + */ + notification_setting?: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/1/repos + */ + repositories_url: string; + /** @example justice-league */ + slug: string; + /** + * @description Distinguished Name (DN) that team maps to within LDAP environment + * @example uid=example,ou=users,dc=github,dc=com + */ + ldap_dn?: string; + } | null; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + id: number; + node_id: string; + name: string; + slug: string; + description: string | null; + privacy?: string; + notification_setting?: string; + permission: string; + permissions?: { + pull: boolean; + triage: boolean; + push: boolean; + maintain: boolean; + admin: boolean; + }; + /** Format: uri */ + url: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + members_url: string; + /** Format: uri */ + repositories_url: string; + parent: components["schemas"]["nullable-team-simple"]; + }; + /** + * Organization + * @description GitHub account for managing multiple users, teams, and repositories + */ + organization: { + /** + * @description Unique login name of the organization + * @example new-org + */ + login: string; + /** + * Format: uri + * @description URL for the organization + * @example https://api.github.com/orgs/github + */ + url: string; + id: number; + node_id: string; + /** Format: uri */ + repos_url: string; + /** Format: uri */ + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string | null; + /** + * Format: uri + * @description Display blog url for the organization + * @example blog.example-org.com + */ + blog?: string; + /** Format: uri */ + html_url: string; + /** + * @description Display name for the organization + * @example New Org + */ + name?: string; + /** + * @description Display company name for the organization + * @example Acme corporation + */ + company?: string; + /** + * @description Display location for the organization + * @example Berlin, Germany + */ + location?: string; + /** + * Format: email + * @description Display email for the organization + * @example org@example.com + */ + email?: string; + /** @description Specifies if organization projects are enabled for this org */ + has_organization_projects: boolean; + /** @description Specifies if repository projects are enabled for repositories that belong to this org */ + has_repository_projects: boolean; + is_verified?: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + type: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + plan?: { + name?: string; + space?: number; + private_repos?: number; + filled_seats?: number; + seats?: number; + }; + }; + /** + * Copilot Business Seat Detail + * @description Information about a Copilot Business seat assignment for a user, team, or organization. + */ + "copilot-seat-details": { + /** @description The assignee that has been granted access to GitHub Copilot. */ + assignee: { + [key: string]: unknown; + } & ( + | components["schemas"]["simple-user"] + | components["schemas"]["team"] + | components["schemas"]["organization"] + ); + /** @description The team that granted access to GitHub Copilot to the assignee. This will be null if the user was assigned a seat individually. */ + assigning_team?: components["schemas"]["team"] | null; + /** + * Format: date + * @description The pending cancellation date for the seat, in `YYYY-MM-DD` format. This will be null unless the assignee's Copilot access has been canceled during the current billing cycle. If the seat has been cancelled, this corresponds to the start of the organization's next billing cycle. + */ + pending_cancellation_date?: string | null; + /** + * Format: date-time + * @description Timestamp of user's last GitHub Copilot activity, in ISO 8601 format. + */ + last_activity_at?: string | null; + /** @description Last editor that was used by the user for a GitHub Copilot completion. */ + last_activity_editor?: string | null; + /** + * Format: date-time + * @description Timestamp of when the assignee was last granted access to GitHub Copilot, in ISO 8601 format. + */ + created_at: string; + /** + * Format: date-time + * @description Timestamp of when the assignee's GitHub Copilot access was last updated, in ISO 8601 format. + */ + updated_at?: string; + }; + /** + * Dependabot Secret for an Organization + * @description Secrets for GitHub Dependabot for an organization. + */ + "organization-dependabot-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** + * @description Visibility of a secret + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @example https://api.github.com/organizations/org/dependabot/secrets/my_secret/repositories + */ + selected_repositories_url?: string; + }; + /** + * DependabotPublicKey + * @description The public key used for setting Dependabot Secrets. + */ + "dependabot-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + }; + /** + * Minimal Repository + * @description Minimal Repository + */ + "nullable-minimal-repository": { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** @example Hello-World */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + owner: components["schemas"]["simple-user"]; + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + git_url?: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + ssh_url?: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + clone_url?: string; + mirror_url?: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + svn_url?: string; + homepage?: string | null; + language?: string | null; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + /** @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. */ + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + has_discussions?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at?: string | null; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + /** @example admin */ + role_name?: string; + temp_clone_token?: string; + delete_branch_on_merge?: boolean; + subscribers_count?: number; + network_count?: number; + code_of_conduct?: components["schemas"]["code-of-conduct"]; + license?: { + key?: string; + name?: string; + spdx_id?: string; + url?: string; + node_id?: string; + } | null; + /** @example 0 */ + forks?: number; + /** @example 0 */ + open_issues?: number; + /** @example 0 */ + watchers?: number; + allow_forking?: boolean; + /** @example false */ + web_commit_signoff_required?: boolean; + security_and_analysis?: components["schemas"]["security-and-analysis"]; + } | null; + /** + * Package + * @description A software package + */ + package: { + /** + * @description Unique identifier of the package. + * @example 1 + */ + id: number; + /** + * @description The name of the package. + * @example super-linter + */ + name: string; + /** + * @example docker + * @enum {string} + */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** @example https://api.github.com/orgs/github/packages/container/super-linter */ + url: string; + /** @example https://github.com/orgs/github/packages/container/package/super-linter */ + html_url: string; + /** + * @description The number of versions of the package. + * @example 1 + */ + version_count: number; + /** + * @example private + * @enum {string} + */ + visibility: "private" | "public"; + owner?: components["schemas"]["nullable-simple-user"]; + repository?: components["schemas"]["nullable-minimal-repository"]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Organization Invitation + * @description Organization Invitation + */ + "organization-invitation": { + id: number; + login: string | null; + email: string | null; + role: string; + created_at: string; + failed_at?: string | null; + failed_reason?: string | null; + inviter: components["schemas"]["simple-user"]; + team_count: number; + /** @example "MDIyOk9yZ2FuaXphdGlvbkludml0YXRpb24x" */ + node_id: string; + /** @example "https://api.github.com/organizations/16/invitations/1/teams" */ + invitation_teams_url: string; + /** @example "member" */ + invitation_source?: string; + }; + /** + * Org Hook + * @description Org Hook + */ + "org-hook": { + /** @example 1 */ + id: number; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/hooks/1 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/hooks/1/pings + */ + ping_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/hooks/1/deliveries + */ + deliveries_url?: string; + /** @example web */ + name: string; + /** + * @example [ + * "push", + * "pull_request" + * ] + */ + events: string[]; + /** @example true */ + active: boolean; + config: { + /** @example "http://example.com/2" */ + url?: string; + /** @example "0" */ + insecure_ssl?: string; + /** @example "form" */ + content_type?: string; + /** @example "********" */ + secret?: string; + }; + /** + * Format: date-time + * @example 2011-09-06T20:39:23Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-09-06T17:26:27Z + */ + created_at: string; + type: string; + }; + /** + * @description The type of GitHub user that can comment, open issues, or create pull requests while the interaction limit is in effect. + * @example collaborators_only + * @enum {string} + */ + "interaction-group": + | "existing_users" + | "contributors_only" + | "collaborators_only"; + /** + * Interaction Limits + * @description Interaction limit settings. + */ + "interaction-limit-response": { + limit: components["schemas"]["interaction-group"]; + /** @example repository */ + origin: string; + /** + * Format: date-time + * @example 2018-08-17T04:18:39Z + */ + expires_at: string; + }; + /** + * @description The duration of the interaction restriction. Default: `one_day`. + * @example one_month + * @enum {string} + */ + "interaction-expiry": + | "one_day" + | "three_days" + | "one_week" + | "one_month" + | "six_months"; + /** + * Interaction Restrictions + * @description Limit interactions to a specific type of user for a specified duration + */ + "interaction-limit": { + limit: components["schemas"]["interaction-group"]; + expiry?: components["schemas"]["interaction-expiry"]; + }; + /** + * Org Membership + * @description Org Membership + */ + "org-membership": { + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/memberships/defunkt + */ + url: string; + /** + * @description The state of the member in the organization. The `pending` state indicates the user has not yet accepted an invitation. + * @example active + * @enum {string} + */ + state: "active" | "pending"; + /** + * @description The user's membership type in the organization. + * @example admin + * @enum {string} + */ + role: "admin" | "member" | "billing_manager"; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat + */ + organization_url: string; + organization: components["schemas"]["organization-simple"]; + user: components["schemas"]["nullable-simple-user"]; + permissions?: { + can_create_repository: boolean; + }; + }; + /** + * Migration + * @description A migration. + */ + migration: { + /** @example 79 */ + id: number; + owner: components["schemas"]["nullable-simple-user"]; + /** @example 0b989ba4-242f-11e5-81e1-c7b6966d2516 */ + guid: string; + /** @example pending */ + state: string; + /** @example true */ + lock_repositories: boolean; + exclude_metadata: boolean; + exclude_git_data: boolean; + exclude_attachments: boolean; + exclude_releases: boolean; + exclude_owner_projects: boolean; + org_metadata_only: boolean; + /** @description The repositories included in the migration. Only returned for export migrations. */ + repositories: components["schemas"]["repository"][]; + /** + * Format: uri + * @example https://api.github.com/orgs/octo-org/migrations/79 + */ + url: string; + /** + * Format: date-time + * @example 2015-07-06T15:33:38-07:00 + */ + created_at: string; + /** + * Format: date-time + * @example 2015-07-06T15:33:38-07:00 + */ + updated_at: string; + node_id: string; + /** Format: uri */ + archive_url?: string; + /** @description Exclude related items from being returned in the response in order to improve performance of the request. The array can include any of: `"repositories"`. */ + exclude?: string[]; + }; + /** + * Organization Fine-Grained Permission + * @description A fine-grained permission that protects organization resources. + */ + "organization-fine-grained-permission": { + name: string; + description: string; + }; + /** + * Organization Role + * @description Organization roles + */ + "organization-role": { + /** @description The unique identifier of the role. */ + id: number; + /** @description The name of the role. */ + name: string; + /** @description A short description about who this role is for or what permissions it grants. */ + description?: string | null; + /** @description A list of permissions included in this role. */ + permissions: string[]; + organization: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The date and time the role was created. + */ + created_at: string; + /** + * Format: date-time + * @description The date and time the role was last updated. + */ + updated_at: string; + }; + /** + * Package Version + * @description A version of a software package + */ + "package-version": { + /** + * @description Unique identifier of the package version. + * @example 1 + */ + id: number; + /** + * @description The name of the package version. + * @example latest + */ + name: string; + /** @example https://api.github.com/orgs/github/packages/container/super-linter/versions/786068 */ + url: string; + /** @example https://github.com/orgs/github/packages/container/package/super-linter */ + package_html_url: string; + /** @example https://github.com/orgs/github/packages/container/super-linter/786068 */ + html_url?: string; + /** @example MIT */ + license?: string; + description?: string; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + deleted_at?: string; + /** Package Version Metadata */ + metadata?: { + /** + * @example docker + * @enum {string} + */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** Container Metadata */ + container?: { + tags: string[]; + }; + /** Docker Metadata */ + docker?: { + tag?: string[]; + }; + }; + }; + /** + * Simple Organization Programmatic Access Grant Request + * @description Minimal representation of an organization programmatic access grant request for enumerations + */ + "organization-programmatic-access-grant-request": { + /** @description Unique identifier of the request for access via fine-grained personal access token. The `pat_request_id` used to review PAT requests. */ + id: number; + /** @description Reason for requesting access. */ + reason: string | null; + owner: components["schemas"]["simple-user"]; + /** + * @description Type of repository selection requested. + * @enum {string} + */ + repository_selection: "none" | "all" | "subset"; + /** @description URL to the list of repositories requested to be accessed via fine-grained personal access token. Should only be followed when `repository_selection` is `subset`. */ + repositories_url: string; + /** @description Permissions requested, categorized by type of permission. */ + permissions: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** @description Date and time when the request for access was created. */ + created_at: string; + /** @description Whether the associated fine-grained personal access token has expired. */ + token_expired: boolean; + /** @description Date and time when the associated fine-grained personal access token expires. */ + token_expires_at: string | null; + /** @description Date and time when the associated fine-grained personal access token was last used for authentication. */ + token_last_used_at: string | null; + }; + /** + * Organization Programmatic Access Grant + * @description Minimal representation of an organization programmatic access grant for enumerations + */ + "organization-programmatic-access-grant": { + /** @description Unique identifier of the fine-grained personal access token. The `pat_id` used to get details about an approved fine-grained personal access token. */ + id: number; + owner: components["schemas"]["simple-user"]; + /** + * @description Type of repository selection requested. + * @enum {string} + */ + repository_selection: "none" | "all" | "subset"; + /** @description URL to the list of repositories the fine-grained personal access token can access. Only follow when `repository_selection` is `subset`. */ + repositories_url: string; + /** @description Permissions requested, categorized by type of permission. */ + permissions: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** @description Date and time when the fine-grained personal access token was approved to access the organization. */ + access_granted_at: string; + /** @description Whether the associated fine-grained personal access token has expired. */ + token_expired: boolean; + /** @description Date and time when the associated fine-grained personal access token expires. */ + token_expires_at: string | null; + /** @description Date and time when the associated fine-grained personal access token was last used for authentication. */ + token_last_used_at: string | null; + }; + /** + * Project + * @description Projects are a way to organize columns and cards of work. + */ + project: { + /** + * Format: uri + * @example https://api.github.com/repos/api-playground/projects-test + */ + owner_url: string; + /** + * Format: uri + * @example https://api.github.com/projects/1002604 + */ + url: string; + /** + * Format: uri + * @example https://github.com/api-playground/projects-test/projects/12 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/projects/1002604/columns + */ + columns_url: string; + /** @example 1002604 */ + id: number; + /** @example MDc6UHJvamVjdDEwMDI2MDQ= */ + node_id: string; + /** + * @description Name of the project + * @example Week One Sprint + */ + name: string; + /** + * @description Body of the project + * @example This project represents the sprint of the first week in January + */ + body: string | null; + /** @example 1 */ + number: number; + /** + * @description State of the project; either 'open' or 'closed' + * @example open + */ + state: string; + creator: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * @description The baseline permission that all organization members have on this project. Only present if owner is an organization. + * @enum {string} + */ + organization_permission?: "read" | "write" | "admin" | "none"; + /** @description Whether or not this project can be seen by everyone. Only present if owner is an organization. */ + private?: boolean; + }; + /** + * Organization Custom Property + * @description Custom property defined on an organization + */ + "org-custom-property": { + /** @description The name of the property */ + property_name: string; + /** + * @description The type of the value for the property + * @example single_select + * @enum {string} + */ + value_type: "string" | "single_select"; + /** @description Whether the property is required. */ + required?: boolean; + /** @description Default value of the property */ + default_value?: string | string[] | null; + /** @description Short description of the property */ + description?: string | null; + /** + * @description An ordered list of the allowed values of the property. + * The property can have up to 200 allowed values. + */ + allowed_values?: string[] | null; + /** + * @description Who can edit the values of the property + * @example org_actors + * @enum {string|null} + */ + values_editable_by?: "org_actors" | "org_and_repo_actors" | null; + }; + /** + * Custom Property Value + * @description Custom property name and associated value + */ + "custom-property-value": { + /** @description The name of the property */ + property_name: string; + /** @description The value assigned to the property */ + value: string | string[] | null; + }; + /** + * Organization Repository Custom Property Values + * @description List of custom property values for a repository + */ + "org-repo-custom-property-values": { + /** @example 1296269 */ + repository_id: number; + /** @example Hello-World */ + repository_name: string; + /** @example octocat/Hello-World */ + repository_full_name: string; + /** @description List of custom property names and associated values */ + properties: components["schemas"]["custom-property-value"][]; + }; + /** + * Repository + * @description A repository on GitHub. + */ + "nullable-repository": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @deprecated + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + */ + web_commit_signoff_required?: boolean; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + /** @description Whether anonymous git access is enabled for this repository */ + anonymous_access_enabled?: boolean; + } | null; + /** + * Code Of Conduct Simple + * @description Code of Conduct Simple + */ + "code-of-conduct-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/github/docs/community/code_of_conduct + */ + url: string; + /** @example citizen_code_of_conduct */ + key: string; + /** @example Citizen Code of Conduct */ + name: string; + /** + * Format: uri + * @example https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md + */ + html_url: string | null; + }; + /** + * Full Repository + * @description Full Repository + */ + "full-repository": { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** @example Hello-World */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + owner: components["schemas"]["simple-user"]; + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** @example master */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** @example true */ + is_template?: boolean; + /** + * @example [ + * "octocat", + * "atom", + * "electron", + * "API" + * ] + */ + topics?: string[]; + /** @example true */ + has_issues: boolean; + /** @example true */ + has_projects: boolean; + /** @example true */ + has_wiki: boolean; + has_pages: boolean; + /** @example true */ + has_downloads?: boolean; + /** @example true */ + has_discussions: boolean; + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @example public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + /** @example true */ + allow_rebase_merge?: boolean; + template_repository?: components["schemas"]["nullable-repository"]; + temp_clone_token?: string | null; + /** @example true */ + allow_squash_merge?: boolean; + /** @example false */ + allow_auto_merge?: boolean; + /** @example false */ + delete_branch_on_merge?: boolean; + /** @example true */ + allow_merge_commit?: boolean; + /** @example true */ + allow_update_branch?: boolean; + /** @example false */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @example PR_TITLE + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @example PR_BODY + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @example PR_TITLE + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @example PR_BODY + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** @example true */ + allow_forking?: boolean; + /** @example false */ + web_commit_signoff_required?: boolean; + /** @example 42 */ + subscribers_count: number; + /** @example 0 */ + network_count: number; + license: components["schemas"]["nullable-license-simple"]; + organization?: components["schemas"]["nullable-simple-user"]; + parent?: components["schemas"]["repository"]; + source?: components["schemas"]["repository"]; + forks: number; + master_branch?: string; + open_issues: number; + watchers: number; + /** + * @description Whether anonymous git access is allowed. + * @default true + */ + anonymous_access_enabled?: boolean; + code_of_conduct?: components["schemas"]["code-of-conduct-simple"]; + security_and_analysis?: components["schemas"]["security-and-analysis"]; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + }; + /** + * @description The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise). + * @enum {string} + */ + "repository-rule-enforcement": "disabled" | "active" | "evaluate"; + /** + * Repository Ruleset Bypass Actor + * @description An actor that can bypass rules in a ruleset + */ + "repository-ruleset-bypass-actor": { + /** @description The ID of the actor that can bypass a ruleset. If `actor_type` is `OrganizationAdmin`, this should be `1`. If `actor_type` is `DeployKey`, this should be null. `OrganizationAdmin` is not applicable for personal repositories. */ + actor_id?: number | null; + /** + * @description The type of actor that can bypass a ruleset. + * + * @enum {string} + */ + actor_type: + | "Integration" + | "OrganizationAdmin" + | "RepositoryRole" + | "Team" + | "DeployKey"; + /** + * @description When the specified actor can bypass the ruleset. `pull_request` means that an actor can only bypass rules on pull requests. `pull_request` is not applicable for the `DeployKey` actor type. + * + * @enum {string} + */ + bypass_mode: "always" | "pull_request"; + }; + /** + * Repository ruleset conditions for ref names + * @description Parameters for a repository ruleset ref name condition + */ + "repository-ruleset-conditions": { + ref_name?: { + /** @description Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches. */ + include?: string[]; + /** @description Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match. */ + exclude?: string[]; + }; + }; + /** + * Repository ruleset conditions for repository names + * @description Parameters for a repository name condition + */ + "repository-ruleset-conditions-repository-name-target": { + repository_name: { + /** @description Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~ALL` to include all repositories. */ + include?: string[]; + /** @description Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match. */ + exclude?: string[]; + /** @description Whether renaming of target repositories is prevented. */ + protected?: boolean; + }; + }; + /** + * Repository ruleset conditions for repository IDs + * @description Parameters for a repository ID condition + */ + "repository-ruleset-conditions-repository-id-target": { + repository_id: { + /** @description The repository IDs that the ruleset applies to. One of these IDs must match for the condition to pass. */ + repository_ids?: number[]; + }; + }; + /** + * Repository ruleset property targeting definition + * @description Parameters for a targeting a repository property + */ + "repository-ruleset-conditions-repository-property-spec": { + /** @description The name of the repository property to target */ + name: string; + /** @description The values to match for the repository property */ + property_values: string[]; + }; + /** + * Repository ruleset conditions for repository properties + * @description Parameters for a repository property condition + */ + "repository-ruleset-conditions-repository-property-target": { + repository_property: { + /** @description The repository properties and values to include. All of these properties must match for the condition to pass. */ + include?: components["schemas"]["repository-ruleset-conditions-repository-property-spec"][]; + /** @description The repository properties and values to exclude. The condition will not pass if any of these properties match. */ + exclude?: components["schemas"]["repository-ruleset-conditions-repository-property-spec"][]; + }; + }; + /** + * Organization ruleset conditions + * @description Conditions for an organization ruleset. The conditions object should contain both `repository_name` and `ref_name` properties or both `repository_id` and `ref_name` properties. + */ + "org-ruleset-conditions": + | (components["schemas"]["repository-ruleset-conditions"] & + components["schemas"]["repository-ruleset-conditions-repository-name-target"]) + | (components["schemas"]["repository-ruleset-conditions"] & + components["schemas"]["repository-ruleset-conditions-repository-id-target"]) + | (components["schemas"]["repository-ruleset-conditions"] & + components["schemas"]["repository-ruleset-conditions-repository-property-target"]); + /** + * creation + * @description Only allow users with bypass permission to create matching refs. + */ + "repository-rule-creation": { + /** @enum {string} */ + type: "creation"; + }; + /** + * update + * @description Only allow users with bypass permission to update matching refs. + */ + "repository-rule-update": { + /** @enum {string} */ + type: "update"; + parameters?: { + /** @description Branch can pull changes from its upstream repository */ + update_allows_fetch_and_merge: boolean; + }; + }; + /** + * deletion + * @description Only allow users with bypass permissions to delete matching refs. + */ + "repository-rule-deletion": { + /** @enum {string} */ + type: "deletion"; + }; + /** + * required_linear_history + * @description Prevent merge commits from being pushed to matching refs. + */ + "repository-rule-required-linear-history": { + /** @enum {string} */ + type: "required_linear_history"; + }; + /** + * required_deployments + * @description Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule. + */ + "repository-rule-required-deployments": { + /** @enum {string} */ + type: "required_deployments"; + parameters?: { + /** @description The environments that must be successfully deployed to before branches can be merged. */ + required_deployment_environments: string[]; + }; + }; + /** + * required_signatures + * @description Commits pushed to matching refs must have verified signatures. + */ + "repository-rule-required-signatures": { + /** @enum {string} */ + type: "required_signatures"; + }; + /** + * pull_request + * @description Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. + */ + "repository-rule-pull-request": { + /** @enum {string} */ + type: "pull_request"; + parameters?: { + /** @description New, reviewable commits pushed will dismiss previous pull request review approvals. */ + dismiss_stale_reviews_on_push: boolean; + /** @description Require an approving review in pull requests that modify files that have a designated code owner. */ + require_code_owner_review: boolean; + /** @description Whether the most recent reviewable push must be approved by someone other than the person who pushed it. */ + require_last_push_approval: boolean; + /** @description The number of approving reviews that are required before a pull request can be merged. */ + required_approving_review_count: number; + /** @description All conversations on code must be resolved before a pull request can be merged. */ + required_review_thread_resolution: boolean; + }; + }; + /** + * StatusCheckConfiguration + * @description Required status check + */ + "repository-rule-params-status-check-configuration": { + /** @description The status check context name that must be present on the commit. */ + context: string; + /** @description The optional integration ID that this status check must originate from. */ + integration_id?: number; + }; + /** + * required_status_checks + * @description Choose which status checks must pass before the ref is updated. When enabled, commits must first be pushed to another ref where the checks pass. + */ + "repository-rule-required-status-checks": { + /** @enum {string} */ + type: "required_status_checks"; + parameters?: { + /** @description Status checks that are required. */ + required_status_checks: components["schemas"]["repository-rule-params-status-check-configuration"][]; + /** @description Whether pull requests targeting a matching branch must be tested with the latest code. This setting will not take effect unless at least one status check is enabled. */ + strict_required_status_checks_policy: boolean; + }; + }; + /** + * non_fast_forward + * @description Prevent users with push access from force pushing to refs. + */ + "repository-rule-non-fast-forward": { + /** @enum {string} */ + type: "non_fast_forward"; + }; + /** + * commit_message_pattern + * @description Parameters to be used for the commit_message_pattern rule + */ + "repository-rule-commit-message-pattern": { + /** @enum {string} */ + type: "commit_message_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * commit_author_email_pattern + * @description Parameters to be used for the commit_author_email_pattern rule + */ + "repository-rule-commit-author-email-pattern": { + /** @enum {string} */ + type: "commit_author_email_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * committer_email_pattern + * @description Parameters to be used for the committer_email_pattern rule + */ + "repository-rule-committer-email-pattern": { + /** @enum {string} */ + type: "committer_email_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * branch_name_pattern + * @description Parameters to be used for the branch_name_pattern rule + */ + "repository-rule-branch-name-pattern": { + /** @enum {string} */ + type: "branch_name_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * tag_name_pattern + * @description Parameters to be used for the tag_name_pattern rule + */ + "repository-rule-tag-name-pattern": { + /** @enum {string} */ + type: "tag_name_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * RestrictedCommits + * @description Restricted commit + */ + "repository-rule-params-restricted-commits": { + /** @description Full or abbreviated commit hash to reject */ + oid: string; + /** @description Reason for restriction */ + reason?: string; + }; + /** + * WorkflowFileReference + * @description A workflow that must run for this rule to pass + */ + "repository-rule-params-workflow-file-reference": { + /** @description The path to the workflow file */ + path: string; + /** @description The ref (branch or tag) of the workflow file to use */ + ref?: string; + /** @description The ID of the repository where the workflow is defined */ + repository_id: number; + /** @description The commit SHA of the workflow file to use */ + sha?: string; + }; + /** + * workflows + * @description Require all changes made to a targeted branch to pass the specified workflows before they can be merged. + */ + "repository-rule-workflows": { + /** @enum {string} */ + type: "workflows"; + parameters?: { + /** @description Workflows that must pass for this rule to pass. */ + workflows: components["schemas"]["repository-rule-params-workflow-file-reference"][]; + }; + }; + /** + * CodeScanningTool + * @description A tool that must provide code scanning results for this rule to pass. + */ + "repository-rule-params-code-scanning-tool": { + /** + * @description The severity level at which code scanning results that raise alerts block a reference update. For more information on alert severity levels, see "[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels)." + * @enum {string} + */ + alerts_threshold: "none" | "errors" | "errors_and_warnings" | "all"; + /** + * @description The severity level at which code scanning results that raise security alerts block a reference update. For more information on security severity levels, see "[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels)." + * @enum {string} + */ + security_alerts_threshold: + | "none" + | "critical" + | "high_or_higher" + | "medium_or_higher" + | "all"; + /** @description The name of a code scanning tool */ + tool: string; + }; + /** + * Repository Rule + * @description A repository rule. + */ + "repository-rule": + | components["schemas"]["repository-rule-creation"] + | components["schemas"]["repository-rule-update"] + | components["schemas"]["repository-rule-deletion"] + | components["schemas"]["repository-rule-required-linear-history"] + | components["schemas"]["repository-rule-required-deployments"] + | components["schemas"]["repository-rule-required-signatures"] + | components["schemas"]["repository-rule-pull-request"] + | components["schemas"]["repository-rule-required-status-checks"] + | components["schemas"]["repository-rule-non-fast-forward"] + | components["schemas"]["repository-rule-commit-message-pattern"] + | components["schemas"]["repository-rule-commit-author-email-pattern"] + | components["schemas"]["repository-rule-committer-email-pattern"] + | components["schemas"]["repository-rule-branch-name-pattern"] + | components["schemas"]["repository-rule-tag-name-pattern"] + | { + /** @enum {string} */ + type: "file_path_restriction"; + parameters?: { + /** @description The file paths that are restricted from being pushed to the commit graph. */ + restricted_file_paths: string[]; + }; + } + | { + /** @enum {string} */ + type: "max_file_path_length"; + parameters?: { + /** @description The maximum amount of characters allowed in file paths */ + max_file_path_length: number; + }; + } + | { + /** @enum {string} */ + type: "file_extension_restriction"; + parameters?: { + /** @description The file extensions that are restricted from being pushed to the commit graph. */ + restricted_file_extensions: string[]; + }; + } + | { + /** @enum {string} */ + type: "max_file_size"; + parameters?: { + /** @description The maximum file size allowed in megabytes. This limit does not apply to Git Large File Storage (Git LFS). */ + max_file_size: number; + }; + } + | components["schemas"]["repository-rule-workflows"]; + /** + * Repository ruleset + * @description A set of rules to apply when specified conditions are met. + */ + "repository-ruleset": { + /** @description The ID of the ruleset */ + id: number; + /** @description The name of the ruleset */ + name: string; + /** + * @description The target of the ruleset + * + * **Note**: The `push` target is in beta and is subject to change. + * @enum {string} + */ + target?: "branch" | "tag" | "push"; + /** + * @description The type of the source of the ruleset + * @enum {string} + */ + source_type?: "Repository" | "Organization"; + /** @description The name of the source */ + source: string; + enforcement: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + /** + * @description The bypass type of the user making the API request for this ruleset. This field is only returned when + * querying the repository-level endpoint. + * @enum {string} + */ + current_user_can_bypass?: "always" | "pull_requests_only" | "never"; + node_id?: string; + _links?: { + self?: { + /** @description The URL of the ruleset */ + href?: string; + }; + html?: { + /** @description The html URL of the ruleset */ + href?: string; + }; + }; + conditions?: + | ( + | components["schemas"]["repository-ruleset-conditions"] + | components["schemas"]["org-ruleset-conditions"] + ) + | null; + rules?: components["schemas"]["repository-rule"][]; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + updated_at?: string; + }; + /** + * Rule Suites + * @description Response + */ + "rule-suites": { + /** @description The unique identifier of the rule insight. */ + id?: number; + /** @description The number that identifies the user. */ + actor_id?: number; + /** @description The handle for the GitHub user account. */ + actor_name?: string; + /** @description The first commit sha before the push evaluation. */ + before_sha?: string; + /** @description The last commit sha in the push evaluation. */ + after_sha?: string; + /** @description The ref name that the evaluation ran on. */ + ref?: string; + /** @description The ID of the repository associated with the rule evaluation. */ + repository_id?: number; + /** @description The name of the repository without the `.git` extension. */ + repository_name?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string; + /** + * @description The result of the rule evaluations for rules with the `active` enforcement status. + * @enum {string} + */ + result?: "pass" | "fail" | "bypass"; + /** + * @description The result of the rule evaluations for rules with the `active` and `evaluate` enforcement statuses, demonstrating whether rules would pass or fail if all rules in the rule suite were `active`. + * @enum {string} + */ + evaluation_result?: "pass" | "fail"; + }[]; + /** + * Rule Suite + * @description Response + */ + "rule-suite": { + /** @description The unique identifier of the rule insight. */ + id?: number; + /** @description The number that identifies the user. */ + actor_id?: number | null; + /** @description The handle for the GitHub user account. */ + actor_name?: string | null; + /** @description The first commit sha before the push evaluation. */ + before_sha?: string; + /** @description The last commit sha in the push evaluation. */ + after_sha?: string; + /** @description The ref name that the evaluation ran on. */ + ref?: string; + /** @description The ID of the repository associated with the rule evaluation. */ + repository_id?: number; + /** @description The name of the repository without the `.git` extension. */ + repository_name?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string; + /** + * @description The result of the rule evaluations for rules with the `active` enforcement status. + * @enum {string} + */ + result?: "pass" | "fail" | "bypass"; + /** + * @description The result of the rule evaluations for rules with the `active` and `evaluate` enforcement statuses, demonstrating whether rules would pass or fail if all rules in the rule suite were `active`. + * @enum {string} + */ + evaluation_result?: "pass" | "fail"; + /** @description Details on the evaluated rules. */ + rule_evaluations?: { + rule_source?: { + /** @description The type of rule source. */ + type?: string; + /** @description The ID of the rule source. */ + id?: number | null; + /** @description The name of the rule source. */ + name?: string | null; + }; + /** + * @description The enforcement level of this rule source. + * @enum {string} + */ + enforcement?: "active" | "evaluate" | "deleted ruleset"; + /** + * @description The result of the evaluation of the individual rule. + * @enum {string} + */ + result?: "pass" | "fail"; + /** @description The type of rule. */ + rule_type?: string; + /** @description Any associated details with the rule evaluation. */ + details?: string; + }[]; + }; + /** @description A product affected by the vulnerability detailed in a repository security advisory. */ + "repository-advisory-vulnerability": { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name: string | null; + } | null; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range: string | null; + /** @description The package version(s) that resolve the vulnerability. */ + patched_versions: string | null; + /** @description The functions in the package that are affected. */ + vulnerable_functions: string[] | null; + }; + /** @description A credit given to a user for a repository security advisory. */ + "repository-advisory-credit": { + user: components["schemas"]["simple-user"]; + type: components["schemas"]["security-advisory-credit-types"]; + /** + * @description The state of the user's acceptance of the credit. + * @enum {string} + */ + state: "accepted" | "declined" | "pending"; + }; + /** @description A repository security advisory. */ + "repository-advisory": { + /** @description The GitHub Security Advisory ID. */ + ghsa_id: string; + /** @description The Common Vulnerabilities and Exposures (CVE) ID. */ + cve_id: string | null; + /** + * Format: uri + * @description The API URL for the advisory. + */ + url: string; + /** + * Format: uri + * @description The URL for the advisory. + */ + html_url: string; + /** @description A short summary of the advisory. */ + summary: string; + /** @description A detailed description of what the advisory entails. */ + description: string | null; + /** + * @description The severity of the advisory. + * @enum {string|null} + */ + severity: "critical" | "high" | "medium" | "low" | null; + /** @description The author of the advisory. */ + author: components["schemas"]["simple-user"] | null; + /** @description The publisher of the advisory. */ + publisher: components["schemas"]["simple-user"] | null; + identifiers: readonly { + /** + * @description The type of identifier. + * @enum {string} + */ + type: "CVE" | "GHSA"; + /** @description The identifier value. */ + value: string; + }[]; + /** + * @description The state of the advisory. + * @enum {string} + */ + state: "published" | "closed" | "withdrawn" | "draft" | "triage"; + /** + * Format: date-time + * @description The date and time of when the advisory was created, in ISO 8601 format. + */ + created_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was last updated, in ISO 8601 format. + */ + updated_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was published, in ISO 8601 format. + */ + published_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was closed, in ISO 8601 format. + */ + closed_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was withdrawn, in ISO 8601 format. + */ + withdrawn_at: string | null; + submission: { + /** @description Whether a private vulnerability report was accepted by the repository's administrators. */ + readonly accepted: boolean; + } | null; + vulnerabilities: + | components["schemas"]["repository-advisory-vulnerability"][] + | null; + cvss: { + /** @description The CVSS vector. */ + vector_string: string | null; + /** @description The CVSS score. */ + score: number | null; + } | null; + cwes: + | readonly { + /** @description The Common Weakness Enumeration (CWE) identifier. */ + cwe_id: string; + /** @description The name of the CWE. */ + name: string; + }[] + | null; + /** @description A list of only the CWE IDs. */ + cwe_ids: string[] | null; + credits: + | { + /** @description The username of the user credited. */ + login?: string; + type?: components["schemas"]["security-advisory-credit-types"]; + }[] + | null; + credits_detailed: + | readonly components["schemas"]["repository-advisory-credit"][] + | null; + /** @description A list of users that collaborate on the advisory. */ + collaborating_users: components["schemas"]["simple-user"][] | null; + /** @description A list of teams that collaborate on the advisory. */ + collaborating_teams: components["schemas"]["team"][] | null; + /** @description A temporary private fork of the advisory's repository for collaborating on a fix. */ + private_fork: components["schemas"]["simple-repository"] | null; + }; + /** + * Team Simple + * @description Groups of organization members that gives permissions on specified repositories. + */ + "team-simple": { + /** + * @description Unique identifier of the team + * @example 1 + */ + id: number; + /** @example MDQ6VGVhbTE= */ + node_id: string; + /** + * Format: uri + * @description URL for the team + * @example https://api.github.com/organizations/1/team/1 + */ + url: string; + /** @example https://api.github.com/organizations/1/team/1/members{/member} */ + members_url: string; + /** + * @description Name of the team + * @example Justice League + */ + name: string; + /** + * @description Description of the team + * @example A great team. + */ + description: string | null; + /** + * @description Permission that the team will have for its repositories + * @example admin + */ + permission: string; + /** + * @description The level of privacy this team should have + * @example closed + */ + privacy?: string; + /** + * @description The notification setting the team has set + * @example notifications_enabled + */ + notification_setting?: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/1/repos + */ + repositories_url: string; + /** @example justice-league */ + slug: string; + /** + * @description Distinguished Name (DN) that team maps to within LDAP environment + * @example uid=example,ou=users,dc=github,dc=com + */ + ldap_dn?: string; + }; + "actions-billing-usage": { + /** @description The sum of the free and paid GitHub Actions minutes used. */ + total_minutes_used: number; + /** @description The total paid GitHub Actions minutes used. */ + total_paid_minutes_used: number; + /** @description The amount of free GitHub Actions minutes available. */ + included_minutes: number; + minutes_used_breakdown: { + /** @description Total minutes used on Ubuntu runner machines. */ + UBUNTU?: number; + /** @description Total minutes used on macOS runner machines. */ + MACOS?: number; + /** @description Total minutes used on Windows runner machines. */ + WINDOWS?: number; + /** @description Total minutes used on Ubuntu 4 core runner machines. */ + ubuntu_4_core?: number; + /** @description Total minutes used on Ubuntu 8 core runner machines. */ + ubuntu_8_core?: number; + /** @description Total minutes used on Ubuntu 16 core runner machines. */ + ubuntu_16_core?: number; + /** @description Total minutes used on Ubuntu 32 core runner machines. */ + ubuntu_32_core?: number; + /** @description Total minutes used on Ubuntu 64 core runner machines. */ + ubuntu_64_core?: number; + /** @description Total minutes used on Windows 4 core runner machines. */ + windows_4_core?: number; + /** @description Total minutes used on Windows 8 core runner machines. */ + windows_8_core?: number; + /** @description Total minutes used on Windows 16 core runner machines. */ + windows_16_core?: number; + /** @description Total minutes used on Windows 32 core runner machines. */ + windows_32_core?: number; + /** @description Total minutes used on Windows 64 core runner machines. */ + windows_64_core?: number; + /** @description Total minutes used on macOS 12 core runner machines. */ + macos_12_core?: number; + /** @description Total minutes used on all runner machines. */ + total?: number; + }; + }; + "packages-billing-usage": { + /** @description Sum of the free and paid storage space (GB) for GitHuub Packages. */ + total_gigabytes_bandwidth_used: number; + /** @description Total paid storage space (GB) for GitHuub Packages. */ + total_paid_gigabytes_bandwidth_used: number; + /** @description Free storage space (GB) for GitHub Packages. */ + included_gigabytes_bandwidth: number; + }; + "combined-billing-usage": { + /** @description Numbers of days left in billing cycle. */ + days_left_in_billing_cycle: number; + /** @description Estimated storage space (GB) used in billing cycle. */ + estimated_paid_storage_for_month: number; + /** @description Estimated sum of free and paid storage space (GB) used in billing cycle. */ + estimated_storage_for_month: number; + }; + /** + * Team Organization + * @description Team Organization + */ + "team-organization": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + /** @example github */ + name?: string; + /** @example GitHub */ + company?: string; + /** + * Format: uri + * @example https://github.com/blog + */ + blog?: string; + /** @example San Francisco */ + location?: string; + /** + * Format: email + * @example octocat@github.com + */ + email?: string; + /** @example github */ + twitter_username?: string | null; + /** @example true */ + is_verified?: boolean; + /** @example true */ + has_organization_projects: boolean; + /** @example true */ + has_repository_projects: boolean; + /** @example 2 */ + public_repos: number; + /** @example 1 */ + public_gists: number; + /** @example 20 */ + followers: number; + /** @example 0 */ + following: number; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + created_at: string; + /** @example Organization */ + type: string; + /** @example 100 */ + total_private_repos?: number; + /** @example 100 */ + owned_private_repos?: number; + /** @example 81 */ + private_gists?: number | null; + /** @example 10000 */ + disk_usage?: number | null; + /** @example 8 */ + collaborators?: number | null; + /** + * Format: email + * @example org@example.com + */ + billing_email?: string | null; + plan?: { + name: string; + space: number; + private_repos: number; + filled_seats?: number; + seats?: number; + }; + default_repository_permission?: string | null; + /** @example true */ + members_can_create_repositories?: boolean | null; + /** @example true */ + two_factor_requirement_enabled?: boolean | null; + /** @example all */ + members_allowed_repository_creation_type?: string; + /** @example true */ + members_can_create_public_repositories?: boolean; + /** @example true */ + members_can_create_private_repositories?: boolean; + /** @example true */ + members_can_create_internal_repositories?: boolean; + /** @example true */ + members_can_create_pages?: boolean; + /** @example true */ + members_can_create_public_pages?: boolean; + /** @example true */ + members_can_create_private_pages?: boolean; + /** @example false */ + members_can_fork_private_repositories?: boolean | null; + /** @example false */ + web_commit_signoff_required?: boolean; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + archived_at: string | null; + }; + /** + * Full Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + "team-full": { + /** + * @description Unique identifier of the team + * @example 42 + */ + id: number; + /** @example MDQ6VGVhbTE= */ + node_id: string; + /** + * Format: uri + * @description URL for the team + * @example https://api.github.com/organizations/1/team/1 + */ + url: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + /** + * @description Name of the team + * @example Developers + */ + name: string; + /** @example justice-league */ + slug: string; + /** @example A great team. */ + description: string | null; + /** + * @description The level of privacy this team should have + * @example closed + * @enum {string} + */ + privacy?: "closed" | "secret"; + /** + * @description The notification setting the team has set + * @example notifications_enabled + * @enum {string} + */ + notification_setting?: "notifications_enabled" | "notifications_disabled"; + /** + * @description Permission that the team will have for its repositories + * @example push + */ + permission: string; + /** @example https://api.github.com/organizations/1/team/1/members{/member} */ + members_url: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/1/repos + */ + repositories_url: string; + parent?: components["schemas"]["nullable-team-simple"]; + /** @example 3 */ + members_count: number; + /** @example 10 */ + repos_count: number; + /** + * Format: date-time + * @example 2017-07-14T16:53:42Z + */ + created_at: string; + /** + * Format: date-time + * @example 2017-08-17T12:37:15Z + */ + updated_at: string; + organization: components["schemas"]["team-organization"]; + /** + * @description Distinguished Name (DN) that team maps to within LDAP environment + * @example uid=example,ou=users,dc=github,dc=com + */ + ldap_dn?: string; + }; + /** + * Team Discussion + * @description A team discussion is a persistent record of a free-form conversation within a team. + */ + "team-discussion": { + author: components["schemas"]["nullable-simple-user"]; + /** + * @description The main text of the discussion. + * @example Please suggest improvements to our workflow in comments. + */ + body: string; + /** @example

Hi! This is an area for us to collaborate as a team

*/ + body_html: string; + /** + * @description The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server. + * @example 0307116bbf7ced493b8d8a346c650b71 + */ + body_version: string; + /** @example 0 */ + comments_count: number; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2343027/discussions/1/comments + */ + comments_url: string; + /** + * Format: date-time + * @example 2018-01-25T18:56:31Z + */ + created_at: string; + /** Format: date-time */ + last_edited_at: string | null; + /** + * Format: uri + * @example https://github.com/orgs/github/teams/justice-league/discussions/1 + */ + html_url: string; + /** @example MDE0OlRlYW1EaXNjdXNzaW9uMQ== */ + node_id: string; + /** + * @description The unique sequence number of a team discussion. + * @example 42 + */ + number: number; + /** + * @description Whether or not this discussion should be pinned for easy retrieval. + * @example true + */ + pinned: boolean; + /** + * @description Whether or not this discussion should be restricted to team members and organization owners. + * @example true + */ + private: boolean; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2343027 + */ + team_url: string; + /** + * @description The title of the discussion. + * @example How can we improve our workflow? + */ + title: string; + /** + * Format: date-time + * @example 2018-01-25T18:56:31Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2343027/discussions/1 + */ + url: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Team Discussion Comment + * @description A reply to a discussion within a team. + */ + "team-discussion-comment": { + author: components["schemas"]["nullable-simple-user"]; + /** + * @description The main text of the comment. + * @example I agree with this suggestion. + */ + body: string; + /** @example

Do you like apples?

*/ + body_html: string; + /** + * @description The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server. + * @example 0307116bbf7ced493b8d8a346c650b71 + */ + body_version: string; + /** + * Format: date-time + * @example 2018-01-15T23:53:58Z + */ + created_at: string; + /** Format: date-time */ + last_edited_at: string | null; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2403582/discussions/1 + */ + discussion_url: string; + /** + * Format: uri + * @example https://github.com/orgs/github/teams/justice-league/discussions/1/comments/1 + */ + html_url: string; + /** @example MDIxOlRlYW1EaXNjdXNzaW9uQ29tbWVudDE= */ + node_id: string; + /** + * @description The unique sequence number of a team discussion comment. + * @example 42 + */ + number: number; + /** + * Format: date-time + * @example 2018-01-15T23:53:58Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2403582/discussions/1/comments/1 + */ + url: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Reaction + * @description Reactions to conversations provide a way to help people express their feelings more simply and effectively. + */ + reaction: { + /** @example 1 */ + id: number; + /** @example MDg6UmVhY3Rpb24x */ + node_id: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description The reaction to use + * @example heart + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** + * Format: date-time + * @example 2016-05-20T20:09:31Z + */ + created_at: string; + }; + /** + * Team Membership + * @description Team Membership + */ + "team-membership": { + /** Format: uri */ + url: string; + /** + * @description The role of the user in the team. + * @default member + * @example member + * @enum {string} + */ + role: "member" | "maintainer"; + /** + * @description The state of the user's membership in the team. + * @enum {string} + */ + state: "active" | "pending"; + }; + /** + * Team Project + * @description A team's access to a project. + */ + "team-project": { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string | null; + number: number; + state: string; + creator: components["schemas"]["simple-user"]; + created_at: string; + updated_at: string; + /** @description The organization permission for this project. Only present when owner is an organization. */ + organization_permission?: string; + /** @description Whether the project is private or not. Only present when owner is an organization. */ + private?: boolean; + permissions: { + read: boolean; + write: boolean; + admin: boolean; + }; + }; + /** + * Team Repository + * @description A team's access to a repository. + */ + "team-repository": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + /** @example admin */ + role_name?: string; + owner: components["schemas"]["nullable-simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** @example 108 */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow forking this repo + * @default false + * @example false + */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + * @example false + */ + web_commit_signoff_required?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + }; + /** + * Project Card + * @description Project cards represent a scope of work. + */ + "project-card": { + /** + * Format: uri + * @example https://api.github.com/projects/columns/cards/1478 + */ + url: string; + /** + * @description The project card's ID + * @example 42 + */ + id: number; + /** @example MDExOlByb2plY3RDYXJkMTQ3OA== */ + node_id: string; + /** @example Add payload for delete Project column */ + note: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2016-09-05T14:21:06Z + */ + created_at: string; + /** + * Format: date-time + * @example 2016-09-05T14:20:22Z + */ + updated_at: string; + /** + * @description Whether or not the card is archived + * @example false + */ + archived?: boolean; + column_name?: string; + project_id?: string; + /** + * Format: uri + * @example https://api.github.com/projects/columns/367 + */ + column_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/api-playground/projects-test/issues/3 + */ + content_url?: string; + /** + * Format: uri + * @example https://api.github.com/projects/120 + */ + project_url: string; + }; + /** + * Project Column + * @description Project columns contain cards of work. + */ + "project-column": { + /** + * Format: uri + * @example https://api.github.com/projects/columns/367 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/projects/120 + */ + project_url: string; + /** + * Format: uri + * @example https://api.github.com/projects/columns/367/cards + */ + cards_url: string; + /** + * @description The unique identifier of the project column + * @example 42 + */ + id: number; + /** @example MDEzOlByb2plY3RDb2x1bW4zNjc= */ + node_id: string; + /** + * @description Name of the project column + * @example Remaining tasks + */ + name: string; + /** + * Format: date-time + * @example 2016-09-05T14:18:44Z + */ + created_at: string; + /** + * Format: date-time + * @example 2016-09-05T14:22:28Z + */ + updated_at: string; + }; + /** + * Project Collaborator Permission + * @description Project Collaborator Permission + */ + "project-collaborator-permission": { + permission: string; + user: components["schemas"]["nullable-simple-user"]; + }; + /** Rate Limit */ + "rate-limit": { + limit: number; + remaining: number; + reset: number; + used: number; + }; + /** + * Rate Limit Overview + * @description Rate Limit Overview + */ + "rate-limit-overview": { + resources: { + core: components["schemas"]["rate-limit"]; + graphql?: components["schemas"]["rate-limit"]; + search: components["schemas"]["rate-limit"]; + code_search?: components["schemas"]["rate-limit"]; + source_import?: components["schemas"]["rate-limit"]; + integration_manifest?: components["schemas"]["rate-limit"]; + code_scanning_upload?: components["schemas"]["rate-limit"]; + actions_runner_registration?: components["schemas"]["rate-limit"]; + scim?: components["schemas"]["rate-limit"]; + dependency_snapshots?: components["schemas"]["rate-limit"]; + }; + rate: components["schemas"]["rate-limit"]; + }; + /** + * Artifact + * @description An artifact + */ + artifact: { + /** @example 5 */ + id: number; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id: string; + /** + * @description The name of the artifact. + * @example AdventureWorks.Framework + */ + name: string; + /** + * @description The size in bytes of the artifact. + * @example 12345 + */ + size_in_bytes: number; + /** @example https://api.github.com/repos/github/hello-world/actions/artifacts/5 */ + url: string; + /** @example https://api.github.com/repos/github/hello-world/actions/artifacts/5/zip */ + archive_download_url: string; + /** @description Whether or not the artifact has expired. */ + expired: boolean; + /** Format: date-time */ + created_at: string | null; + /** Format: date-time */ + expires_at: string | null; + /** Format: date-time */ + updated_at: string | null; + workflow_run?: { + /** @example 10 */ + id?: number; + /** @example 42 */ + repository_id?: number; + /** @example 42 */ + head_repository_id?: number; + /** @example main */ + head_branch?: string; + /** @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d */ + head_sha?: string; + } | null; + }; + /** + * Repository actions caches + * @description Repository actions caches + */ + "actions-cache-list": { + /** + * @description Total number of caches + * @example 2 + */ + total_count: number; + /** @description Array of caches */ + actions_caches: { + /** @example 2 */ + id?: number; + /** @example refs/heads/main */ + ref?: string; + /** @example Linux-node-958aff96db2d75d67787d1e634ae70b659de937b */ + key?: string; + /** @example 73885106f58cc52a7df9ec4d4a5622a5614813162cb516c759a30af6bf56e6f0 */ + version?: string; + /** + * Format: date-time + * @example 2019-01-24T22:45:36.000Z + */ + last_accessed_at?: string; + /** + * Format: date-time + * @example 2019-01-24T22:45:36.000Z + */ + created_at?: string; + /** @example 1024 */ + size_in_bytes?: number; + }[]; + }; + /** + * Job + * @description Information of a job execution in a workflow run + */ + job: { + /** + * @description The id of the job. + * @example 21 + */ + id: number; + /** + * @description The id of the associated workflow run. + * @example 5 + */ + run_id: number; + /** @example https://api.github.com/repos/github/hello-world/actions/runs/5 */ + run_url: string; + /** + * @description Attempt number of the associated workflow run, 1 for first attempt and higher if the workflow was re-run. + * @example 1 + */ + run_attempt?: number; + /** @example MDg6Q2hlY2tSdW40 */ + node_id: string; + /** + * @description The SHA of the commit that is being run. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** @example https://api.github.com/repos/github/hello-world/actions/jobs/21 */ + url: string; + /** @example https://github.com/github/hello-world/runs/4 */ + html_url: string | null; + /** + * @description The phase of the lifecycle that the job is currently in. + * @example queued + * @enum {string} + */ + status: + | "queued" + | "in_progress" + | "completed" + | "waiting" + | "requested" + | "pending"; + /** + * @description The outcome of the job. + * @example success + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | null; + /** + * Format: date-time + * @description The time that the job created, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + created_at: string; + /** + * Format: date-time + * @description The time that the job started, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + started_at: string; + /** + * Format: date-time + * @description The time that the job finished, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + completed_at: string | null; + /** + * @description The name of the job. + * @example test-coverage + */ + name: string; + /** @description Steps in this job. */ + steps?: { + /** + * @description The phase of the lifecycle that the job is currently in. + * @example queued + * @enum {string} + */ + status: "queued" | "in_progress" | "completed"; + /** + * @description The outcome of the job. + * @example success + */ + conclusion: string | null; + /** + * @description The name of the job. + * @example test-coverage + */ + name: string; + /** @example 1 */ + number: number; + /** + * Format: date-time + * @description The time that the step started, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + started_at?: string | null; + /** + * Format: date-time + * @description The time that the job finished, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + completed_at?: string | null; + }[]; + /** @example https://api.github.com/repos/github/hello-world/check-runs/4 */ + check_run_url: string; + /** + * @description Labels for the workflow job. Specified by the "runs_on" attribute in the action's workflow file. + * @example [ + * "self-hosted", + * "foo", + * "bar" + * ] + */ + labels: string[]; + /** + * @description The ID of the runner to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example 1 + */ + runner_id: number | null; + /** + * @description The name of the runner to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example my runner + */ + runner_name: string | null; + /** + * @description The ID of the runner group to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example 2 + */ + runner_group_id: number | null; + /** + * @description The name of the runner group to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example my runner group + */ + runner_group_name: string | null; + /** + * @description The name of the workflow. + * @example Build + */ + workflow_name: string | null; + /** + * @description The name of the current branch. + * @example main + */ + head_branch: string | null; + }; + /** + * Actions OIDC subject customization for a repository + * @description Actions OIDC subject customization for a repository + */ + "oidc-custom-sub-repo": { + /** @description Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored. */ + use_default: boolean; + /** @description Array of unique strings. Each claim key can only contain alphanumeric characters and underscores. */ + include_claim_keys?: string[]; + }; + /** + * Actions Secret + * @description Set secrets for GitHub Actions. + */ + "actions-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** Actions Variable */ + "actions-variable": { + /** + * @description The name of the variable. + * @example USERNAME + */ + name: string; + /** + * @description The value of the variable. + * @example octocat + */ + value: string; + /** + * Format: date-time + * @description The date and time at which the variable was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + * @example 2019-01-24T22:45:36.000Z + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the variable was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + * @example 2019-01-24T22:45:36.000Z + */ + updated_at: string; + }; + /** @description Whether GitHub Actions is enabled on the repository. */ + "actions-enabled": boolean; + "actions-repository-permissions": { + enabled: components["schemas"]["actions-enabled"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + selected_actions_url?: components["schemas"]["selected-actions-url"]; + }; + "actions-workflow-access-to-repository": { + /** + * @description Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the + * repository. + * + * `none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repositories only. `organization` level access allows sharing across the organization. + * @enum {string} + */ + access_level: "none" | "user" | "organization"; + }; + /** + * Referenced workflow + * @description A workflow referenced/reused by the initial caller workflow + */ + "referenced-workflow": { + path: string; + sha: string; + ref?: string; + }; + /** Pull Request Minimal */ + "pull-request-minimal": { + id: number; + number: number; + url: string; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }; + /** + * Simple Commit + * @description A commit. + */ + "nullable-simple-commit": { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + id: string; + /** @description SHA for the commit's tree */ + tree_id: string; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + timestamp: string; + /** @description Information about the Git author */ + author: { + /** + * @description Name of the commit's author + * @example Monalisa Octocat + */ + name: string; + /** + * Format: email + * @description Git email address of the commit's author + * @example monalisa.octocat@example.com + */ + email: string; + } | null; + /** @description Information about the Git committer */ + committer: { + /** + * @description Name of the commit's committer + * @example Monalisa Octocat + */ + name: string; + /** + * Format: email + * @description Git email address of the commit's committer + * @example monalisa.octocat@example.com + */ + email: string; + } | null; + } | null; + /** + * Workflow Run + * @description An invocation of a workflow + */ + "workflow-run": { + /** + * @description The ID of the workflow run. + * @example 5 + */ + id: number; + /** + * @description The name of the workflow run. + * @example Build + */ + name?: string | null; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id: string; + /** + * @description The ID of the associated check suite. + * @example 42 + */ + check_suite_id?: number; + /** + * @description The node ID of the associated check suite. + * @example MDEwOkNoZWNrU3VpdGU0Mg== + */ + check_suite_node_id?: string; + /** @example master */ + head_branch: string | null; + /** + * @description The SHA of the head commit that points to the version of the workflow being run. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** + * @description The full path of the workflow + * @example octocat/octo-repo/.github/workflows/ci.yml@main + */ + path: string; + /** + * @description The auto incrementing run number for the workflow run. + * @example 106 + */ + run_number: number; + /** + * @description Attempt number of the run, 1 for first attempt and higher if the workflow was re-run. + * @example 1 + */ + run_attempt?: number; + referenced_workflows?: + | components["schemas"]["referenced-workflow"][] + | null; + /** @example push */ + event: string; + /** @example completed */ + status: string | null; + /** @example neutral */ + conclusion: string | null; + /** + * @description The ID of the parent workflow. + * @example 5 + */ + workflow_id: number; + /** + * @description The URL to the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5 + */ + url: string; + /** @example https://github.com/github/hello-world/suites/4 */ + html_url: string; + /** @description Pull requests that are open with a `head_sha` or `head_branch` that matches the workflow run. The returned pull requests do not necessarily indicate pull requests that triggered the run. */ + pull_requests: components["schemas"]["pull-request-minimal"][] | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + actor?: components["schemas"]["simple-user"]; + triggering_actor?: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @description The start time of the latest run. Resets on re-run. + */ + run_started_at?: string; + /** + * @description The URL to the jobs for the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/jobs + */ + jobs_url: string; + /** + * @description The URL to download the logs for the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/logs + */ + logs_url: string; + /** + * @description The URL to the associated check suite. + * @example https://api.github.com/repos/github/hello-world/check-suites/12 + */ + check_suite_url: string; + /** + * @description The URL to the artifacts for the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/rerun/artifacts + */ + artifacts_url: string; + /** + * @description The URL to cancel the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/cancel + */ + cancel_url: string; + /** + * @description The URL to rerun the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/rerun + */ + rerun_url: string; + /** + * @description The URL to the previous attempted run of this workflow, if one exists. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/attempts/3 + */ + previous_attempt_url?: string | null; + /** + * @description The URL to the workflow. + * @example https://api.github.com/repos/github/hello-world/actions/workflows/main.yaml + */ + workflow_url: string; + head_commit: components["schemas"]["nullable-simple-commit"]; + repository: components["schemas"]["minimal-repository"]; + head_repository: components["schemas"]["minimal-repository"]; + /** @example 5 */ + head_repository_id?: number; + /** + * @description The event-specific title associated with the run or the run-name if set, or the value of `run-name` if it is set in the workflow. + * @example Simple Workflow + */ + display_title: string; + }; + /** + * Environment Approval + * @description An entry in the reviews log for environment deployments + */ + "environment-approvals": { + /** @description The list of environments that were approved or rejected */ + environments: { + /** + * @description The id of the environment. + * @example 56780428 + */ + id?: number; + /** @example MDExOkVudmlyb25tZW50NTY3ODA0Mjg= */ + node_id?: string; + /** + * @description The name of the environment. + * @example staging + */ + name?: string; + /** @example https://api.github.com/repos/github/hello-world/environments/staging */ + url?: string; + /** @example https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging */ + html_url?: string; + /** + * Format: date-time + * @description The time that the environment was created, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + created_at?: string; + /** + * Format: date-time + * @description The time that the environment was last updated, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + updated_at?: string; + }[]; + /** + * @description Whether deployment to the environment(s) was approved or rejected or pending (with comments) + * @example approved + * @enum {string} + */ + state: "approved" | "rejected" | "pending"; + user: components["schemas"]["simple-user"]; + /** + * @description The comment submitted with the deployment review + * @example Ship it! + */ + comment: string; + }; + "review-custom-gates-comment-required": { + /** @description The name of the environment to approve or reject. */ + environment_name: string; + /** @description Comment associated with the pending deployment protection rule. **Required when state is not provided.** */ + comment: string; + }; + "review-custom-gates-state-required": { + /** @description The name of the environment to approve or reject. */ + environment_name: string; + /** + * @description Whether to approve or reject deployment to the specified environments. + * @enum {string} + */ + state: "approved" | "rejected"; + /** @description Optional comment to include with the review. */ + comment?: string; + }; + /** + * @description The type of reviewer. + * @example User + * @enum {string} + */ + "deployment-reviewer-type": "User" | "Team"; + /** + * Pending Deployment + * @description Details of a deployment that is waiting for protection rules to pass + */ + "pending-deployment": { + environment: { + /** + * @description The id of the environment. + * @example 56780428 + */ + id?: number; + /** @example MDExOkVudmlyb25tZW50NTY3ODA0Mjg= */ + node_id?: string; + /** + * @description The name of the environment. + * @example staging + */ + name?: string; + /** @example https://api.github.com/repos/github/hello-world/environments/staging */ + url?: string; + /** @example https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging */ + html_url?: string; + }; + /** + * @description The set duration of the wait timer + * @example 30 + */ + wait_timer: number; + /** + * Format: date-time + * @description The time that the wait timer began. + * @example 2020-11-23T22:00:40Z + */ + wait_timer_started_at: string | null; + /** + * @description Whether the currently authenticated user can approve the deployment + * @example true + */ + current_user_can_approve: boolean; + /** @description The people or teams that may approve jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ + reviewers: { + type?: components["schemas"]["deployment-reviewer-type"]; + reviewer?: + | components["schemas"]["simple-user"] + | components["schemas"]["team"]; + }[]; + }; + /** + * Deployment + * @description A request for a specific ref(branch,sha,tag) to be deployed + */ + deployment: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1 + */ + url: string; + /** + * @description Unique identifier of the deployment + * @example 42 + */ + id: number; + /** @example MDEwOkRlcGxveW1lbnQx */ + node_id: string; + /** @example a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d */ + sha: string; + /** + * @description The ref to deploy. This can be a branch, tag, or sha. + * @example topic-branch + */ + ref: string; + /** + * @description Parameter to specify a task to execute + * @example deploy + */ + task: string; + payload: OneOf< + [ + { + [key: string]: unknown; + }, + string, + ] + >; + /** @example staging */ + original_environment?: string; + /** + * @description Name for the target deployment environment. + * @example production + */ + environment: string; + /** @example Deploy request from hubot */ + description: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + created_at: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1/statuses + */ + statuses_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + /** + * @description Specifies if the given environment is will no longer exist at some point in the future. Default: false. + * @example true + */ + transient_environment?: boolean; + /** + * @description Specifies if the given environment is one that end-users directly interact with. Default: false. + * @example true + */ + production_environment?: boolean; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * Workflow Run Usage + * @description Workflow Run Usage + */ + "workflow-run-usage": { + billable: { + UBUNTU?: { + total_ms: number; + jobs: number; + job_runs?: { + job_id: number; + duration_ms: number; + }[]; + }; + MACOS?: { + total_ms: number; + jobs: number; + job_runs?: { + job_id: number; + duration_ms: number; + }[]; + }; + WINDOWS?: { + total_ms: number; + jobs: number; + job_runs?: { + job_id: number; + duration_ms: number; + }[]; + }; + }; + run_duration_ms?: number; + }; + /** + * Workflow + * @description A GitHub Actions workflow + */ + workflow: { + /** @example 5 */ + id: number; + /** @example MDg6V29ya2Zsb3cxMg== */ + node_id: string; + /** @example CI */ + name: string; + /** @example ruby.yaml */ + path: string; + /** + * @example active + * @enum {string} + */ + state: + | "active" + | "deleted" + | "disabled_fork" + | "disabled_inactivity" + | "disabled_manually"; + /** + * Format: date-time + * @example 2019-12-06T14:20:20.000Z + */ + created_at: string; + /** + * Format: date-time + * @example 2019-12-06T14:20:20.000Z + */ + updated_at: string; + /** @example https://api.github.com/repos/actions/setup-ruby/workflows/5 */ + url: string; + /** @example https://github.com/actions/setup-ruby/blob/master/.github/workflows/ruby.yaml */ + html_url: string; + /** @example https://github.com/actions/setup-ruby/workflows/CI/badge.svg */ + badge_url: string; + /** + * Format: date-time + * @example 2019-12-06T14:20:20.000Z + */ + deleted_at?: string; + }; + /** + * Workflow Usage + * @description Workflow Usage + */ + "workflow-usage": { + billable: { + UBUNTU?: { + total_ms?: number; + }; + MACOS?: { + total_ms?: number; + }; + WINDOWS?: { + total_ms?: number; + }; + }; + }; + /** + * Activity + * @description Activity + */ + activity: { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The SHA of the commit before the activity. + * @example 6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + before: string; + /** + * @description The SHA of the commit after the activity. + * @example 827efc6d56897b048c772eb4087f854f46256132 + */ + after: string; + /** + * @description The full Git reference, formatted as `refs/heads/`. + * @example refs/heads/main + */ + ref: string; + /** + * Format: date-time + * @description The time when the activity occurred. + * @example 2011-01-26T19:06:43Z + */ + timestamp: string; + /** + * @description The type of the activity that was performed. + * @example force_push + * @enum {string} + */ + activity_type: + | "push" + | "force_push" + | "branch_deletion" + | "branch_creation" + | "pr_merge" + | "merge_queue_merge"; + actor: components["schemas"]["nullable-simple-user"]; + }; + /** + * Autolink reference + * @description An autolink reference. + */ + autolink: { + /** @example 3 */ + id: number; + /** + * @description The prefix of a key that is linkified. + * @example TICKET- + */ + key_prefix: string; + /** + * @description A template for the target URL that is generated if a key was found. + * @example https://example.com/TICKET?query= + */ + url_template: string; + /** + * @description Whether this autolink reference matches alphanumeric characters. If false, this autolink reference only matches numeric characters. + * @example true + */ + is_alphanumeric: boolean; + }; + /** + * Check Automated Security Fixes + * @description Check Automated Security Fixes + */ + "check-automated-security-fixes": { + /** + * @description Whether automated security fixes are enabled for the repository. + * @example true + */ + enabled: boolean; + /** + * @description Whether automated security fixes are paused for the repository. + * @example false + */ + paused: boolean; + }; + /** + * Protected Branch Required Status Check + * @description Protected Branch Required Status Check + */ + "protected-branch-required-status-check": { + url?: string; + enforcement_level?: string; + contexts: string[]; + checks: { + context: string; + app_id: number | null; + }[]; + contexts_url?: string; + strict?: boolean; + }; + /** + * Protected Branch Admin Enforced + * @description Protected Branch Admin Enforced + */ + "protected-branch-admin-enforced": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins + */ + url: string; + /** @example true */ + enabled: boolean; + }; + /** + * Protected Branch Pull Request Review + * @description Protected Branch Pull Request Review + */ + "protected-branch-pull-request-review": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions + */ + url?: string; + dismissal_restrictions?: { + /** @description The list of users with review dismissal access. */ + users?: components["schemas"]["simple-user"][]; + /** @description The list of teams with review dismissal access. */ + teams?: components["schemas"]["team"][]; + /** @description The list of apps with review dismissal access. */ + apps?: components["schemas"]["integration"][]; + /** @example "https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions" */ + url?: string; + /** @example "https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/users" */ + users_url?: string; + /** @example "https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/teams" */ + teams_url?: string; + }; + /** @description Allow specific users, teams, or apps to bypass pull request requirements. */ + bypass_pull_request_allowances?: { + /** @description The list of users allowed to bypass pull request requirements. */ + users?: components["schemas"]["simple-user"][]; + /** @description The list of teams allowed to bypass pull request requirements. */ + teams?: components["schemas"]["team"][]; + /** @description The list of apps allowed to bypass pull request requirements. */ + apps?: components["schemas"]["integration"][]; + }; + /** @example true */ + dismiss_stale_reviews: boolean; + /** @example true */ + require_code_owner_reviews: boolean; + /** @example 2 */ + required_approving_review_count?: number; + /** + * @description Whether the most recent push must be approved by someone other than the person who pushed it. + * @default false + * @example true + */ + require_last_push_approval?: boolean; + }; + /** + * Branch Restriction Policy + * @description Branch Restriction Policy + */ + "branch-restriction-policy": { + /** Format: uri */ + url: string; + /** Format: uri */ + users_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri */ + apps_url: string; + users: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }[]; + teams: { + id?: number; + node_id?: string; + url?: string; + html_url?: string; + name?: string; + slug?: string; + description?: string | null; + privacy?: string; + notification_setting?: string; + permission?: string; + members_url?: string; + repositories_url?: string; + parent?: string | null; + }[]; + apps: { + id?: number; + slug?: string; + node_id?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + url?: string; + repos_url?: string; + events_url?: string; + hooks_url?: string; + issues_url?: string; + members_url?: string; + public_members_url?: string; + avatar_url?: string; + description?: string; + /** @example "" */ + gravatar_id?: string; + /** @example "https://github.com/testorg-ea8ec76d71c3af4b" */ + html_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/followers" */ + followers_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/following{/other_user}" */ + following_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/gists{/gist_id}" */ + gists_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/starred{/owner}{/repo}" */ + starred_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/subscriptions" */ + subscriptions_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/orgs" */ + organizations_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/received_events" */ + received_events_url?: string; + /** @example "Organization" */ + type?: string; + /** @example false */ + site_admin?: boolean; + }; + name?: string; + description?: string; + external_url?: string; + html_url?: string; + created_at?: string; + updated_at?: string; + permissions?: { + metadata?: string; + contents?: string; + issues?: string; + single_file?: string; + }; + events?: string[]; + }[]; + }; + /** + * Branch Protection + * @description Branch Protection + */ + "branch-protection": { + url?: string; + enabled?: boolean; + required_status_checks?: components["schemas"]["protected-branch-required-status-check"]; + enforce_admins?: components["schemas"]["protected-branch-admin-enforced"]; + required_pull_request_reviews?: components["schemas"]["protected-branch-pull-request-review"]; + restrictions?: components["schemas"]["branch-restriction-policy"]; + required_linear_history?: { + enabled?: boolean; + }; + allow_force_pushes?: { + enabled?: boolean; + }; + allow_deletions?: { + enabled?: boolean; + }; + block_creations?: { + enabled?: boolean; + }; + required_conversation_resolution?: { + enabled?: boolean; + }; + /** @example "branch/with/protection" */ + name?: string; + /** @example "https://api.github.com/repos/owner-79e94e2d36b3fd06a32bb213/AAA_Public_Repo/branches/branch/with/protection/protection" */ + protection_url?: string; + required_signatures?: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures + */ + url: string; + /** @example true */ + enabled: boolean; + }; + /** @description Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. */ + lock_branch?: { + /** @default false */ + enabled?: boolean; + }; + /** @description Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. */ + allow_fork_syncing?: { + /** @default false */ + enabled?: boolean; + }; + }; + /** + * Short Branch + * @description Short Branch + */ + "short-branch": { + name: string; + commit: { + sha: string; + /** Format: uri */ + url: string; + }; + protected: boolean; + protection?: components["schemas"]["branch-protection"]; + /** Format: uri */ + protection_url?: string; + }; + /** + * Git User + * @description Metaproperties for Git author/committer information. + */ + "nullable-git-user": { + /** @example "Chris Wanstrath" */ + name?: string; + /** @example "chris@ozmm.org" */ + email?: string; + /** @example "2007-10-29T02:42:39.000-07:00" */ + date?: string; + } | null; + /** Verification */ + verification: { + verified: boolean; + reason: string; + payload: string | null; + signature: string | null; + }; + /** + * Diff Entry + * @description Diff Entry + */ + "diff-entry": { + /** @example bbcd538c8e72b8c175046e27cc8f907076331401 */ + sha: string; + /** @example file1.txt */ + filename: string; + /** + * @example added + * @enum {string} + */ + status: + | "added" + | "removed" + | "modified" + | "renamed" + | "copied" + | "changed" + | "unchanged"; + /** @example 103 */ + additions: number; + /** @example 21 */ + deletions: number; + /** @example 124 */ + changes: number; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + */ + blob_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + */ + raw_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + contents_url: string; + /** @example @@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test */ + patch?: string; + /** @example file.txt */ + previous_filename?: string; + }; + /** + * Commit + * @description Commit + */ + commit: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + url: string; + /** @example 6dcb09b5b57875f334f61aebed695e2e4193db5e */ + sha: string; + /** @example MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ== */ + node_id: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments + */ + comments_url: string; + commit: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + url: string; + author: components["schemas"]["nullable-git-user"]; + committer: components["schemas"]["nullable-git-user"]; + /** @example Fix all the bugs */ + message: string; + /** @example 0 */ + comment_count: number; + tree: { + /** @example 827efc6d56897b048c772eb4087f854f46256132 */ + sha: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/tree/827efc6d56897b048c772eb4087f854f46256132 + */ + url: string; + }; + verification?: components["schemas"]["verification"]; + }; + author: components["schemas"]["nullable-simple-user"]; + committer: components["schemas"]["nullable-simple-user"]; + parents: { + /** @example 7638417db6d59f3c431d3e1f261cc637155684cd */ + sha: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/7638417db6d59f3c431d3e1f261cc637155684cd + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd + */ + html_url?: string; + }[]; + stats?: { + additions?: number; + deletions?: number; + total?: number; + }; + files?: components["schemas"]["diff-entry"][]; + }; + /** + * Branch With Protection + * @description Branch With Protection + */ + "branch-with-protection": { + name: string; + commit: components["schemas"]["commit"]; + _links: { + html: string; + /** Format: uri */ + self: string; + }; + protected: boolean; + protection: components["schemas"]["branch-protection"]; + /** Format: uri */ + protection_url: string; + /** @example "mas*" */ + pattern?: string; + /** @example 1 */ + required_approving_review_count?: number; + }; + /** + * Status Check Policy + * @description Status Check Policy + */ + "status-check-policy": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks + */ + url: string; + /** @example true */ + strict: boolean; + /** + * @example [ + * "continuous-integration/travis-ci" + * ] + */ + contexts: string[]; + checks: { + /** @example continuous-integration/travis-ci */ + context: string; + app_id: number | null; + }[]; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts + */ + contexts_url: string; + }; + /** + * Protected Branch + * @description Branch protections protect branches + */ + "protected-branch": { + /** Format: uri */ + url: string; + required_status_checks?: components["schemas"]["status-check-policy"]; + required_pull_request_reviews?: { + /** Format: uri */ + url: string; + dismiss_stale_reviews?: boolean; + require_code_owner_reviews?: boolean; + required_approving_review_count?: number; + /** + * @description Whether the most recent push must be approved by someone other than the person who pushed it. + * @default false + */ + require_last_push_approval?: boolean; + dismissal_restrictions?: { + /** Format: uri */ + url: string; + /** Format: uri */ + users_url: string; + /** Format: uri */ + teams_url: string; + users: components["schemas"]["simple-user"][]; + teams: components["schemas"]["team"][]; + apps?: components["schemas"]["integration"][]; + }; + bypass_pull_request_allowances?: { + users: components["schemas"]["simple-user"][]; + teams: components["schemas"]["team"][]; + apps?: components["schemas"]["integration"][]; + }; + }; + required_signatures?: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures + */ + url: string; + /** @example true */ + enabled: boolean; + }; + enforce_admins?: { + /** Format: uri */ + url: string; + enabled: boolean; + }; + required_linear_history?: { + enabled: boolean; + }; + allow_force_pushes?: { + enabled: boolean; + }; + allow_deletions?: { + enabled: boolean; + }; + restrictions?: components["schemas"]["branch-restriction-policy"]; + required_conversation_resolution?: { + enabled?: boolean; + }; + block_creations?: { + enabled: boolean; + }; + /** @description Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. */ + lock_branch?: { + /** @default false */ + enabled?: boolean; + }; + /** @description Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. */ + allow_fork_syncing?: { + /** @default false */ + enabled?: boolean; + }; + }; + /** + * Deployment + * @description A deployment created as the result of an Actions check run from a workflow that references an environment + */ + "deployment-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1 + */ + url: string; + /** + * @description Unique identifier of the deployment + * @example 42 + */ + id: number; + /** @example MDEwOkRlcGxveW1lbnQx */ + node_id: string; + /** + * @description Parameter to specify a task to execute + * @example deploy + */ + task: string; + /** @example staging */ + original_environment?: string; + /** + * @description Name for the target deployment environment. + * @example production + */ + environment: string; + /** @example Deploy request from hubot */ + description: string | null; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + created_at: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1/statuses + */ + statuses_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + /** + * @description Specifies if the given environment is will no longer exist at some point in the future. Default: false. + * @example true + */ + transient_environment?: boolean; + /** + * @description Specifies if the given environment is one that end-users directly interact with. Default: false. + * @example true + */ + production_environment?: boolean; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * CheckRun + * @description A check performed on the code of a given code change + */ + "check-run": { + /** + * @description The id of the check. + * @example 21 + */ + id: number; + /** + * @description The SHA of the commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** @example MDg6Q2hlY2tSdW40 */ + node_id: string; + /** @example 42 */ + external_id: string | null; + /** @example https://api.github.com/repos/github/hello-world/check-runs/4 */ + url: string; + /** @example https://github.com/github/hello-world/runs/4 */ + html_url: string | null; + /** @example https://example.com */ + details_url: string | null; + /** + * @description The phase of the lifecycle that the check is currently in. Statuses of waiting, requested, and pending are reserved for GitHub Actions check runs. + * @example queued + * @enum {string} + */ + status: + | "queued" + | "in_progress" + | "completed" + | "waiting" + | "requested" + | "pending"; + /** + * @example neutral + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | null; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + started_at: string | null; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + completed_at: string | null; + output: { + title: string | null; + summary: string | null; + text: string | null; + annotations_count: number; + /** Format: uri */ + annotations_url: string; + }; + /** + * @description The name of the check. + * @example test-coverage + */ + name: string; + check_suite: { + id: number; + } | null; + app: components["schemas"]["nullable-integration"]; + /** @description Pull requests that are open with a `head_sha` or `head_branch` that matches the check. The returned pull requests do not necessarily indicate pull requests that triggered the check. */ + pull_requests: components["schemas"]["pull-request-minimal"][]; + deployment?: components["schemas"]["deployment-simple"]; + }; + /** + * Check Annotation + * @description Check Annotation + */ + "check-annotation": { + /** @example README.md */ + path: string; + /** @example 2 */ + start_line: number; + /** @example 2 */ + end_line: number; + /** @example 5 */ + start_column: number | null; + /** @example 10 */ + end_column: number | null; + /** @example warning */ + annotation_level: string | null; + /** @example Spell Checker */ + title: string | null; + /** @example Check your spelling for 'banaas'. */ + message: string | null; + /** @example Do you mean 'bananas' or 'banana'? */ + raw_details: string | null; + blob_href: string; + }; + /** + * Simple Commit + * @description A commit. + */ + "simple-commit": { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + id: string; + /** @description SHA for the commit's tree */ + tree_id: string; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + timestamp: string; + /** @description Information about the Git author */ + author: { + /** + * @description Name of the commit's author + * @example Monalisa Octocat + */ + name: string; + /** + * Format: email + * @description Git email address of the commit's author + * @example monalisa.octocat@example.com + */ + email: string; + } | null; + /** @description Information about the Git committer */ + committer: { + /** + * @description Name of the commit's committer + * @example Monalisa Octocat + */ + name: string; + /** + * Format: email + * @description Git email address of the commit's committer + * @example monalisa.octocat@example.com + */ + email: string; + } | null; + }; + /** + * CheckSuite + * @description A suite of checks performed on the code of a given code change + */ + "check-suite": { + /** @example 5 */ + id: number; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id: string; + /** @example master */ + head_branch: string | null; + /** + * @description The SHA of the head commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** + * @description The phase of the lifecycle that the check suite is currently in. Statuses of waiting, requested, and pending are reserved for GitHub Actions check suites. + * @example completed + * @enum {string|null} + */ + status: + | "queued" + | "in_progress" + | "completed" + | "waiting" + | "requested" + | "pending" + | null; + /** + * @example neutral + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | "startup_failure" + | "stale" + | null; + /** @example https://api.github.com/repos/github/hello-world/check-suites/5 */ + url: string | null; + /** @example 146e867f55c26428e5f9fade55a9bbf5e95a7912 */ + before: string | null; + /** @example d6fde92930d4715a2b49857d24b940956b26d2d3 */ + after: string | null; + pull_requests: components["schemas"]["pull-request-minimal"][] | null; + app: components["schemas"]["nullable-integration"]; + repository: components["schemas"]["minimal-repository"]; + /** Format: date-time */ + created_at: string | null; + /** Format: date-time */ + updated_at: string | null; + head_commit: components["schemas"]["simple-commit"]; + latest_check_runs_count: number; + check_runs_url: string; + rerequestable?: boolean; + runs_rerequestable?: boolean; + }; + /** + * Check Suite Preference + * @description Check suite configuration preferences for a repository. + */ + "check-suite-preference": { + preferences: { + auto_trigger_checks?: { + app_id: number; + setting: boolean; + }[]; + }; + repository: components["schemas"]["minimal-repository"]; + }; + "code-scanning-alert-items": { + number: components["schemas"]["alert-number"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["alert-updated-at"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + instances_url: components["schemas"]["alert-instances-url"]; + state: components["schemas"]["code-scanning-alert-state"]; + fixed_at?: components["schemas"]["alert-fixed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_reason: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + rule: components["schemas"]["code-scanning-alert-rule-summary"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + most_recent_instance: components["schemas"]["code-scanning-alert-instance"]; + }; + "code-scanning-alert-rule": { + /** @description A unique identifier for the rule used to detect the alert. */ + id?: string | null; + /** @description The name of the rule used to detect the alert. */ + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity?: "none" | "note" | "warning" | "error" | null; + /** + * @description The security severity of the alert. + * @enum {string|null} + */ + security_severity_level?: "low" | "medium" | "high" | "critical" | null; + /** @description A short description of the rule used to detect the alert. */ + description?: string; + /** @description description of the rule used to detect the alert. */ + full_description?: string; + /** @description A set of tags applicable for the rule. */ + tags?: string[] | null; + /** @description Detailed documentation for the rule as GitHub Flavored Markdown. */ + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + }; + "code-scanning-alert": { + number: components["schemas"]["alert-number"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["alert-updated-at"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + instances_url: components["schemas"]["alert-instances-url"]; + state: components["schemas"]["code-scanning-alert-state"]; + fixed_at?: components["schemas"]["alert-fixed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_reason: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + rule: components["schemas"]["code-scanning-alert-rule"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + most_recent_instance: components["schemas"]["code-scanning-alert-instance"]; + }; + /** + * @description Sets the state of the code scanning alert. You must provide `dismissed_reason` when you set the state to `dismissed`. + * @enum {string} + */ + "code-scanning-alert-set-state": "open" | "dismissed"; + /** + * @description An identifier for the upload. + * @example 6c81cd8e-b078-4ac3-a3be-1dad7dbd0b53 + */ + "code-scanning-analysis-sarif-id": string; + /** @description The SHA of the commit to which the analysis you are uploading relates. */ + "code-scanning-analysis-commit-sha": string; + /** @description Identifies the variable values associated with the environment in which this analysis was performed. */ + "code-scanning-analysis-environment": string; + /** + * Format: date-time + * @description The time that the analysis was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "code-scanning-analysis-created-at": string; + /** + * Format: uri + * @description The REST API URL of the analysis resource. + */ + readonly "code-scanning-analysis-url": string; + "code-scanning-analysis": { + ref: components["schemas"]["code-scanning-ref"]; + commit_sha: components["schemas"]["code-scanning-analysis-commit-sha"]; + analysis_key: components["schemas"]["code-scanning-analysis-analysis-key"]; + environment: components["schemas"]["code-scanning-analysis-environment"]; + category?: components["schemas"]["code-scanning-analysis-category"]; + /** @example error reading field xyz */ + error: string; + created_at: components["schemas"]["code-scanning-analysis-created-at"]; + /** @description The total number of results in the analysis. */ + results_count: number; + /** @description The total number of rules used in the analysis. */ + rules_count: number; + /** @description Unique identifier for this analysis. */ + id: number; + url: components["schemas"]["code-scanning-analysis-url"]; + sarif_id: components["schemas"]["code-scanning-analysis-sarif-id"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + deletable: boolean; + /** + * @description Warning generated when processing the analysis + * @example 123 results were ignored + */ + warning: string; + }; + /** + * Analysis deletion + * @description Successful deletion of a code scanning analysis + */ + "code-scanning-analysis-deletion": { + /** + * Format: uri + * @description Next deletable analysis in chain, without last analysis deletion confirmation + */ + next_analysis_url: string | null; + /** + * Format: uri + * @description Next deletable analysis in chain, with last analysis deletion confirmation + */ + confirm_delete_url: string | null; + }; + /** + * CodeQL Database + * @description A CodeQL database. + */ + "code-scanning-codeql-database": { + /** @description The ID of the CodeQL database. */ + id: number; + /** @description The name of the CodeQL database. */ + name: string; + /** @description The language of the CodeQL database. */ + language: string; + uploader: components["schemas"]["simple-user"]; + /** @description The MIME type of the CodeQL database file. */ + content_type: string; + /** @description The size of the CodeQL database file in bytes. */ + size: number; + /** + * Format: date-time + * @description The date and time at which the CodeQL database was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the CodeQL database was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + updated_at: string; + /** + * Format: uri + * @description The URL at which to download the CodeQL database. The `Accept` header must be set to the value of the `content_type` property. + */ + url: string; + /** @description The commit SHA of the repository at the time the CodeQL database was created. */ + commit_oid?: string | null; + }; + /** @description Configuration for code scanning default setup. */ + "code-scanning-default-setup": { + /** + * @description Code scanning default setup has been configured or not. + * @enum {string} + */ + state?: "configured" | "not-configured"; + /** @description Languages to be analyzed. */ + languages?: ( + | "c-cpp" + | "csharp" + | "go" + | "java-kotlin" + | "javascript-typescript" + | "javascript" + | "python" + | "ruby" + | "typescript" + | "swift" + )[]; + /** + * @description CodeQL query suite to be used. + * @enum {string} + */ + query_suite?: "default" | "extended"; + /** + * Format: date-time + * @description Timestamp of latest configuration update. + * @example 2023-12-06T14:20:20.000Z + */ + updated_at?: string | null; + /** + * @description The frequency of the periodic analysis. + * @enum {string|null} + */ + schedule?: "weekly" | null; + }; + /** @description Configuration for code scanning default setup. */ + "code-scanning-default-setup-update": { + /** + * @description The desired state of code scanning default setup. + * @enum {string} + */ + state?: "configured" | "not-configured"; + /** + * @description CodeQL query suite to be used. + * @enum {string} + */ + query_suite?: "default" | "extended"; + /** @description CodeQL languages to be analyzed. */ + languages?: ( + | "c-cpp" + | "csharp" + | "go" + | "java-kotlin" + | "javascript-typescript" + | "python" + | "ruby" + | "swift" + )[]; + }; + /** + * @description You can use `run_url` to track the status of the run. This includes a property status and conclusion. + * You should not rely on this always being an actions workflow run object. + */ + "code-scanning-default-setup-update-response": { + /** @description ID of the corresponding run. */ + run_id?: number; + /** @description URL of the corresponding run. */ + run_url?: string; + }; + /** + * @description The full Git reference, formatted as `refs/heads/`, + * `refs/tags/`, `refs/pull//merge`, or `refs/pull//head`. + * @example refs/heads/main + */ + "code-scanning-ref-full": string; + /** @description A Base64 string representing the SARIF file to upload. You must first compress your SARIF file using [`gzip`](http://www.gnu.org/software/gzip/manual/gzip.html) and then translate the contents of the file into a Base64 encoding string. For more information, see "[SARIF support for code scanning](https://docs.github.com/code-security/secure-coding/sarif-support-for-code-scanning)." */ + "code-scanning-analysis-sarif-file": string; + "code-scanning-sarifs-receipt": { + id?: components["schemas"]["code-scanning-analysis-sarif-id"]; + /** + * Format: uri + * @description The REST API URL for checking the status of the upload. + */ + url?: string; + }; + "code-scanning-sarifs-status": { + /** + * @description `pending` files have not yet been processed, while `complete` means results from the SARIF have been stored. `failed` files have either not been processed at all, or could only be partially processed. + * @enum {string} + */ + processing_status?: "pending" | "complete" | "failed"; + /** + * Format: uri + * @description The REST API URL for getting the analyses associated with the upload. + */ + analyses_url?: string | null; + /** @description Any errors that ocurred during processing of the delivery. */ + errors?: readonly string[] | null; + }; + /** + * CODEOWNERS errors + * @description A list of errors found in a repo's CODEOWNERS file + */ + "codeowners-errors": { + errors: { + /** + * @description The line number where this errors occurs. + * @example 7 + */ + line: number; + /** + * @description The column number where this errors occurs. + * @example 3 + */ + column: number; + /** + * @description The contents of the line where the error occurs. + * @example * user + */ + source?: string; + /** + * @description The type of error. + * @example Invalid owner + */ + kind: string; + /** + * @description Suggested action to fix the error. This will usually be `null`, but is provided for some common errors. + * @example The pattern `/` will never match anything, did you mean `*` instead? + */ + suggestion?: string | null; + /** + * @description A human-readable description of the error, combining information from multiple fields, laid out for display in a monospaced typeface (for example, a command-line setting). + * @example Invalid owner on line 7: + * + * * user + * ^ + */ + message: string; + /** + * @description The path of the file where the error occured. + * @example .github/CODEOWNERS + */ + path: string; + }[]; + }; + /** + * Codespace machine + * @description A description of the machine powering a codespace. + */ + "codespace-machine": { + /** + * @description The name of the machine. + * @example standardLinux + */ + name: string; + /** + * @description The display name of the machine includes cores, memory, and storage. + * @example 4 cores, 16 GB RAM, 64 GB storage + */ + display_name: string; + /** + * @description The operating system of the machine. + * @example linux + */ + operating_system: string; + /** + * @description How much storage is available to the codespace. + * @example 68719476736 + */ + storage_in_bytes: number; + /** + * @description How much memory is available to the codespace. + * @example 17179869184 + */ + memory_in_bytes: number; + /** + * @description How many cores are available to the codespace. + * @example 4 + */ + cpus: number; + /** + * @description Whether a prebuild is currently available when creating a codespace for this machine and repository. If a branch was not specified as a ref, the default branch will be assumed. Value will be "null" if prebuilds are not supported or prebuild availability could not be determined. Value will be "none" if no prebuild is available. Latest values "ready" and "in_progress" indicate the prebuild availability status. + * @example ready + * @enum {string|null} + */ + prebuild_availability: "none" | "ready" | "in_progress" | null; + }; + /** + * Codespaces Permissions Check + * @description Permission check result for a given devcontainer config. + */ + "codespaces-permissions-check-for-devcontainer": { + /** + * @description Whether the user has accepted the permissions defined by the devcontainer config + * @example true + */ + accepted: boolean; + }; + /** + * Codespaces Secret + * @description Set repository secrets for GitHub Codespaces. + */ + "repo-codespaces-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Collaborator + * @description Collaborator + */ + collaborator: { + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + email?: string | null; + name?: string | null; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + permissions?: { + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + admin: boolean; + }; + /** @example admin */ + role_name: string; + }; + /** + * Repository Invitation + * @description Repository invitations let you manage who you collaborate with. + */ + "repository-invitation": { + /** + * @description Unique identifier of the repository invitation. + * @example 42 + */ + id: number; + repository: components["schemas"]["minimal-repository"]; + invitee: components["schemas"]["nullable-simple-user"]; + inviter: components["schemas"]["nullable-simple-user"]; + /** + * @description The permission associated with the invitation. + * @example read + * @enum {string} + */ + permissions: "read" | "write" | "admin" | "triage" | "maintain"; + /** + * Format: date-time + * @example 2016-06-13T14:52:50-05:00 + */ + created_at: string; + /** @description Whether or not the invitation has expired */ + expired?: boolean; + /** + * @description URL for the repository invitation + * @example https://api.github.com/user/repository-invitations/1 + */ + url: string; + /** @example https://github.com/octocat/Hello-World/invitations */ + html_url: string; + node_id: string; + }; + /** + * Collaborator + * @description Collaborator + */ + "nullable-collaborator": { + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + email?: string | null; + name?: string | null; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + permissions?: { + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + admin: boolean; + }; + /** @example admin */ + role_name: string; + } | null; + /** + * Repository Collaborator Permission + * @description Repository Collaborator Permission + */ + "repository-collaborator-permission": { + permission: string; + /** @example admin */ + role_name: string; + user: components["schemas"]["nullable-collaborator"]; + }; + /** + * Commit Comment + * @description Commit Comment + */ + "commit-comment": { + /** Format: uri */ + html_url: string; + /** Format: uri */ + url: string; + id: number; + node_id: string; + body: string; + path: string | null; + position: number | null; + line: number | null; + commit_id: string; + user: components["schemas"]["nullable-simple-user"]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + author_association: components["schemas"]["author-association"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Branch Short + * @description Branch Short + */ + "branch-short": { + name: string; + commit: { + sha: string; + url: string; + }; + protected: boolean; + }; + /** + * Link + * @description Hypermedia Link + */ + link: { + href: string; + }; + /** + * Auto merge + * @description The status of auto merging a pull request. + */ + "auto-merge": { + enabled_by: components["schemas"]["simple-user"]; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + /** @description Title for the merge commit message. */ + commit_title: string; + /** @description Commit message for the merge commit. */ + commit_message: string; + } | null; + /** + * Pull Request Simple + * @description Pull Request Simple + */ + "pull-request-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347 + */ + url: string; + /** @example 1 */ + id: number; + /** @example MDExOlB1bGxSZXF1ZXN0MQ== */ + node_id: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347 + */ + html_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.diff + */ + diff_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.patch + */ + patch_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + */ + commits_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + */ + review_comments_url: string; + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} */ + review_comment_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + */ + comments_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + statuses_url: string; + /** @example 1347 */ + number: number; + /** @example open */ + state: string; + /** @example true */ + locked: boolean; + /** @example new-feature */ + title: string; + user: components["schemas"]["nullable-simple-user"]; + /** @example Please pull these awesome changes */ + body: string | null; + labels: { + /** Format: int64 */ + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: components["schemas"]["nullable-milestone"]; + /** @example too heated */ + active_lock_reason?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + merged_at: string | null; + /** @example e5bd3914e2e596debea16f433f57875b5b90bcd6 */ + merge_commit_sha: string | null; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + requested_reviewers?: components["schemas"]["simple-user"][] | null; + requested_teams?: components["schemas"]["team"][] | null; + head: { + label: string; + ref: string; + repo: components["schemas"]["repository"]; + sha: string; + user: components["schemas"]["nullable-simple-user"]; + }; + base: { + label: string; + ref: string; + repo: components["schemas"]["repository"]; + sha: string; + user: components["schemas"]["nullable-simple-user"]; + }; + _links: { + comments: components["schemas"]["link"]; + commits: components["schemas"]["link"]; + statuses: components["schemas"]["link"]; + html: components["schemas"]["link"]; + issue: components["schemas"]["link"]; + review_comments: components["schemas"]["link"]; + review_comment: components["schemas"]["link"]; + self: components["schemas"]["link"]; + }; + author_association: components["schemas"]["author-association"]; + auto_merge: components["schemas"]["auto-merge"]; + /** + * @description Indicates whether or not the pull request is a draft. + * @example false + */ + draft?: boolean; + }; + /** Simple Commit Status */ + "simple-commit-status": { + description: string | null; + id: number; + node_id: string; + state: string; + context: string; + /** Format: uri */ + target_url: string | null; + required?: boolean | null; + /** Format: uri */ + avatar_url: string | null; + /** Format: uri */ + url: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Combined Commit Status + * @description Combined Commit Status + */ + "combined-commit-status": { + state: string; + statuses: components["schemas"]["simple-commit-status"][]; + sha: string; + total_count: number; + repository: components["schemas"]["minimal-repository"]; + /** Format: uri */ + commit_url: string; + /** Format: uri */ + url: string; + }; + /** + * Status + * @description The status of a commit. + */ + status: { + url: string; + avatar_url: string | null; + id: number; + node_id: string; + state: string; + description: string | null; + target_url: string | null; + context: string; + created_at: string; + updated_at: string; + creator: components["schemas"]["nullable-simple-user"]; + }; + /** + * Code Of Conduct Simple + * @description Code of Conduct Simple + */ + "nullable-code-of-conduct-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/github/docs/community/code_of_conduct + */ + url: string; + /** @example citizen_code_of_conduct */ + key: string; + /** @example Citizen Code of Conduct */ + name: string; + /** + * Format: uri + * @example https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md + */ + html_url: string | null; + } | null; + /** Community Health File */ + "nullable-community-health-file": { + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + } | null; + /** + * Community Profile + * @description Community Profile + */ + "community-profile": { + /** @example 100 */ + health_percentage: number; + /** @example My first repository on GitHub! */ + description: string | null; + /** @example example.com */ + documentation: string | null; + files: { + code_of_conduct: components["schemas"]["nullable-code-of-conduct-simple"]; + code_of_conduct_file: components["schemas"]["nullable-community-health-file"]; + license: components["schemas"]["nullable-license-simple"]; + contributing: components["schemas"]["nullable-community-health-file"]; + readme: components["schemas"]["nullable-community-health-file"]; + issue_template: components["schemas"]["nullable-community-health-file"]; + pull_request_template: components["schemas"]["nullable-community-health-file"]; + }; + /** + * Format: date-time + * @example 2017-02-28T19:09:29Z + */ + updated_at: string | null; + /** @example true */ + content_reports_enabled?: boolean; + }; + /** + * Commit Comparison + * @description Commit Comparison + */ + "commit-comparison": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/compare/master...topic + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/master...topic + */ + html_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17 + */ + permalink_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/master...topic.diff + */ + diff_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/master...topic.patch + */ + patch_url: string; + base_commit: components["schemas"]["commit"]; + merge_base_commit: components["schemas"]["commit"]; + /** + * @example ahead + * @enum {string} + */ + status: "diverged" | "ahead" | "behind" | "identical"; + /** @example 4 */ + ahead_by: number; + /** @example 5 */ + behind_by: number; + /** @example 6 */ + total_commits: number; + commits: components["schemas"]["commit"][]; + files?: components["schemas"]["diff-entry"][]; + }; + /** + * Content Tree + * @description Content Tree + */ + "content-tree": { + type: string; + size: number; + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + entries?: { + type: string; + size: number; + name: string; + path: string; + content?: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }[]; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }; + /** + * Content Directory + * @description A list of directory items + */ + "content-directory": { + /** @enum {string} */ + type: "dir" | "file" | "submodule" | "symlink"; + size: number; + name: string; + path: string; + content?: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }[]; + /** + * Content File + * @description Content File + */ + "content-file": { + /** @enum {string} */ + type: "file"; + encoding: string; + size: number; + name: string; + path: string; + content: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + /** @example "actual/actual.md" */ + target?: string; + /** @example "git://example.com/defunkt/dotjs.git" */ + submodule_git_url?: string; + }; + /** + * Symlink Content + * @description An object describing a symlink + */ + "content-symlink": { + /** @enum {string} */ + type: "symlink"; + target: string; + size: number; + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }; + /** + * Submodule Content + * @description An object describing a submodule + */ + "content-submodule": { + /** @enum {string} */ + type: "submodule"; + /** Format: uri */ + submodule_git_url: string; + size: number; + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }; + /** + * File Commit + * @description File Commit + */ + "file-commit": { + content: { + name?: string; + path?: string; + sha?: string; + size?: number; + url?: string; + html_url?: string; + git_url?: string; + download_url?: string; + type?: string; + _links?: { + self?: string; + git?: string; + html?: string; + }; + } | null; + commit: { + sha?: string; + node_id?: string; + url?: string; + html_url?: string; + author?: { + date?: string; + name?: string; + email?: string; + }; + committer?: { + date?: string; + name?: string; + email?: string; + }; + message?: string; + tree?: { + url?: string; + sha?: string; + }; + parents?: { + url?: string; + html_url?: string; + sha?: string; + }[]; + verification?: { + verified?: boolean; + reason?: string; + signature?: string | null; + payload?: string | null; + }; + }; + }; + /** + * Contributor + * @description Contributor + */ + contributor: { + login?: string; + id?: number; + node_id?: string; + /** Format: uri */ + avatar_url?: string; + gravatar_id?: string | null; + /** Format: uri */ + url?: string; + /** Format: uri */ + html_url?: string; + /** Format: uri */ + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + repos_url?: string; + events_url?: string; + /** Format: uri */ + received_events_url?: string; + type: string; + site_admin?: boolean; + contributions: number; + email?: string; + name?: string; + }; + /** @description A Dependabot alert. */ + "dependabot-alert": { + number: components["schemas"]["alert-number"]; + /** + * @description The state of the Dependabot alert. + * @enum {string} + */ + state: "auto_dismissed" | "dismissed" | "fixed" | "open"; + /** @description Details for the vulnerable dependency. */ + dependency: { + readonly package?: components["schemas"]["dependabot-alert-package"]; + /** @description The full path to the dependency manifest file, relative to the root of the repository. */ + readonly manifest_path?: string; + /** + * @description The execution scope of the vulnerable dependency. + * @enum {string|null} + */ + readonly scope?: "development" | "runtime" | null; + }; + security_advisory: components["schemas"]["dependabot-alert-security-advisory"]; + security_vulnerability: components["schemas"]["dependabot-alert-security-vulnerability"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at: components["schemas"]["alert-updated-at"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + /** + * @description The reason that the alert was dismissed. + * @enum {string|null} + */ + dismissed_reason: + | "fix_started" + | "inaccurate" + | "no_bandwidth" + | "not_used" + | "tolerable_risk" + | null; + /** @description An optional comment associated with the alert's dismissal. */ + dismissed_comment: string | null; + fixed_at: components["schemas"]["alert-fixed-at"]; + auto_dismissed_at?: components["schemas"]["alert-auto-dismissed-at"]; + }; + /** + * Dependabot Secret + * @description Set secrets for Dependabot. + */ + "dependabot-secret": { + /** + * @description The name of the secret. + * @example MY_ARTIFACTORY_PASSWORD + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Dependency Graph Diff + * @description A diff of the dependencies between two commits. + */ + "dependency-graph-diff": { + /** @enum {string} */ + change_type: "added" | "removed"; + /** @example path/to/package-lock.json */ + manifest: string; + /** @example npm */ + ecosystem: string; + /** @example @actions/core */ + name: string; + /** @example 1.0.0 */ + version: string; + /** @example pkg:/npm/%40actions/core@1.1.0 */ + package_url: string | null; + /** @example MIT */ + license: string | null; + /** @example https://github.com/github/actions */ + source_repository_url: string | null; + vulnerabilities: { + /** @example critical */ + severity: string; + /** @example GHSA-rf4j-j272-fj86 */ + advisory_ghsa_id: string; + /** @example A summary of the advisory. */ + advisory_summary: string; + /** @example https://github.com/advisories/GHSA-rf4j-j272-fj86 */ + advisory_url: string; + }[]; + /** + * @description Where the dependency is utilized. `development` means that the dependency is only utilized in the development environment. `runtime` means that the dependency is utilized at runtime and in the development environment. + * @enum {string} + */ + scope: "unknown" | "runtime" | "development"; + }[]; + /** + * Dependency Graph SPDX SBOM + * @description A schema for the SPDX JSON format returned by the Dependency Graph. + */ + "dependency-graph-spdx-sbom": { + sbom: { + /** + * @description The SPDX identifier for the SPDX document. + * @example SPDXRef-DOCUMENT + */ + SPDXID: string; + /** + * @description The version of the SPDX specification that this document conforms to. + * @example SPDX-2.3 + */ + spdxVersion: string; + creationInfo: { + /** + * @description The date and time the SPDX document was created. + * @example 2021-11-03T00:00:00Z + */ + created: string; + /** @description The tools that were used to generate the SPDX document. */ + creators: string[]; + }; + /** + * @description The name of the SPDX document. + * @example github/github + */ + name: string; + /** + * @description The license under which the SPDX document is licensed. + * @example CC0-1.0 + */ + dataLicense: string; + /** @description The name of the repository that the SPDX document describes. */ + documentDescribes: string[]; + /** + * @description The namespace for the SPDX document. + * @example https://github.com/example/dependency_graph/sbom-123 + */ + documentNamespace: string; + packages: { + /** + * @description A unique SPDX identifier for the package. + * @example SPDXRef-Package + */ + SPDXID?: string; + /** + * @description The name of the package. + * @example rubygems:github/github + */ + name?: string; + /** + * @description The version of the package. If the package does not have an exact version specified, + * a version range is given. + * @example 1.0.0 + */ + versionInfo?: string; + /** + * @description The location where the package can be downloaded, + * or NOASSERTION if this has not been determined. + * @example NOASSERTION + */ + downloadLocation?: string; + /** + * @description Whether the package's file content has been subjected to + * analysis during the creation of the SPDX document. + * @example false + */ + filesAnalyzed?: boolean; + /** + * @description The license of the package as determined while creating the SPDX document. + * @example MIT + */ + licenseConcluded?: string; + /** + * @description The license of the package as declared by its author, or NOASSERTION if this information + * was not available when the SPDX document was created. + * @example NOASSERTION + */ + licenseDeclared?: string; + /** + * @description The distribution source of this package, or NOASSERTION if this was not determined. + * @example NOASSERTION + */ + supplier?: string; + externalRefs?: { + /** + * @description The category of reference to an external resource this reference refers to. + * @example PACKAGE-MANAGER + */ + referenceCategory: string; + /** + * @description A locator for the particular external resource this reference refers to. + * @example pkg:gem/rails@6.0.1 + */ + referenceLocator: string; + /** + * @description The category of reference to an external resource this reference refers to. + * @example purl + */ + referenceType: string; + }[]; + }[]; + }; + }; + /** + * metadata + * @description User-defined metadata to store domain-specific information limited to 8 keys with scalar values. + */ + metadata: { + [key: string]: (string | number | boolean) | null; + }; + dependency: { + /** + * @description Package-url (PURL) of dependency. See https://github.com/package-url/purl-spec for more details. + * @example pkg:/npm/%40actions/http-client@1.0.11 + */ + package_url?: string; + metadata?: components["schemas"]["metadata"]; + /** + * @description A notation of whether a dependency is requested directly by this manifest or is a dependency of another dependency. + * @example direct + * @enum {string} + */ + relationship?: "direct" | "indirect"; + /** + * @description A notation of whether the dependency is required for the primary build artifact (runtime) or is only used for development. Future versions of this specification may allow for more granular scopes. + * @example runtime + * @enum {string} + */ + scope?: "runtime" | "development"; + /** + * @description Array of package-url (PURLs) of direct child dependencies. + * @example @actions/http-client + */ + dependencies?: string[]; + }; + manifest: { + /** + * @description The name of the manifest. + * @example package-lock.json + */ + name: string; + file?: { + /** + * @description The path of the manifest file relative to the root of the Git repository. + * @example /src/build/package-lock.json + */ + source_location?: string; + }; + metadata?: components["schemas"]["metadata"]; + /** @description A collection of resolved package dependencies. */ + resolved?: { + [key: string]: components["schemas"]["dependency"]; + }; + }; + /** + * snapshot + * @description Create a new snapshot of a repository's dependencies. + */ + snapshot: { + /** @description The version of the repository snapshot submission. */ + version: number; + job: { + /** + * @description The external ID of the job. + * @example 5622a2b0-63f6-4732-8c34-a1ab27e102a11 + */ + id: string; + /** + * @description Correlator provides a key that is used to group snapshots submitted over time. Only the "latest" submitted snapshot for a given combination of `job.correlator` and `detector.name` will be considered when calculating a repository's current dependencies. Correlator should be as unique as it takes to distinguish all detection runs for a given "wave" of CI workflow you run. If you're using GitHub Actions, a good default value for this could be the environment variables GITHUB_WORKFLOW and GITHUB_JOB concatenated together. If you're using a build matrix, then you'll also need to add additional key(s) to distinguish between each submission inside a matrix variation. + * @example yourworkflowname_yourjobname + */ + correlator: string; + /** + * @description The url for the job. + * @example http://example.com/build + */ + html_url?: string; + }; + /** + * @description The commit SHA associated with this dependency snapshot. Maximum length: 40 characters. + * @example ddc951f4b1293222421f2c8df679786153acf689 + */ + sha: string; + /** + * @description The repository branch that triggered this snapshot. + * @example refs/heads/main + */ + ref: string; + /** @description A description of the detector used. */ + detector: { + /** + * @description The name of the detector used. + * @example docker buildtime detector + */ + name: string; + /** + * @description The version of the detector used. + * @example 1.0.0 + */ + version: string; + /** + * @description The url of the detector used. + * @example http://example.com/docker-buildtimer-detector + */ + url: string; + }; + metadata?: components["schemas"]["metadata"]; + /** @description A collection of package manifests, which are a collection of related dependencies declared in a file or representing a logical group of dependencies. */ + manifests?: { + [key: string]: components["schemas"]["manifest"]; + }; + /** + * Format: date-time + * @description The time at which the snapshot was scanned. + * @example 2020-06-13T14:52:50-05:00 + */ + scanned: string; + }; + /** + * Deployment Status + * @description The status of a deployment. + */ + "deployment-status": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/42/statuses/1 + */ + url: string; + /** @example 1 */ + id: number; + /** @example MDE2OkRlcGxveW1lbnRTdGF0dXMx */ + node_id: string; + /** + * @description The state of the status. + * @example success + * @enum {string} + */ + state: + | "error" + | "failure" + | "inactive" + | "pending" + | "success" + | "queued" + | "in_progress"; + creator: components["schemas"]["nullable-simple-user"]; + /** + * @description A short description of the status. + * @default + * @example Deployment finished successfully. + */ + description: string; + /** + * @description The environment of the deployment that the status is for. + * @default + * @example production + */ + environment?: string; + /** + * Format: uri + * @description Deprecated: the URL to associate with this status. + * @default + * @example https://example.com/deployment/42/output + */ + target_url: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + created_at: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/42 + */ + deployment_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + /** + * Format: uri + * @description The URL for accessing your environment. + * @default + * @example https://staging.example.com/ + */ + environment_url?: string; + /** + * Format: uri + * @description The URL to associate with this status. + * @default + * @example https://example.com/deployment/42/output + */ + log_url?: string; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * @description The amount of time to delay a job after the job is initially triggered. The time (in minutes) must be an integer between 0 and 43,200 (30 days). + * @example 30 + */ + "wait-timer": number; + /** @description The type of deployment branch policy for this environment. To allow all branches to deploy, set to `null`. */ + "deployment-branch-policy-settings": { + /** @description Whether only branches with branch protection rules can deploy to this environment. If `protected_branches` is `true`, `custom_branch_policies` must be `false`; if `protected_branches` is `false`, `custom_branch_policies` must be `true`. */ + protected_branches: boolean; + /** @description Whether only branches that match the specified name patterns can deploy to this environment. If `custom_branch_policies` is `true`, `protected_branches` must be `false`; if `custom_branch_policies` is `false`, `protected_branches` must be `true`. */ + custom_branch_policies: boolean; + } | null; + /** + * Environment + * @description Details of a deployment environment + */ + environment: { + /** + * @description The id of the environment. + * @example 56780428 + */ + id: number; + /** @example MDExOkVudmlyb25tZW50NTY3ODA0Mjg= */ + node_id: string; + /** + * @description The name of the environment. + * @example staging + */ + name: string; + /** @example https://api.github.com/repos/github/hello-world/environments/staging */ + url: string; + /** @example https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging */ + html_url: string; + /** + * Format: date-time + * @description The time that the environment was created, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + created_at: string; + /** + * Format: date-time + * @description The time that the environment was last updated, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + updated_at: string; + /** @description Built-in deployment protection rules for the environment. */ + protection_rules?: ( + | { + /** @example 3515 */ + id: number; + /** @example MDQ6R2F0ZTM1MTU= */ + node_id: string; + /** @example wait_timer */ + type: string; + wait_timer?: components["schemas"]["wait-timer"]; + } + | { + /** @example 3755 */ + id: number; + /** @example MDQ6R2F0ZTM3NTU= */ + node_id: string; + /** + * @description Whether deployments to this environment can be approved by the user who created the deployment. + * @example false + */ + prevent_self_review?: boolean; + /** @example required_reviewers */ + type: string; + /** @description The people or teams that may approve jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ + reviewers?: { + type?: components["schemas"]["deployment-reviewer-type"]; + reviewer?: + | components["schemas"]["simple-user"] + | components["schemas"]["team"]; + }[]; + } + | { + /** @example 3515 */ + id: number; + /** @example MDQ6R2F0ZTM1MTU= */ + node_id: string; + /** @example branch_policy */ + type: string; + } + )[]; + deployment_branch_policy?: components["schemas"]["deployment-branch-policy-settings"]; + }; + /** + * @description Whether or not a user who created the job is prevented from approving their own job. + * @example false + */ + "prevent-self-review": boolean; + /** + * Deployment branch policy + * @description Details of a deployment branch or tag policy. + */ + "deployment-branch-policy": { + /** + * @description The unique identifier of the branch or tag policy. + * @example 361471 + */ + id?: number; + /** @example MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjE0NzE= */ + node_id?: string; + /** + * @description The name pattern that branches or tags must match in order to deploy to the environment. + * @example release/* + */ + name?: string; + /** + * @description Whether this rule targets a branch or tag. + * @example branch + * @enum {string} + */ + type?: "branch" | "tag"; + }; + /** Deployment branch and tag policy name pattern */ + "deployment-branch-policy-name-pattern-with-type": { + /** + * @description The name pattern that branches or tags must match in order to deploy to the environment. + * + * Wildcard characters will not match `/`. For example, to match branches that begin with `release/` and contain an additional single slash, use `release/*\/*`. + * For more information about pattern matching syntax, see the [Ruby File.fnmatch documentation](https://ruby-doc.org/core-2.5.1/File.html#method-c-fnmatch). + * @example release/* + */ + name: string; + /** + * @description Whether this rule targets a branch or tag + * @example branch + * @enum {string} + */ + type?: "branch" | "tag"; + }; + /** Deployment branch policy name pattern */ + "deployment-branch-policy-name-pattern": { + /** + * @description The name pattern that branches must match in order to deploy to the environment. + * + * Wildcard characters will not match `/`. For example, to match branches that begin with `release/` and contain an additional single slash, use `release/*\/*`. + * For more information about pattern matching syntax, see the [Ruby File.fnmatch documentation](https://ruby-doc.org/core-2.5.1/File.html#method-c-fnmatch). + * @example release/* + */ + name: string; + }; + /** + * Custom deployment protection rule app + * @description A GitHub App that is providing a custom deployment protection rule. + */ + "custom-deployment-rule-app": { + /** + * @description The unique identifier of the deployment protection rule integration. + * @example 3515 + */ + id: number; + /** + * @description The slugified name of the deployment protection rule integration. + * @example my-custom-app + */ + slug: string; + /** + * @description The URL for the endpoint to get details about the app. + * @example https://api.github.com/apps/custom-app-slug + */ + integration_url: string; + /** + * @description The node ID for the deployment protection rule integration. + * @example MDQ6R2F0ZTM1MTU= + */ + node_id: string; + }; + /** + * Deployment protection rule + * @description Deployment protection rule + */ + "deployment-protection-rule": { + /** + * @description The unique identifier for the deployment protection rule. + * @example 3515 + */ + id: number; + /** + * @description The node ID for the deployment protection rule. + * @example MDQ6R2F0ZTM1MTU= + */ + node_id: string; + /** + * @description Whether the deployment protection rule is enabled for the environment. + * @example true + */ + enabled: boolean; + app: components["schemas"]["custom-deployment-rule-app"]; + }; + /** + * Short Blob + * @description Short Blob + */ + "short-blob": { + url: string; + sha: string; + }; + /** + * Blob + * @description Blob + */ + blob: { + content: string; + encoding: string; + /** Format: uri */ + url: string; + sha: string; + size: number | null; + node_id: string; + highlighted_content?: string; + }; + /** + * Git Commit + * @description Low-level Git commit operations within a repository + */ + "git-commit": { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + node_id: string; + /** Format: uri */ + url: string; + /** @description Identifying information for the git-user */ + author: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** @description Identifying information for the git-user */ + committer: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + tree: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + }; + parents: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string | null; + payload: string | null; + }; + /** Format: uri */ + html_url: string; + }; + /** + * Git Reference + * @description Git references within a repository + */ + "git-ref": { + ref: string; + node_id: string; + /** Format: uri */ + url: string; + object: { + type: string; + /** + * @description SHA for the reference + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + }; + }; + /** + * Git Tag + * @description Metadata for a Git tag + */ + "git-tag": { + /** @example MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw== */ + node_id: string; + /** + * @description Name of the tag + * @example v0.0.1 + */ + tag: string; + /** @example 940bd336248efae0f9ee5bc7b2d5c985887b16ac */ + sha: string; + /** + * Format: uri + * @description URL for the tag + * @example https://api.github.com/repositories/42/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac + */ + url: string; + /** + * @description Message describing the purpose of the tag + * @example Initial public release + */ + message: string; + tagger: { + date: string; + email: string; + name: string; + }; + object: { + sha: string; + type: string; + /** Format: uri */ + url: string; + }; + verification?: components["schemas"]["verification"]; + }; + /** + * Git Tree + * @description The hierarchy between files in a Git repository. + */ + "git-tree": { + sha: string; + /** Format: uri */ + url: string; + truncated: boolean; + /** + * @description Objects specifying a tree structure + * @example [ + * { + * "path": "file.rb", + * "mode": "100644", + * "type": "blob", + * "size": 30, + * "sha": "44b4fc6d56897b048c772eb4087f854f46256132", + * "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", + * "properties": { + * "path": { + * "type": "string" + * }, + * "mode": { + * "type": "string" + * }, + * "type": { + * "type": "string" + * }, + * "size": { + * "type": "integer" + * }, + * "sha": { + * "type": "string" + * }, + * "url": { + * "type": "string" + * } + * }, + * "required": [ + * "path", + * "mode", + * "type", + * "sha", + * "url", + * "size" + * ] + * } + * ] + */ + tree: { + /** @example test/file.rb */ + path?: string; + /** @example 040000 */ + mode?: string; + /** @example tree */ + type?: string; + /** @example 23f6827669e43831def8a7ad935069c8bd418261 */ + sha?: string; + /** @example 12 */ + size?: number; + /** @example https://api.github.com/repos/owner-482f3203ecf01f67e9deb18e/BBB_Private_Repo/git/blobs/23f6827669e43831def8a7ad935069c8bd418261 */ + url?: string; + }[]; + }; + /** Hook Response */ + "hook-response": { + code: number | null; + status: string | null; + message: string | null; + }; + /** + * Webhook + * @description Webhooks for repositories. + */ + hook: { + type: string; + /** + * @description Unique identifier of the webhook. + * @example 42 + */ + id: number; + /** + * @description The name of a valid service, use 'web' for a webhook. + * @example web + */ + name: string; + /** + * @description Determines whether the hook is actually triggered on pushes. + * @example true + */ + active: boolean; + /** + * @description Determines what events the hook is triggered for. Default: ['push']. + * @example [ + * "push", + * "pull_request" + * ] + */ + events: string[]; + config: components["schemas"]["webhook-config"]; + /** + * Format: date-time + * @example 2011-09-06T20:39:23Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-09-06T17:26:27Z + */ + created_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1/test + */ + test_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1/pings + */ + ping_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1/deliveries + */ + deliveries_url?: string; + last_response: components["schemas"]["hook-response"]; + }; + /** + * Import + * @description A repository import from an external source. + */ + import: { + vcs: string | null; + use_lfs?: boolean; + /** @description The URL of the originating repository. */ + vcs_url: string; + svc_root?: string; + tfvc_project?: string; + /** @enum {string} */ + status: + | "auth" + | "error" + | "none" + | "detecting" + | "choose" + | "auth_failed" + | "importing" + | "mapping" + | "waiting_to_push" + | "pushing" + | "complete" + | "setup" + | "unknown" + | "detection_found_multiple" + | "detection_found_nothing" + | "detection_needs_auth"; + status_text?: string | null; + failed_step?: string | null; + error_message?: string | null; + import_percent?: number | null; + commit_count?: number | null; + push_percent?: number | null; + has_large_files?: boolean; + large_files_size?: number; + large_files_count?: number; + project_choices?: { + vcs?: string; + tfvc_project?: string; + human_name?: string; + }[]; + message?: string; + authors_count?: number | null; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + authors_url: string; + /** Format: uri */ + repository_url: string; + svn_root?: string; + }; + /** + * Porter Author + * @description Porter Author + */ + "porter-author": { + id: number; + remote_id: string; + remote_name: string; + email: string; + name: string; + /** Format: uri */ + url: string; + /** Format: uri */ + import_url: string; + }; + /** + * Porter Large File + * @description Porter Large File + */ + "porter-large-file": { + ref_name: string; + path: string; + oid: string; + size: number; + }; + /** + * Issue + * @description Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. + */ + "nullable-issue": { + /** Format: int64 */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue + * @example https://api.github.com/repositories/42/issues/1 + */ + url: string; + /** Format: uri */ + repository_url: string; + labels_url: string; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** + * @description Number uniquely identifying the issue within its repository + * @example 42 + */ + number: number; + /** + * @description State of the issue; either 'open' or 'closed' + * @example open + */ + state: string; + /** + * @description The reason for the current state + * @example not_planned + * @enum {string|null} + */ + state_reason?: "completed" | "reopened" | "not_planned" | null; + /** + * @description Title of the issue + * @example Widget creation fails in Safari on OS X 10.8 + */ + title: string; + /** + * @description Contents of the issue + * @example It looks like the new widget form is broken on Safari. When I try and create the widget, Safari crashes. This is reproducible on 10.8, but not 10.9. Maybe a browser bug? + */ + body?: string | null; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository + * @example [ + * "bug", + * "registration" + * ] + */ + labels: OneOf< + [ + string, + { + /** Format: int64 */ + id?: number; + node_id?: string; + /** Format: uri */ + url?: string; + name?: string; + description?: string | null; + color?: string | null; + default?: boolean; + }, + ] + >[]; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + milestone: components["schemas"]["nullable-milestone"]; + locked: boolean; + active_lock_reason?: string | null; + comments: number; + pull_request?: { + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + diff_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + patch_url: string | null; + /** Format: uri */ + url: string | null; + }; + /** Format: date-time */ + closed_at: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + draft?: boolean; + closed_by?: components["schemas"]["nullable-simple-user"]; + body_html?: string; + body_text?: string; + /** Format: uri */ + timeline_url?: string; + repository?: components["schemas"]["repository"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + author_association: components["schemas"]["author-association"]; + reactions?: components["schemas"]["reaction-rollup"]; + } | null; + /** + * Issue Event Label + * @description Issue Event Label + */ + "issue-event-label": { + name: string | null; + color: string | null; + }; + /** Issue Event Dismissed Review */ + "issue-event-dismissed-review": { + state: string; + review_id: number; + dismissal_message: string | null; + dismissal_commit_id?: string | null; + }; + /** + * Issue Event Milestone + * @description Issue Event Milestone + */ + "issue-event-milestone": { + title: string; + }; + /** + * Issue Event Project Card + * @description Issue Event Project Card + */ + "issue-event-project-card": { + /** Format: uri */ + url: string; + id: number; + /** Format: uri */ + project_url: string; + project_id: number; + column_name: string; + previous_column_name?: string; + }; + /** + * Issue Event Rename + * @description Issue Event Rename + */ + "issue-event-rename": { + from: string; + to: string; + }; + /** + * Issue Event + * @description Issue Event + */ + "issue-event": { + /** + * Format: int64 + * @example 1 + */ + id: number; + /** @example MDEwOklzc3VlRXZlbnQx */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/events/1 + */ + url: string; + actor: components["schemas"]["nullable-simple-user"]; + /** @example closed */ + event: string; + /** @example 6dcb09b5b57875f334f61aebed695e2e4193db5e */ + commit_id: string | null; + /** @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e */ + commit_url: string | null; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + issue?: components["schemas"]["nullable-issue"]; + label?: components["schemas"]["issue-event-label"]; + assignee?: components["schemas"]["nullable-simple-user"]; + assigner?: components["schemas"]["nullable-simple-user"]; + review_requester?: components["schemas"]["nullable-simple-user"]; + requested_reviewer?: components["schemas"]["nullable-simple-user"]; + requested_team?: components["schemas"]["team"]; + dismissed_review?: components["schemas"]["issue-event-dismissed-review"]; + milestone?: components["schemas"]["issue-event-milestone"]; + project_card?: components["schemas"]["issue-event-project-card"]; + rename?: components["schemas"]["issue-event-rename"]; + author_association?: components["schemas"]["author-association"]; + lock_reason?: string | null; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * Labeled Issue Event + * @description Labeled Issue Event + */ + "labeled-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + label: { + name: string; + color: string; + }; + }; + /** + * Unlabeled Issue Event + * @description Unlabeled Issue Event + */ + "unlabeled-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + label: { + name: string; + color: string; + }; + }; + /** + * Assigned Issue Event + * @description Assigned Issue Event + */ + "assigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["integration"]; + assignee: components["schemas"]["simple-user"]; + assigner: components["schemas"]["simple-user"]; + }; + /** + * Unassigned Issue Event + * @description Unassigned Issue Event + */ + "unassigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + assignee: components["schemas"]["simple-user"]; + assigner: components["schemas"]["simple-user"]; + }; + /** + * Milestoned Issue Event + * @description Milestoned Issue Event + */ + "milestoned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + milestone: { + title: string; + }; + }; + /** + * Demilestoned Issue Event + * @description Demilestoned Issue Event + */ + "demilestoned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + milestone: { + title: string; + }; + }; + /** + * Renamed Issue Event + * @description Renamed Issue Event + */ + "renamed-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + rename: { + from: string; + to: string; + }; + }; + /** + * Review Requested Issue Event + * @description Review Requested Issue Event + */ + "review-requested-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + review_requester: components["schemas"]["simple-user"]; + requested_team?: components["schemas"]["team"]; + requested_reviewer?: components["schemas"]["simple-user"]; + }; + /** + * Review Request Removed Issue Event + * @description Review Request Removed Issue Event + */ + "review-request-removed-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + review_requester: components["schemas"]["simple-user"]; + requested_team?: components["schemas"]["team"]; + requested_reviewer?: components["schemas"]["simple-user"]; + }; + /** + * Review Dismissed Issue Event + * @description Review Dismissed Issue Event + */ + "review-dismissed-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + dismissed_review: { + state: string; + review_id: number; + dismissal_message: string | null; + dismissal_commit_id?: string; + }; + }; + /** + * Locked Issue Event + * @description Locked Issue Event + */ + "locked-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + /** @example "off-topic" */ + lock_reason: string | null; + }; + /** + * Added to Project Issue Event + * @description Added to Project Issue Event + */ + "added-to-project-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Moved Column in Project Issue Event + * @description Moved Column in Project Issue Event + */ + "moved-column-in-project-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Removed from Project Issue Event + * @description Removed from Project Issue Event + */ + "removed-from-project-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Converted Note to Issue Issue Event + * @description Converted Note to Issue Issue Event + */ + "converted-note-to-issue-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Issue Event for Issue + * @description Issue Event for Issue + */ + "issue-event-for-issue": + | components["schemas"]["labeled-issue-event"] + | components["schemas"]["unlabeled-issue-event"] + | components["schemas"]["assigned-issue-event"] + | components["schemas"]["unassigned-issue-event"] + | components["schemas"]["milestoned-issue-event"] + | components["schemas"]["demilestoned-issue-event"] + | components["schemas"]["renamed-issue-event"] + | components["schemas"]["review-requested-issue-event"] + | components["schemas"]["review-request-removed-issue-event"] + | components["schemas"]["review-dismissed-issue-event"] + | components["schemas"]["locked-issue-event"] + | components["schemas"]["added-to-project-issue-event"] + | components["schemas"]["moved-column-in-project-issue-event"] + | components["schemas"]["removed-from-project-issue-event"] + | components["schemas"]["converted-note-to-issue-issue-event"]; + /** + * Label + * @description Color-coded labels help you categorize and filter your issues (just like labels in Gmail). + */ + label: { + /** + * Format: int64 + * @example 208045946 + */ + id: number; + /** @example MDU6TGFiZWwyMDgwNDU5NDY= */ + node_id: string; + /** + * Format: uri + * @description URL for the label + * @example https://api.github.com/repositories/42/labels/bug + */ + url: string; + /** + * @description The name of the label. + * @example bug + */ + name: string; + /** @example Something isn't working */ + description: string | null; + /** + * @description 6-character hex code, without the leading #, identifying the color + * @example FFFFFF + */ + color: string; + /** @example true */ + default: boolean; + }; + /** + * Timeline Comment Event + * @description Timeline Comment Event + */ + "timeline-comment-event": { + event: string; + actor: components["schemas"]["simple-user"]; + /** + * @description Unique identifier of the issue comment + * @example 42 + */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue comment + * @example https://api.github.com/repositories/42/issues/comments/1 + */ + url: string; + /** + * @description Contents of the issue comment + * @example What version of Safari were you using when you observed this bug? + */ + body?: string; + body_text?: string; + body_html?: string; + /** Format: uri */ + html_url: string; + user: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** Format: uri */ + issue_url: string; + author_association: components["schemas"]["author-association"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Timeline Cross Referenced Event + * @description Timeline Cross Referenced Event + */ + "timeline-cross-referenced-event": { + event: string; + actor?: components["schemas"]["simple-user"]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + source: { + type?: string; + issue?: components["schemas"]["issue"]; + }; + }; + /** + * Timeline Committed Event + * @description Timeline Committed Event + */ + "timeline-committed-event": { + event?: string; + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + node_id: string; + /** Format: uri */ + url: string; + /** @description Identifying information for the git-user */ + author: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** @description Identifying information for the git-user */ + committer: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + tree: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + }; + parents: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string | null; + payload: string | null; + }; + /** Format: uri */ + html_url: string; + }; + /** + * Timeline Reviewed Event + * @description Timeline Reviewed Event + */ + "timeline-reviewed-event": { + event: string; + /** + * @description Unique identifier of the review + * @example 42 + */ + id: number; + /** @example MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= */ + node_id: string; + user: components["schemas"]["simple-user"]; + /** + * @description The text of the review. + * @example This looks great. + */ + body: string | null; + /** @example CHANGES_REQUESTED */ + state: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/12 + */ + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + /** Format: date-time */ + submitted_at?: string; + /** + * @description A commit SHA for the review. + * @example 54bb654c9e6025347f57900a4a5c2313a96b8035 + */ + commit_id: string; + body_html?: string; + body_text?: string; + author_association: components["schemas"]["author-association"]; + }; + /** + * Pull Request Review Comment + * @description Pull Request Review Comments are comments on a portion of the Pull Request's diff. + */ + "pull-request-review-comment": { + /** + * @description URL for the pull request review comment + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + */ + url: string; + /** + * @description The ID of the pull request review to which the comment belongs. + * @example 42 + */ + pull_request_review_id: number | null; + /** + * @description The ID of the pull request review comment. + * @example 1 + */ + id: number; + /** + * @description The node ID of the pull request review comment. + * @example MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw + */ + node_id: string; + /** + * @description The diff of the line that the comment refers to. + * @example @@ -16,33 +16,40 @@ public class Connection : IConnection... + */ + diff_hunk: string; + /** + * @description The relative path of the file to which the comment applies. + * @example config/database.yaml + */ + path: string; + /** + * @description The line index in the diff to which the comment applies. This field is deprecated; use `line` instead. + * @example 1 + */ + position?: number; + /** + * @description The index of the original line in the diff to which the comment applies. This field is deprecated; use `original_line` instead. + * @example 4 + */ + original_position?: number; + /** + * @description The SHA of the commit to which the comment applies. + * @example 6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + commit_id: string; + /** + * @description The SHA of the original commit to which the comment applies. + * @example 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 + */ + original_commit_id: string; + /** + * @description The comment ID to reply to. + * @example 8 + */ + in_reply_to_id?: number; + user: components["schemas"]["simple-user"]; + /** + * @description The text of the comment. + * @example We should probably include a check for null values here. + */ + body: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + * @example https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + */ + html_url: string; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1 + */ + pull_request_url: string; + author_association: components["schemas"]["author-association"]; + _links: { + self: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + */ + href: string; + }; + html: { + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + */ + href: string; + }; + pull_request: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1 + */ + href: string; + }; + }; + /** + * @description The first line of the range for a multi-line comment. + * @example 2 + */ + start_line?: number | null; + /** + * @description The first line of the range for a multi-line comment. + * @example 2 + */ + original_start_line?: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side?: "LEFT" | "RIGHT" | null; + /** + * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + line?: number; + /** + * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + original_line?: number; + /** + * @description The side of the diff to which the comment applies. The side of the last line of the range for a multi-line comment + * @default RIGHT + * @enum {string} + */ + side?: "LEFT" | "RIGHT"; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + reactions?: components["schemas"]["reaction-rollup"]; + /** @example "

comment body

" */ + body_html?: string; + /** @example "comment body" */ + body_text?: string; + }; + /** + * Timeline Line Commented Event + * @description Timeline Line Commented Event + */ + "timeline-line-commented-event": { + event?: string; + node_id?: string; + comments?: components["schemas"]["pull-request-review-comment"][]; + }; + /** + * Timeline Commit Commented Event + * @description Timeline Commit Commented Event + */ + "timeline-commit-commented-event": { + event?: string; + node_id?: string; + commit_id?: string; + comments?: components["schemas"]["commit-comment"][]; + }; + /** + * Timeline Assigned Issue Event + * @description Timeline Assigned Issue Event + */ + "timeline-assigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + assignee: components["schemas"]["simple-user"]; + }; + /** + * Timeline Unassigned Issue Event + * @description Timeline Unassigned Issue Event + */ + "timeline-unassigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + assignee: components["schemas"]["simple-user"]; + }; + /** + * State Change Issue Event + * @description State Change Issue Event + */ + "state-change-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + state_reason?: string | null; + }; + /** + * Timeline Event + * @description Timeline Event + */ + "timeline-issue-events": + | components["schemas"]["labeled-issue-event"] + | components["schemas"]["unlabeled-issue-event"] + | components["schemas"]["milestoned-issue-event"] + | components["schemas"]["demilestoned-issue-event"] + | components["schemas"]["renamed-issue-event"] + | components["schemas"]["review-requested-issue-event"] + | components["schemas"]["review-request-removed-issue-event"] + | components["schemas"]["review-dismissed-issue-event"] + | components["schemas"]["locked-issue-event"] + | components["schemas"]["added-to-project-issue-event"] + | components["schemas"]["moved-column-in-project-issue-event"] + | components["schemas"]["removed-from-project-issue-event"] + | components["schemas"]["converted-note-to-issue-issue-event"] + | components["schemas"]["timeline-comment-event"] + | components["schemas"]["timeline-cross-referenced-event"] + | components["schemas"]["timeline-committed-event"] + | components["schemas"]["timeline-reviewed-event"] + | components["schemas"]["timeline-line-commented-event"] + | components["schemas"]["timeline-commit-commented-event"] + | components["schemas"]["timeline-assigned-issue-event"] + | components["schemas"]["timeline-unassigned-issue-event"] + | components["schemas"]["state-change-issue-event"]; + /** + * Deploy Key + * @description An SSH key granting access to a single repository. + */ + "deploy-key": { + id: number; + key: string; + url: string; + title: string; + verified: boolean; + created_at: string; + read_only: boolean; + added_by?: string | null; + last_used?: string | null; + }; + /** + * Language + * @description Language + */ + language: { + [key: string]: number; + }; + /** + * License Content + * @description License Content + */ + "license-content": { + name: string; + path: string; + sha: string; + size: number; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + download_url: string | null; + type: string; + content: string; + encoding: string; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + license: components["schemas"]["nullable-license-simple"]; + }; + /** + * Merged upstream + * @description Results of a successful merge upstream request + */ + "merged-upstream": { + message?: string; + /** @enum {string} */ + merge_type?: "merge" | "fast-forward" | "none"; + base_branch?: string; + }; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1 + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/milestones/v1.0 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + */ + labels_url: string; + /** @example 1002604 */ + id: number; + /** @example MDk6TWlsZXN0b25lMTAwMjYwNA== */ + node_id: string; + /** + * @description The number of the milestone. + * @example 42 + */ + number: number; + /** + * @description The state of the milestone. + * @default open + * @example open + * @enum {string} + */ + state: "open" | "closed"; + /** + * @description The title of the milestone. + * @example v1.0 + */ + title: string; + /** @example Tracking milestone for version 1.0 */ + description: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** @example 4 */ + open_issues: number; + /** @example 8 */ + closed_issues: number; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2013-02-12T13:22:01Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2012-10-09T23:39:01Z + */ + due_on: string | null; + }; + /** Pages Source Hash */ + "pages-source-hash": { + branch: string; + path: string; + }; + /** Pages Https Certificate */ + "pages-https-certificate": { + /** + * @example approved + * @enum {string} + */ + state: + | "new" + | "authorization_created" + | "authorization_pending" + | "authorized" + | "authorization_revoked" + | "issued" + | "uploaded" + | "approved" + | "errored" + | "bad_authz" + | "destroy_pending" + | "dns_changed"; + /** @example Certificate is approved */ + description: string; + /** + * @description Array of the domain set and its alternate name (if it is configured) + * @example [ + * "example.com", + * "www.example.com" + * ] + */ + domains: string[]; + /** Format: date */ + expires_at?: string; + }; + /** + * GitHub Pages + * @description The configuration for GitHub Pages for a repository. + */ + page: { + /** + * Format: uri + * @description The API address for accessing this Page resource. + * @example https://api.github.com/repos/github/hello-world/pages + */ + url: string; + /** + * @description The status of the most recent build of the Page. + * @example built + * @enum {string|null} + */ + status: "built" | "building" | "errored" | null; + /** + * @description The Pages site's custom domain + * @example example.com + */ + cname: string | null; + /** + * @description The state if the domain is verified + * @example pending + * @enum {string|null} + */ + protected_domain_state?: "pending" | "verified" | "unverified" | null; + /** + * Format: date-time + * @description The timestamp when a pending domain becomes unverified. + */ + pending_domain_unverified_at?: string | null; + /** + * @description Whether the Page has a custom 404 page. + * @default false + * @example false + */ + custom_404: boolean; + /** + * Format: uri + * @description The web address the Page can be accessed from. + * @example https://example.com + */ + html_url?: string; + /** + * @description The process in which the Page will be built. + * @example legacy + * @enum {string|null} + */ + build_type?: "legacy" | "workflow" | null; + source?: components["schemas"]["pages-source-hash"]; + /** + * @description Whether the GitHub Pages site is publicly visible. If set to `true`, the site is accessible to anyone on the internet. If set to `false`, the site will only be accessible to users who have at least `read` access to the repository that published the site. + * @example true + */ + public: boolean; + https_certificate?: components["schemas"]["pages-https-certificate"]; + /** + * @description Whether https is enabled on the domain + * @example true + */ + https_enforced?: boolean; + }; + /** + * Page Build + * @description Page Build + */ + "page-build": { + /** Format: uri */ + url: string; + status: string; + error: { + message: string | null; + }; + pusher: components["schemas"]["nullable-simple-user"]; + commit: string; + duration: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Page Build Status + * @description Page Build Status + */ + "page-build-status": { + /** + * Format: uri + * @example https://api.github.com/repos/github/hello-world/pages/builds/latest + */ + url: string; + /** @example queued */ + status: string; + }; + /** + * GitHub Pages + * @description The GitHub Pages deployment status. + */ + "page-deployment": { + /** @description The ID of the GitHub Pages deployment. This is the Git SHA of the deployed commit. */ + id: number | string; + /** + * Format: uri + * @description The URI to monitor GitHub Pages deployment status. + * @example https://api.github.com/repos/github/hello-world/pages/deployments/4fd754f7e594640989b406850d0bc8f06a121251 + */ + status_url: string; + /** + * Format: uri + * @description The URI to the deployed GitHub Pages. + * @example hello-world.github.io + */ + page_url: string; + /** + * Format: uri + * @description The URI to the deployed GitHub Pages preview. + * @example monalisa-1231a2312sa32-23sda74.drafts.github.io + */ + preview_url?: string; + }; + /** GitHub Pages deployment status */ + "pages-deployment-status": { + /** + * @description The current status of the deployment. + * @enum {string} + */ + status?: + | "deployment_in_progress" + | "syncing_files" + | "finished_file_sync" + | "updating_pages" + | "purging_cdn" + | "deployment_cancelled" + | "deployment_failed" + | "deployment_content_failed" + | "deployment_attempt_error" + | "deployment_lost" + | "succeed"; + }; + /** + * Pages Health Check Status + * @description Pages Health Check Status + */ + "pages-health-check": { + domain?: { + host?: string; + uri?: string; + nameservers?: string; + dns_resolves?: boolean; + is_proxied?: boolean | null; + is_cloudflare_ip?: boolean | null; + is_fastly_ip?: boolean | null; + is_old_ip_address?: boolean | null; + is_a_record?: boolean | null; + has_cname_record?: boolean | null; + has_mx_records_present?: boolean | null; + is_valid_domain?: boolean; + is_apex_domain?: boolean; + should_be_a_record?: boolean | null; + is_cname_to_github_user_domain?: boolean | null; + is_cname_to_pages_dot_github_dot_com?: boolean | null; + is_cname_to_fastly?: boolean | null; + is_pointed_to_github_pages_ip?: boolean | null; + is_non_github_pages_ip_present?: boolean | null; + is_pages_domain?: boolean; + is_served_by_pages?: boolean | null; + is_valid?: boolean; + reason?: string | null; + responds_to_https?: boolean; + enforces_https?: boolean; + https_error?: string | null; + is_https_eligible?: boolean | null; + caa_error?: string | null; + }; + alt_domain?: { + host?: string; + uri?: string; + nameservers?: string; + dns_resolves?: boolean; + is_proxied?: boolean | null; + is_cloudflare_ip?: boolean | null; + is_fastly_ip?: boolean | null; + is_old_ip_address?: boolean | null; + is_a_record?: boolean | null; + has_cname_record?: boolean | null; + has_mx_records_present?: boolean | null; + is_valid_domain?: boolean; + is_apex_domain?: boolean; + should_be_a_record?: boolean | null; + is_cname_to_github_user_domain?: boolean | null; + is_cname_to_pages_dot_github_dot_com?: boolean | null; + is_cname_to_fastly?: boolean | null; + is_pointed_to_github_pages_ip?: boolean | null; + is_non_github_pages_ip_present?: boolean | null; + is_pages_domain?: boolean; + is_served_by_pages?: boolean | null; + is_valid?: boolean; + reason?: string | null; + responds_to_https?: boolean; + enforces_https?: boolean; + https_error?: string | null; + is_https_eligible?: boolean | null; + caa_error?: string | null; + } | null; + }; + /** + * Pull Request + * @description Pull requests let you tell others about changes you've pushed to a repository on GitHub. Once a pull request is sent, interested parties can review the set of changes, discuss potential modifications, and even push follow-up commits if necessary. + */ + "pull-request": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347 + */ + url: string; + /** @example 1 */ + id: number; + /** @example MDExOlB1bGxSZXF1ZXN0MQ== */ + node_id: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347 + */ + html_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.diff + */ + diff_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.patch + */ + patch_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + */ + commits_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + */ + review_comments_url: string; + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} */ + review_comment_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + */ + comments_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + statuses_url: string; + /** + * @description Number uniquely identifying the pull request within its repository. + * @example 42 + */ + number: number; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @example open + * @enum {string} + */ + state: "open" | "closed"; + /** @example true */ + locked: boolean; + /** + * @description The title of the pull request. + * @example Amazing new feature + */ + title: string; + user: components["schemas"]["simple-user"]; + /** @example Please pull these awesome changes */ + body: string | null; + labels: { + /** Format: int64 */ + id: number; + node_id: string; + url: string; + name: string; + description: string | null; + color: string; + default: boolean; + }[]; + milestone: components["schemas"]["nullable-milestone"]; + /** @example too heated */ + active_lock_reason?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + merged_at: string | null; + /** @example e5bd3914e2e596debea16f433f57875b5b90bcd6 */ + merge_commit_sha: string | null; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + requested_reviewers?: components["schemas"]["simple-user"][] | null; + requested_teams?: components["schemas"]["team-simple"][] | null; + head: { + label: string; + ref: string; + repo: { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + milestones_url: string; + name: string; + notifications_url: string; + owner: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + private: boolean; + pulls_url: string; + releases_url: string; + /** Format: uri */ + stargazers_url: string; + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + trees_url: string; + /** Format: uri */ + url: string; + clone_url: string; + default_branch: string; + forks: number; + forks_count: number; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_discussions: boolean; + /** Format: uri */ + homepage: string | null; + language: string | null; + master_branch?: string; + archived: boolean; + disabled: boolean; + /** @description The repository visibility: public, private, or internal. */ + visibility?: string; + /** Format: uri */ + mirror_url: string | null; + open_issues: number; + open_issues_count: number; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + license: { + key: string; + name: string; + /** Format: uri */ + url: string | null; + spdx_id: string | null; + node_id: string; + } | null; + /** Format: date-time */ + pushed_at: string; + size: number; + ssh_url: string; + stargazers_count: number; + /** Format: uri */ + svn_url: string; + topics?: string[]; + watchers: number; + watchers_count: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + allow_forking?: boolean; + is_template?: boolean; + web_commit_signoff_required?: boolean; + } | null; + sha: string; + user: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + }; + base: { + label: string; + ref: string; + repo: { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + id: number; + is_template?: boolean; + node_id: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + milestones_url: string; + name: string; + notifications_url: string; + owner: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + private: boolean; + pulls_url: string; + releases_url: string; + /** Format: uri */ + stargazers_url: string; + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + trees_url: string; + /** Format: uri */ + url: string; + clone_url: string; + default_branch: string; + forks: number; + forks_count: number; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_discussions: boolean; + /** Format: uri */ + homepage: string | null; + language: string | null; + master_branch?: string; + archived: boolean; + disabled: boolean; + /** @description The repository visibility: public, private, or internal. */ + visibility?: string; + /** Format: uri */ + mirror_url: string | null; + open_issues: number; + open_issues_count: number; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + license: components["schemas"]["nullable-license-simple"]; + /** Format: date-time */ + pushed_at: string; + size: number; + ssh_url: string; + stargazers_count: number; + /** Format: uri */ + svn_url: string; + topics?: string[]; + watchers: number; + watchers_count: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + allow_forking?: boolean; + web_commit_signoff_required?: boolean; + }; + sha: string; + user: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + }; + _links: { + comments: components["schemas"]["link"]; + commits: components["schemas"]["link"]; + statuses: components["schemas"]["link"]; + html: components["schemas"]["link"]; + issue: components["schemas"]["link"]; + review_comments: components["schemas"]["link"]; + review_comment: components["schemas"]["link"]; + self: components["schemas"]["link"]; + }; + author_association: components["schemas"]["author-association"]; + auto_merge: components["schemas"]["auto-merge"]; + /** + * @description Indicates whether or not the pull request is a draft. + * @example false + */ + draft?: boolean; + merged: boolean; + /** @example true */ + mergeable: boolean | null; + /** @example true */ + rebaseable?: boolean | null; + /** @example clean */ + mergeable_state: string; + merged_by: components["schemas"]["nullable-simple-user"]; + /** @example 10 */ + comments: number; + /** @example 0 */ + review_comments: number; + /** + * @description Indicates whether maintainers can modify the pull request. + * @example true + */ + maintainer_can_modify: boolean; + /** @example 3 */ + commits: number; + /** @example 100 */ + additions: number; + /** @example 3 */ + deletions: number; + /** @example 5 */ + changed_files: number; + }; + /** + * Pull Request Merge Result + * @description Pull Request Merge Result + */ + "pull-request-merge-result": { + sha: string; + merged: boolean; + message: string; + }; + /** + * Pull Request Review Request + * @description Pull Request Review Request + */ + "pull-request-review-request": { + users: components["schemas"]["simple-user"][]; + teams: components["schemas"]["team"][]; + }; + /** + * Pull Request Review + * @description Pull Request Reviews are reviews on pull requests. + */ + "pull-request-review": { + /** + * @description Unique identifier of the review + * @example 42 + */ + id: number; + /** @example MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= */ + node_id: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description The text of the review. + * @example This looks great. + */ + body: string; + /** @example CHANGES_REQUESTED */ + state: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/12 + */ + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + /** Format: date-time */ + submitted_at?: string; + /** + * @description A commit SHA for the review. If the commit object was garbage collected or forcibly deleted, then it no longer exists in Git and this value will be `null`. + * @example 54bb654c9e6025347f57900a4a5c2313a96b8035 + */ + commit_id: string | null; + body_html?: string; + body_text?: string; + author_association: components["schemas"]["author-association"]; + }; + /** + * Legacy Review Comment + * @description Legacy Review Comment + */ + "review-comment": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + */ + url: string; + /** @example 42 */ + pull_request_review_id: number | null; + /** @example 10 */ + id: number; + /** @example MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw */ + node_id: string; + /** @example @@ -16,33 +16,40 @@ public class Connection : IConnection... */ + diff_hunk: string; + /** @example file1.txt */ + path: string; + /** @example 1 */ + position: number | null; + /** @example 4 */ + original_position: number; + /** @example 6dcb09b5b57875f334f61aebed695e2e4193db5e */ + commit_id: string; + /** @example 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 */ + original_commit_id: string; + /** @example 8 */ + in_reply_to_id?: number; + user: components["schemas"]["nullable-simple-user"]; + /** @example Great stuff */ + body: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1 + */ + pull_request_url: string; + author_association: components["schemas"]["author-association"]; + _links: { + self: components["schemas"]["link"]; + html: components["schemas"]["link"]; + pull_request: components["schemas"]["link"]; + }; + body_text?: string; + body_html?: string; + reactions?: components["schemas"]["reaction-rollup"]; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string} + */ + side?: "LEFT" | "RIGHT"; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side?: "LEFT" | "RIGHT" | null; + /** + * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + line?: number; + /** + * @description The original line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + original_line?: number; + /** + * @description The first line of the range for a multi-line comment. + * @example 2 + */ + start_line?: number | null; + /** + * @description The original first line of the range for a multi-line comment. + * @example 2 + */ + original_start_line?: number | null; + }; + /** + * Release Asset + * @description Data related to a release. + */ + "release-asset": { + /** Format: uri */ + url: string; + /** Format: uri */ + browser_download_url: string; + id: number; + node_id: string; + /** + * @description The file name of the asset. + * @example Team Environment + */ + name: string; + label: string | null; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded" | "open"; + content_type: string; + size: number; + download_count: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + uploader: components["schemas"]["nullable-simple-user"]; + }; + /** + * Release + * @description A release. + */ + release: { + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + assets_url: string; + upload_url: string; + /** Format: uri */ + tarball_url: string | null; + /** Format: uri */ + zipball_url: string | null; + id: number; + node_id: string; + /** + * @description The name of the tag. + * @example v1.0.0 + */ + tag_name: string; + /** + * @description Specifies the commitish value that determines where the Git tag is created from. + * @example master + */ + target_commitish: string; + name: string | null; + body?: string | null; + /** + * @description true to create a draft (unpublished) release, false to create a published one. + * @example false + */ + draft: boolean; + /** + * @description Whether to identify the release as a prerelease or a full release. + * @example false + */ + prerelease: boolean; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + published_at: string | null; + author: components["schemas"]["simple-user"]; + assets: components["schemas"]["release-asset"][]; + body_html?: string; + body_text?: string; + mentions_count?: number; + /** + * Format: uri + * @description The URL of the release discussion. + */ + discussion_url?: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Generated Release Notes Content + * @description Generated name and body describing a release + */ + "release-notes-content": { + /** + * @description The generated name of the release + * @example Release v1.0.0 is now available! + */ + name: string; + /** @description The generated body describing the contents of the release supporting markdown formatting */ + body: string; + }; + /** + * repository ruleset data for rule + * @description User-defined metadata to store domain-specific information limited to 8 keys with scalar values. + */ + "repository-rule-ruleset-info": { + /** + * @description The type of source for the ruleset that includes this rule. + * @enum {string} + */ + ruleset_source_type?: "Repository" | "Organization"; + /** @description The name of the source of the ruleset that includes this rule. */ + ruleset_source?: string; + /** @description The ID of the ruleset that includes this rule. */ + ruleset_id?: number; + }; + /** + * Repository Rule + * @description A repository rule with ruleset details. + */ + "repository-rule-detailed": + | (components["schemas"]["repository-rule-creation"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-update"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-deletion"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-required-linear-history"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-required-deployments"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-required-signatures"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-pull-request"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-required-status-checks"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-non-fast-forward"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-commit-message-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-commit-author-email-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-committer-email-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-branch-name-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-tag-name-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-workflows"] & + components["schemas"]["repository-rule-ruleset-info"]); + "secret-scanning-alert": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["nullable-alert-updated-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + /** + * Format: uri + * @description The REST API URL of the code locations for this alert. + */ + locations_url?: string; + state?: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + /** + * Format: date-time + * @description The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + resolved_at?: string | null; + resolved_by?: components["schemas"]["nullable-simple-user"]; + /** @description An optional comment to resolve an alert. */ + resolution_comment?: string | null; + /** @description The type of secret that secret scanning detected. */ + secret_type?: string; + /** + * @description User-friendly name for the detected secret, matching the `secret_type`. + * For a list of built-in patterns, see "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)." + */ + secret_type_display_name?: string; + /** @description The secret that was detected. */ + secret?: string; + /** @description Whether push protection was bypassed for the detected secret. */ + push_protection_bypassed?: boolean | null; + push_protection_bypassed_by?: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + push_protection_bypassed_at?: string | null; + /** + * @description The token status as of the latest validity check. + * @enum {string} + */ + validity?: "active" | "inactive" | "unknown"; + }; + /** @description An optional comment when closing an alert. Cannot be updated or deleted. Must be `null` when changing `state` to `open`. */ + "secret-scanning-alert-resolution-comment": string | null; + /** @description Represents a 'commit' secret scanning location type. This location type shows that a secret was detected inside a commit to a repository. */ + "secret-scanning-location-commit": { + /** + * @description The file path in the repository + * @example /example/secrets.txt + */ + path: string; + /** @description Line number at which the secret starts in the file */ + start_line: number; + /** @description Line number at which the secret ends in the file */ + end_line: number; + /** @description The column at which the secret starts within the start line when the file is interpreted as 8BIT ASCII */ + start_column: number; + /** @description The column at which the secret ends within the end line when the file is interpreted as 8BIT ASCII */ + end_column: number; + /** + * @description SHA-1 hash ID of the associated blob + * @example af5626b4a114abcb82d63db7c8082c3c4756e51b + */ + blob_sha: string; + /** @description The API URL to get the associated blob resource */ + blob_url: string; + /** + * @description SHA-1 hash ID of the associated commit + * @example af5626b4a114abcb82d63db7c8082c3c4756e51b + */ + commit_sha: string; + /** @description The API URL to get the associated commit resource */ + commit_url: string; + }; + /** @description Represents a 'wiki_commit' secret scanning location type. This location type shows that a secret was detected inside a commit to a repository wiki. */ + "secret-scanning-location-wiki-commit": { + /** + * @description The file path of the wiki page + * @example /example/Home.md + */ + path: string; + /** @description Line number at which the secret starts in the file */ + start_line: number; + /** @description Line number at which the secret ends in the file */ + end_line: number; + /** @description The column at which the secret starts within the start line when the file is interpreted as 8-bit ASCII. */ + start_column: number; + /** @description The column at which the secret ends within the end line when the file is interpreted as 8-bit ASCII. */ + end_column: number; + /** + * @description SHA-1 hash ID of the associated blob + * @example af5626b4a114abcb82d63db7c8082c3c4756e51b + */ + blob_sha: string; + /** + * @description The GitHub URL to get the associated wiki page + * @example https://github.com/octocat/Hello-World/wiki/Home/302c0b7e200761c9dd9b57e57db540ee0b4293a5 + */ + page_url: string; + /** + * @description SHA-1 hash ID of the associated commit + * @example 302c0b7e200761c9dd9b57e57db540ee0b4293a5 + */ + commit_sha: string; + /** + * @description The GitHub URL to get the associated wiki commit + * @example https://github.com/octocat/Hello-World/wiki/_compare/302c0b7e200761c9dd9b57e57db540ee0b4293a5 + */ + commit_url: string; + }; + /** @description Represents an 'issue_title' secret scanning location type. This location type shows that a secret was detected in the title of an issue. */ + "secret-scanning-location-issue-title": { + /** + * Format: uri + * @description The API URL to get the issue where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_title_url: string; + }; + /** @description Represents an 'issue_body' secret scanning location type. This location type shows that a secret was detected in the body of an issue. */ + "secret-scanning-location-issue-body": { + /** + * Format: uri + * @description The API URL to get the issue where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_body_url: string; + }; + /** @description Represents an 'issue_comment' secret scanning location type. This location type shows that a secret was detected in a comment on an issue. */ + "secret-scanning-location-issue-comment": { + /** + * Format: uri + * @description The API URL to get the issue comment where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/issues/comments/1081119451 + */ + issue_comment_url: string; + }; + /** @description Represents a 'discussion_title' secret scanning location type. This location type shows that a secret was detected in the title of a discussion. */ + "secret-scanning-location-discussion-title": { + /** + * Format: uri + * @description The URL to the discussion where the secret was detected. + * @example https://github.com/community/community/discussions/39082 + */ + discussion_title_url: string; + }; + /** @description Represents a 'discussion_body' secret scanning location type. This location type shows that a secret was detected in the body of a discussion. */ + "secret-scanning-location-discussion-body": { + /** + * Format: uri + * @description The URL to the discussion where the secret was detected. + * @example https://github.com/community/community/discussions/39082#discussion-4566270 + */ + discussion_body_url: string; + }; + /** @description Represents a 'discussion_comment' secret scanning location type. This location type shows that a secret was detected in a comment on a discussion. */ + "secret-scanning-location-discussion-comment": { + /** + * Format: uri + * @description The API URL to get the discussion comment where the secret was detected. + * @example https://github.com/community/community/discussions/39082#discussioncomment-4158232 + */ + discussion_comment_url: string; + }; + /** @description Represents a 'pull_request_title' secret scanning location type. This location type shows that a secret was detected in the title of a pull request. */ + "secret-scanning-location-pull-request-title": { + /** + * Format: uri + * @description The API URL to get the pull request where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/pull/2846 + */ + pull_request_title_url: string; + }; + /** @description Represents a 'pull_request_body' secret scanning location type. This location type shows that a secret was detected in the body of a pull request. */ + "secret-scanning-location-pull-request-body": { + /** + * Format: uri + * @description The API URL to get the pull request where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/pull/2846 + */ + pull_request_body_url: string; + }; + /** @description Represents a 'pull_request_comment' secret scanning location type. This location type shows that a secret was detected in a comment on a pull request. */ + "secret-scanning-location-pull-request-comment": { + /** + * Format: uri + * @description The API URL to get the pull request comment where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/issues/comments/1081119451 + */ + pull_request_comment_url: string; + }; + /** @description Represents a 'pull_request_review' secret scanning location type. This location type shows that a secret was detected in a review on a pull request. */ + "secret-scanning-location-pull-request-review": { + /** + * Format: uri + * @description The API URL to get the pull request review where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/pulls/2846/reviews/80 + */ + pull_request_review_url: string; + }; + /** @description Represents a 'pull_request_review_comment' secret scanning location type. This location type shows that a secret was detected in a review comment on a pull request. */ + "secret-scanning-location-pull-request-review-comment": { + /** + * Format: uri + * @description The API URL to get the pull request review comment where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/12 + */ + pull_request_review_comment_url: string; + }; + "secret-scanning-location": { + /** + * @description The location type. Because secrets may be found in different types of resources (ie. code, comments, issues, pull requests, discussions), this field identifies the type of resource where the secret was found. + * @example commit + * @enum {string} + */ + type?: + | "commit" + | "wiki_commit" + | "issue_title" + | "issue_body" + | "issue_comment" + | "discussion_title" + | "discussion_body" + | "discussion_comment" + | "pull_request_title" + | "pull_request_body" + | "pull_request_comment" + | "pull_request_review" + | "pull_request_review_comment"; + details?: + | components["schemas"]["secret-scanning-location-commit"] + | components["schemas"]["secret-scanning-location-wiki-commit"] + | components["schemas"]["secret-scanning-location-issue-title"] + | components["schemas"]["secret-scanning-location-issue-body"] + | components["schemas"]["secret-scanning-location-issue-comment"] + | components["schemas"]["secret-scanning-location-discussion-title"] + | components["schemas"]["secret-scanning-location-discussion-body"] + | components["schemas"]["secret-scanning-location-discussion-comment"] + | components["schemas"]["secret-scanning-location-pull-request-title"] + | components["schemas"]["secret-scanning-location-pull-request-body"] + | components["schemas"]["secret-scanning-location-pull-request-comment"] + | components["schemas"]["secret-scanning-location-pull-request-review"] + | components["schemas"]["secret-scanning-location-pull-request-review-comment"]; + }; + "repository-advisory-create": { + /** @description A short summary of the advisory. */ + summary: string; + /** @description A detailed description of what the advisory impacts. */ + description: string; + /** @description The Common Vulnerabilities and Exposures (CVE) ID. */ + cve_id?: string | null; + /** @description A product affected by the vulnerability detailed in a repository security advisory. */ + vulnerabilities: { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name?: string | null; + }; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range?: string | null; + /** @description The package version(s) that resolve the vulnerability. */ + patched_versions?: string | null; + /** @description The functions in the package that are affected. */ + vulnerable_functions?: string[] | null; + }[]; + /** @description A list of Common Weakness Enumeration (CWE) IDs. */ + cwe_ids?: string[] | null; + /** @description A list of users receiving credit for their participation in the security advisory. */ + credits?: + | { + /** @description The username of the user credited. */ + login: string; + type: components["schemas"]["security-advisory-credit-types"]; + }[] + | null; + /** + * @description The severity of the advisory. You must choose between setting this field or `cvss_vector_string`. + * @enum {string|null} + */ + severity?: "critical" | "high" | "medium" | "low" | null; + /** @description The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`. */ + cvss_vector_string?: string | null; + /** + * @description Whether to create a temporary private fork of the repository to collaborate on a fix. + * @default false + */ + start_private_fork?: boolean; + }; + "private-vulnerability-report-create": { + /** @description A short summary of the advisory. */ + summary: string; + /** @description A detailed description of what the advisory impacts. */ + description: string; + /** @description An array of products affected by the vulnerability detailed in a repository security advisory. */ + vulnerabilities?: + | { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name?: string | null; + }; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range?: string | null; + /** @description The package version(s) that resolve the vulnerability. */ + patched_versions?: string | null; + /** @description The functions in the package that are affected. */ + vulnerable_functions?: string[] | null; + }[] + | null; + /** @description A list of Common Weakness Enumeration (CWE) IDs. */ + cwe_ids?: string[] | null; + /** + * @description The severity of the advisory. You must choose between setting this field or `cvss_vector_string`. + * @enum {string|null} + */ + severity?: "critical" | "high" | "medium" | "low" | null; + /** @description The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`. */ + cvss_vector_string?: string | null; + /** + * @description Whether to create a temporary private fork of the repository to collaborate on a fix. + * @default false + */ + start_private_fork?: boolean; + }; + "repository-advisory-update": { + /** @description A short summary of the advisory. */ + summary?: string; + /** @description A detailed description of what the advisory impacts. */ + description?: string; + /** @description The Common Vulnerabilities and Exposures (CVE) ID. */ + cve_id?: string | null; + /** @description A product affected by the vulnerability detailed in a repository security advisory. */ + vulnerabilities?: { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name?: string | null; + }; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range?: string | null; + /** @description The package version(s) that resolve the vulnerability. */ + patched_versions?: string | null; + /** @description The functions in the package that are affected. */ + vulnerable_functions?: string[] | null; + }[]; + /** @description A list of Common Weakness Enumeration (CWE) IDs. */ + cwe_ids?: string[] | null; + /** @description A list of users receiving credit for their participation in the security advisory. */ + credits?: + | { + /** @description The username of the user credited. */ + login: string; + type: components["schemas"]["security-advisory-credit-types"]; + }[] + | null; + /** + * @description The severity of the advisory. You must choose between setting this field or `cvss_vector_string`. + * @enum {string|null} + */ + severity?: "critical" | "high" | "medium" | "low" | null; + /** @description The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`. */ + cvss_vector_string?: string | null; + /** + * @description The state of the advisory. + * @enum {string} + */ + state?: "published" | "closed" | "draft"; + /** @description A list of usernames who have been granted write access to the advisory. */ + collaborating_users?: string[] | null; + /** @description A list of team slugs which have been granted write access to the advisory. */ + collaborating_teams?: string[] | null; + }; + /** + * Stargazer + * @description Stargazer + */ + stargazer: { + /** Format: date-time */ + starred_at: string; + user: components["schemas"]["nullable-simple-user"]; + }; + /** + * Code Frequency Stat + * @description Code Frequency Stat + */ + "code-frequency-stat": number[]; + /** + * Commit Activity + * @description Commit Activity + */ + "commit-activity": { + /** + * @example [ + * 0, + * 3, + * 26, + * 20, + * 39, + * 1, + * 0 + * ] + */ + days: number[]; + /** @example 89 */ + total: number; + /** @example 1336280400 */ + week: number; + }; + /** + * Contributor Activity + * @description Contributor Activity + */ + "contributor-activity": { + author: components["schemas"]["nullable-simple-user"]; + /** @example 135 */ + total: number; + /** + * @example [ + * { + * "w": "1367712000", + * "a": 6898, + * "d": 77, + * "c": 10 + * } + * ] + */ + weeks: { + w?: number; + a?: number; + d?: number; + c?: number; + }[]; + }; + /** Participation Stats */ + "participation-stats": { + all: number[]; + owner: number[]; + }; + /** + * Repository Invitation + * @description Repository invitations let you manage who you collaborate with. + */ + "repository-subscription": { + /** + * @description Determines if notifications should be received from this repository. + * @example true + */ + subscribed: boolean; + /** @description Determines if all notifications should be blocked from this repository. */ + ignored: boolean; + reason: string | null; + /** + * Format: date-time + * @example 2012-10-06T21:34:12Z + */ + created_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/subscription + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + }; + /** + * Tag + * @description Tag + */ + tag: { + /** @example v0.1 */ + name: string; + commit: { + sha: string; + /** Format: uri */ + url: string; + }; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/zipball/v0.1 + */ + zipball_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/tarball/v0.1 + */ + tarball_url: string; + node_id: string; + }; + /** + * Tag protection + * @description Tag protection + */ + "tag-protection": { + /** @example 2 */ + id?: number; + /** @example 2011-01-26T19:01:12Z */ + created_at?: string; + /** @example 2011-01-26T19:01:12Z */ + updated_at?: string; + /** @example true */ + enabled?: boolean; + /** @example v1.* */ + pattern: string; + }; + /** + * Topic + * @description A topic aggregates entities that are related to a subject. + */ + topic: { + names: string[]; + }; + /** Traffic */ + traffic: { + /** Format: date-time */ + timestamp: string; + uniques: number; + count: number; + }; + /** + * Clone Traffic + * @description Clone Traffic + */ + "clone-traffic": { + /** @example 173 */ + count: number; + /** @example 128 */ + uniques: number; + clones: components["schemas"]["traffic"][]; + }; + /** + * Content Traffic + * @description Content Traffic + */ + "content-traffic": { + /** @example /github/hubot */ + path: string; + /** @example github/hubot: A customizable life embetterment robot. */ + title: string; + /** @example 3542 */ + count: number; + /** @example 2225 */ + uniques: number; + }; + /** + * Referrer Traffic + * @description Referrer Traffic + */ + "referrer-traffic": { + /** @example Google */ + referrer: string; + /** @example 4 */ + count: number; + /** @example 3 */ + uniques: number; + }; + /** + * View Traffic + * @description View Traffic + */ + "view-traffic": { + /** @example 14850 */ + count: number; + /** @example 3782 */ + uniques: number; + views: components["schemas"]["traffic"][]; + }; + /** Search Result Text Matches */ + "search-result-text-matches": { + object_url?: string; + object_type?: string | null; + property?: string; + fragment?: string; + matches?: { + text?: string; + indices?: number[]; + }[]; + }[]; + /** + * Code Search Result Item + * @description Code Search Result Item + */ + "code-search-result-item": { + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string; + /** Format: uri */ + html_url: string; + repository: components["schemas"]["minimal-repository"]; + score: number; + file_size?: number; + language?: string | null; + /** Format: date-time */ + last_modified_at?: string; + /** + * @example [ + * "73..77", + * "77..78" + * ] + */ + line_numbers?: string[]; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Commit Search Result Item + * @description Commit Search Result Item + */ + "commit-search-result-item": { + /** Format: uri */ + url: string; + sha: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + comments_url: string; + commit: { + author: { + name: string; + email: string; + /** Format: date-time */ + date: string; + }; + committer: components["schemas"]["nullable-git-user"]; + comment_count: number; + message: string; + tree: { + sha: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + url: string; + verification?: components["schemas"]["verification"]; + }; + author: components["schemas"]["nullable-simple-user"]; + committer: components["schemas"]["nullable-git-user"]; + parents: { + url?: string; + html_url?: string; + sha?: string; + }[]; + repository: components["schemas"]["minimal-repository"]; + score: number; + node_id: string; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Issue Search Result Item + * @description Issue Search Result Item + */ + "issue-search-result-item": { + /** Format: uri */ + url: string; + /** Format: uri */ + repository_url: string; + labels_url: string; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + node_id: string; + number: number; + title: string; + locked: boolean; + active_lock_reason?: string | null; + assignees?: components["schemas"]["simple-user"][] | null; + user: components["schemas"]["nullable-simple-user"]; + labels: { + /** Format: int64 */ + id?: number; + node_id?: string; + url?: string; + name?: string; + color?: string; + default?: boolean; + description?: string | null; + }[]; + state: string; + state_reason?: string | null; + assignee: components["schemas"]["nullable-simple-user"]; + milestone: components["schemas"]["nullable-milestone"]; + comments: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + closed_at: string | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + pull_request?: { + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + diff_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + patch_url: string | null; + /** Format: uri */ + url: string | null; + }; + body?: string; + score: number; + author_association: components["schemas"]["author-association"]; + draft?: boolean; + repository?: components["schemas"]["repository"]; + body_html?: string; + body_text?: string; + /** Format: uri */ + timeline_url?: string; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Label Search Result Item + * @description Label Search Result Item + */ + "label-search-result-item": { + id: number; + node_id: string; + /** Format: uri */ + url: string; + name: string; + color: string; + default: boolean; + description: string | null; + score: number; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Repo Search Result Item + * @description Repo Search Result Item + */ + "repo-search-result-item": { + id: number; + node_id: string; + name: string; + full_name: string; + owner: components["schemas"]["nullable-simple-user"]; + private: boolean; + /** Format: uri */ + html_url: string; + description: string | null; + fork: boolean; + /** Format: uri */ + url: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + pushed_at: string; + /** Format: uri */ + homepage: string | null; + size: number; + stargazers_count: number; + watchers_count: number; + language: string | null; + forks_count: number; + open_issues_count: number; + master_branch?: string; + default_branch: string; + score: number; + /** Format: uri */ + forks_url: string; + keys_url: string; + collaborators_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri */ + hooks_url: string; + issue_events_url: string; + /** Format: uri */ + events_url: string; + assignees_url: string; + branches_url: string; + /** Format: uri */ + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + /** Format: uri */ + merges_url: string; + archive_url: string; + /** Format: uri */ + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + releases_url: string; + /** Format: uri */ + deployments_url: string; + git_url: string; + ssh_url: string; + clone_url: string; + /** Format: uri */ + svn_url: string; + forks: number; + open_issues: number; + watchers: number; + topics?: string[]; + /** Format: uri */ + mirror_url: string | null; + has_issues: boolean; + has_projects: boolean; + has_pages: boolean; + has_wiki: boolean; + has_downloads: boolean; + has_discussions?: boolean; + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** @description The repository visibility: public, private, or internal. */ + visibility?: string; + license: components["schemas"]["nullable-license-simple"]; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + text_matches?: components["schemas"]["search-result-text-matches"]; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + allow_auto_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_forking?: boolean; + is_template?: boolean; + /** @example false */ + web_commit_signoff_required?: boolean; + }; + /** + * Topic Search Result Item + * @description Topic Search Result Item + */ + "topic-search-result-item": { + name: string; + display_name: string | null; + short_description: string | null; + description: string | null; + created_by: string | null; + released: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + featured: boolean; + curated: boolean; + score: number; + repository_count?: number | null; + /** Format: uri */ + logo_url?: string | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + related?: + | { + topic_relation?: { + id?: number; + name?: string; + topic_id?: number; + relation_type?: string; + }; + }[] + | null; + aliases?: + | { + topic_relation?: { + id?: number; + name?: string; + topic_id?: number; + relation_type?: string; + }; + }[] + | null; + }; + /** + * User Search Result Item + * @description User Search Result Item + */ + "user-search-result-item": { + login: string; + id: number; + node_id: string; + /** Format: uri */ + avatar_url: string; + gravatar_id: string | null; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + followers_url: string; + /** Format: uri */ + subscriptions_url: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + repos_url: string; + /** Format: uri */ + received_events_url: string; + type: string; + score: number; + following_url: string; + gists_url: string; + starred_url: string; + events_url: string; + public_repos?: number; + public_gists?: number; + followers?: number; + following?: number; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + updated_at?: string; + name?: string | null; + bio?: string | null; + /** Format: email */ + email?: string | null; + location?: string | null; + site_admin: boolean; + hireable?: boolean | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + blog?: string | null; + company?: string | null; + /** Format: date-time */ + suspended_at?: string | null; + }; + /** + * Private User + * @description Private User + */ + "private-user": { + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example monalisa octocat */ + name: string | null; + /** @example GitHub */ + company: string | null; + /** @example https://github.com/blog */ + blog: string | null; + /** @example San Francisco */ + location: string | null; + /** + * Format: email + * @example octocat@github.com + */ + email: string | null; + hireable: boolean | null; + /** @example There once was... */ + bio: string | null; + /** @example monalisa */ + twitter_username?: string | null; + /** @example 2 */ + public_repos: number; + /** @example 1 */ + public_gists: number; + /** @example 20 */ + followers: number; + /** @example 0 */ + following: number; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + created_at: string; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + updated_at: string; + /** @example 81 */ + private_gists: number; + /** @example 100 */ + total_private_repos: number; + /** @example 100 */ + owned_private_repos: number; + /** @example 10000 */ + disk_usage: number; + /** @example 8 */ + collaborators: number; + /** @example true */ + two_factor_authentication: boolean; + plan?: { + collaborators: number; + name: string; + space: number; + private_repos: number; + }; + /** Format: date-time */ + suspended_at?: string | null; + business_plus?: boolean; + ldap_dn?: string; + }; + /** + * Codespaces Secret + * @description Secrets for a GitHub Codespace. + */ + "codespaces-secret": { + /** + * @description The name of the secret + * @example SECRET_NAME + */ + name: string; + /** + * Format: date-time + * @description The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the secret was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + updated_at: string; + /** + * @description The type of repositories in the organization that the secret is visible to + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @description The API URL at which the list of repositories this secret is visible to can be retrieved + * @example https://api.github.com/user/secrets/SECRET_NAME/repositories + */ + selected_repositories_url: string; + }; + /** + * CodespacesUserPublicKey + * @description The public key used for setting user Codespaces' Secrets. + */ + "codespaces-user-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + }; + /** + * Fetches information about an export of a codespace. + * @description An export of a codespace. Also, latest export details for a codespace can be fetched with id = latest + */ + "codespace-export-details": { + /** + * @description State of the latest export + * @example succeeded | failed | in_progress + */ + state?: string | null; + /** + * Format: date-time + * @description Completion time of the last export operation + * @example 2021-01-01T19:01:12Z + */ + completed_at?: string | null; + /** + * @description Name of the exported branch + * @example codespace-monalisa-octocat-hello-world-g4wpq6h95q + */ + branch?: string | null; + /** + * @description Git commit SHA of the exported branch + * @example fd95a81ca01e48ede9f39c799ecbcef817b8a3b2 + */ + sha?: string | null; + /** + * @description Id for the export details + * @example latest + */ + id?: string; + /** + * @description Url for fetching export details + * @example https://api.github.com/user/codespaces/:name/exports/latest + */ + export_url?: string; + /** + * @description Web url for the exported branch + * @example https://github.com/octocat/hello-world/tree/:branch + */ + html_url?: string | null; + }; + /** + * Codespace + * @description A codespace. + */ + "codespace-with-full-repository": { + /** @example 1 */ + id: number; + /** + * @description Automatically generated name of this codespace. + * @example monalisa-octocat-hello-world-g4wpq6h95q + */ + name: string; + /** + * @description Display name for this codespace. + * @example bookish space pancake + */ + display_name?: string | null; + /** + * @description UUID identifying this codespace's environment. + * @example 26a7c758-7299-4a73-b978-5a92a7ae98a0 + */ + environment_id: string | null; + owner: components["schemas"]["simple-user"]; + billable_owner: components["schemas"]["simple-user"]; + repository: components["schemas"]["full-repository"]; + machine: components["schemas"]["nullable-codespace-machine"]; + /** + * @description Path to devcontainer.json from repo root used to create Codespace. + * @example .devcontainer/example/devcontainer.json + */ + devcontainer_path?: string | null; + /** + * @description Whether the codespace was created from a prebuild. + * @example false + */ + prebuild: boolean | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @description Last known time this codespace was started. + * @example 2011-01-26T19:01:12Z + */ + last_used_at: string; + /** + * @description State of this codespace. + * @example Available + * @enum {string} + */ + state: + | "Unknown" + | "Created" + | "Queued" + | "Provisioning" + | "Available" + | "Awaiting" + | "Unavailable" + | "Deleted" + | "Moved" + | "Shutdown" + | "Archived" + | "Starting" + | "ShuttingDown" + | "Failed" + | "Exporting" + | "Updating" + | "Rebuilding"; + /** + * Format: uri + * @description API URL for this codespace. + */ + url: string; + /** @description Details about the codespace's git repository. */ + git_status: { + /** + * @description The number of commits the local repository is ahead of the remote. + * @example 0 + */ + ahead?: number; + /** + * @description The number of commits the local repository is behind the remote. + * @example 0 + */ + behind?: number; + /** @description Whether the local repository has unpushed changes. */ + has_unpushed_changes?: boolean; + /** @description Whether the local repository has uncommitted changes. */ + has_uncommitted_changes?: boolean; + /** + * @description The current branch (or SHA if in detached HEAD state) of the local repository. + * @example main + */ + ref?: string; + }; + /** + * @description The initally assigned location of a new codespace. + * @example WestUs2 + * @enum {string} + */ + location: "EastUs" | "SouthEastAsia" | "WestEurope" | "WestUs2"; + /** + * @description The number of minutes of inactivity after which this codespace will be automatically stopped. + * @example 60 + */ + idle_timeout_minutes: number | null; + /** + * Format: uri + * @description URL to access this codespace on the web. + */ + web_url: string; + /** + * Format: uri + * @description API URL to access available alternate machine types for this codespace. + */ + machines_url: string; + /** + * Format: uri + * @description API URL to start this codespace. + */ + start_url: string; + /** + * Format: uri + * @description API URL to stop this codespace. + */ + stop_url: string; + /** + * Format: uri + * @description API URL to publish this codespace to a new repository. + */ + publish_url?: string | null; + /** + * Format: uri + * @description API URL for the Pull Request associated with this codespace, if any. + */ + pulls_url: string | null; + recent_folders: string[]; + runtime_constraints?: { + /** @description The privacy settings a user can select from when forwarding a port. */ + allowed_port_privacy_settings?: string[] | null; + }; + /** @description Whether or not a codespace has a pending async operation. This would mean that the codespace is temporarily unavailable. The only thing that you can do with a codespace in this state is delete it. */ + pending_operation?: boolean | null; + /** @description Text to show user when codespace is disabled by a pending operation */ + pending_operation_disabled_reason?: string | null; + /** @description Text to show user when codespace idle timeout minutes has been overriden by an organization policy */ + idle_timeout_notice?: string | null; + /** + * @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). + * @example 60 + */ + retention_period_minutes?: number | null; + /** + * Format: date-time + * @description When a codespace will be auto-deleted based on the "retention_period_minutes" and "last_used_at" + * @example 2011-01-26T20:01:12Z + */ + retention_expires_at?: string | null; + }; + /** + * Email + * @description Email + */ + email: { + /** + * Format: email + * @example octocat@github.com + */ + email: string; + /** @example true */ + primary: boolean; + /** @example true */ + verified: boolean; + /** @example public */ + visibility: string | null; + }; + /** + * GPG Key + * @description A unique encryption key + */ + "gpg-key": { + /** @example 3 */ + id: number; + /** @example Octocat's GPG Key */ + name?: string | null; + primary_key_id: number | null; + /** @example 3262EFF25BA0D270 */ + key_id: string; + /** @example xsBNBFayYZ... */ + public_key: string; + /** + * @example [ + * { + * "email": "octocat@users.noreply.github.com", + * "verified": true + * } + * ] + */ + emails: { + email?: string; + verified?: boolean; + }[]; + /** + * @example [ + * { + * "id": 4, + * "primary_key_id": 3, + * "key_id": "4A595D4C72EE49C7", + * "public_key": "zsBNBFayYZ...", + * "emails": [], + * "can_sign": false, + * "can_encrypt_comms": true, + * "can_encrypt_storage": true, + * "can_certify": false, + * "created_at": "2016-03-24T11:31:04-06:00", + * "expires_at": null, + * "revoked": false + * } + * ] + */ + subkeys: { + id?: number; + primary_key_id?: number; + key_id?: string; + public_key?: string; + emails?: { + email?: string; + verified?: boolean; + }[]; + subkeys?: unknown[]; + can_sign?: boolean; + can_encrypt_comms?: boolean; + can_encrypt_storage?: boolean; + can_certify?: boolean; + created_at?: string; + expires_at?: string | null; + raw_key?: string | null; + revoked?: boolean; + }[]; + /** @example true */ + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + /** @example true */ + can_certify: boolean; + /** + * Format: date-time + * @example 2016-03-24T11:31:04-06:00 + */ + created_at: string; + /** Format: date-time */ + expires_at: string | null; + /** @example true */ + revoked: boolean; + raw_key: string | null; + }; + /** + * Key + * @description Key + */ + key: { + key: string; + id: number; + url: string; + title: string; + /** Format: date-time */ + created_at: string; + verified: boolean; + read_only: boolean; + }; + /** Marketplace Account */ + "marketplace-account": { + /** Format: uri */ + url: string; + id: number; + type: string; + node_id?: string; + login: string; + /** Format: email */ + email?: string | null; + /** Format: email */ + organization_billing_email?: string | null; + }; + /** + * User Marketplace Purchase + * @description User Marketplace Purchase + */ + "user-marketplace-purchase": { + /** @example monthly */ + billing_cycle: string; + /** + * Format: date-time + * @example 2017-11-11T00:00:00Z + */ + next_billing_date: string | null; + unit_count: number | null; + /** @example true */ + on_free_trial: boolean; + /** + * Format: date-time + * @example 2017-11-11T00:00:00Z + */ + free_trial_ends_on: string | null; + /** + * Format: date-time + * @example 2017-11-02T01:12:12Z + */ + updated_at: string | null; + account: components["schemas"]["marketplace-account"]; + plan: components["schemas"]["marketplace-listing-plan"]; + }; + /** + * Social account + * @description Social media account + */ + "social-account": { + /** @example linkedin */ + provider: string; + /** @example https://www.linkedin.com/company/github/ */ + url: string; + }; + /** + * SSH Signing Key + * @description A public SSH key used to sign Git commits + */ + "ssh-signing-key": { + key: string; + id: number; + title: string; + /** Format: date-time */ + created_at: string; + }; + /** + * Starred Repository + * @description Starred Repository + */ + "starred-repository": { + /** Format: date-time */ + starred_at: string; + repo: components["schemas"]["repository"]; + }; + /** + * Hovercard + * @description Hovercard + */ + hovercard: { + contexts: { + message: string; + octicon: string; + }[]; + }; + /** + * Key Simple + * @description Key Simple + */ + "key-simple": { + id: number; + key: string; + }; + /** + * Enterprise + * @description An enterprise on GitHub. Webhook payloads contain the `enterprise` property when the webhook is configured + * on an enterprise account or an organization that's part of an enterprise account. For more information, + * see "[About enterprise accounts](https://docs.github.com/admin/overview/about-enterprise-accounts)." + */ + "enterprise-webhooks": { + /** @description A short description of the enterprise. */ + description?: string | null; + /** + * Format: uri + * @example https://github.com/enterprises/octo-business + */ + html_url: string; + /** + * Format: uri + * @description The enterprise's website URL. + */ + website_url?: string | null; + /** + * @description Unique identifier of the enterprise + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the enterprise. + * @example Octo Business + */ + name: string; + /** + * @description The slug url identifier for the enterprise. + * @example octo-business + */ + slug: string; + /** + * Format: date-time + * @example 2019-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2019-01-26T19:14:43Z + */ + updated_at: string | null; + /** Format: uri */ + avatar_url: string; + }; + /** + * Simple Installation + * @description The GitHub App installation. Webhook payloads contain the `installation` property when the event is configured + * for and sent to a GitHub App. For more information, + * see "[Using webhooks with GitHub Apps](https://docs.github.com/apps/creating-github-apps/registering-a-github-app/using-webhooks-with-github-apps)." + */ + "simple-installation": { + /** + * @description The ID of the installation. + * @example 1 + */ + id: number; + /** + * @description The global node ID of the installation. + * @example MDQ6VXNlcjU4MzIzMQ== + */ + node_id: string; + }; + /** + * Organization Simple + * @description A GitHub organization. Webhook payloads contain the `organization` property when the webhook is configured for an + * organization, or when the event occurs from activity in a repository owned by an organization. + */ + "organization-simple-webhooks": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + }; + /** + * Repository + * @description The repository on GitHub where the event occurred. Webhook payloads contain the `repository` property + * when the event occurs from activity in a repository. + */ + "repository-webhooks": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + organization?: components["schemas"]["nullable-simple-user"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + template_repository?: { + id?: number; + node_id?: string; + name?: string; + full_name?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }; + private?: boolean; + html_url?: string; + description?: string; + fork?: boolean; + url?: string; + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + downloads_url?: string; + events_url?: string; + forks_url?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + git_url?: string; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + notifications_url?: string; + pulls_url?: string; + releases_url?: string; + ssh_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + clone_url?: string; + mirror_url?: string; + hooks_url?: string; + svn_url?: string; + homepage?: string; + language?: string; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + pushed_at?: string; + created_at?: string; + updated_at?: string; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + allow_rebase_merge?: boolean; + temp_clone_token?: string; + allow_squash_merge?: boolean; + allow_auto_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_update_branch?: boolean; + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + allow_merge_commit?: boolean; + subscribers_count?: number; + network_count?: number; + } | null; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + */ + web_commit_signoff_required?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + /** @description Whether anonymous git access is enabled for this repository */ + anonymous_access_enabled?: boolean; + }; + /** + * Simple User + * @description The GitHub user that triggered the event. This property is included in every webhook payload. + */ + "simple-user-webhooks": { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + }; + /** + * branch protection rule + * @description The branch protection rule. Includes a `name` and all the [branch protection settings](https://docs.github.com/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#about-branch-protection-settings) applied to branches that match the name. Binary settings are boolean. Multi-level configurations are one of `off`, `non_admins`, or `everyone`. Actor and build lists are arrays of strings. + */ + webhooks_rule: { + admin_enforced: boolean; + /** @enum {string} */ + allow_deletions_enforcement_level: "off" | "non_admins" | "everyone"; + /** @enum {string} */ + allow_force_pushes_enforcement_level: "off" | "non_admins" | "everyone"; + authorized_actor_names: string[]; + authorized_actors_only: boolean; + authorized_dismissal_actors_only: boolean; + create_protected?: boolean; + /** Format: date-time */ + created_at: string; + dismiss_stale_reviews_on_push: boolean; + id: number; + ignore_approvals_from_contributors: boolean; + /** @enum {string} */ + linear_history_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + merge_queue_enforcement_level: "off" | "non_admins" | "everyone"; + name: string; + /** @enum {string} */ + pull_request_reviews_enforcement_level: "off" | "non_admins" | "everyone"; + repository_id: number; + require_code_owner_review: boolean; + /** @description Whether the most recent push must be approved by someone other than the person who pushed it */ + require_last_push_approval?: boolean; + required_approving_review_count: number; + /** @enum {string} */ + required_conversation_resolution_level: "off" | "non_admins" | "everyone"; + /** @enum {string} */ + required_deployments_enforcement_level: "off" | "non_admins" | "everyone"; + required_status_checks: string[]; + /** @enum {string} */ + required_status_checks_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + signature_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + strict_required_status_checks_policy: boolean; + /** Format: date-time */ + updated_at: string; + }; + /** @description A suite of checks performed on the code of a given code change */ + "simple-check-suite": { + /** @example d6fde92930d4715a2b49857d24b940956b26d2d3 */ + after?: string | null; + app?: components["schemas"]["integration"]; + /** @example 146e867f55c26428e5f9fade55a9bbf5e95a7912 */ + before?: string | null; + /** + * @example neutral + * @enum {string|null} + */ + conclusion?: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | "stale" + | "startup_failure" + | null; + /** Format: date-time */ + created_at?: string; + /** @example master */ + head_branch?: string | null; + /** + * @description The SHA of the head commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha?: string; + /** @example 5 */ + id?: number; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id?: string; + pull_requests?: components["schemas"]["pull-request-minimal"][]; + repository?: components["schemas"]["minimal-repository"]; + /** + * @example completed + * @enum {string} + */ + status?: "queued" | "in_progress" | "completed" | "pending" | "waiting"; + /** Format: date-time */ + updated_at?: string; + /** @example https://api.github.com/repos/github/hello-world/check-suites/5 */ + url?: string; + }; + /** + * CheckRun + * @description A check performed on the code of a given code change + */ + "check-run-with-simple-check-suite": { + app: components["schemas"]["nullable-integration"]; + check_suite: components["schemas"]["simple-check-suite"]; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + completed_at: string | null; + /** + * @example neutral + * @enum {string|null} + */ + conclusion: + | "waiting" + | "pending" + | "startup_failure" + | "stale" + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | null; + deployment?: components["schemas"]["deployment-simple"]; + /** @example https://example.com */ + details_url: string; + /** @example 42 */ + external_id: string; + /** + * @description The SHA of the commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** @example https://github.com/github/hello-world/runs/4 */ + html_url: string; + /** + * @description The id of the check. + * @example 21 + */ + id: number; + /** + * @description The name of the check. + * @example test-coverage + */ + name: string; + /** @example MDg6Q2hlY2tSdW40 */ + node_id: string; + output: { + annotations_count: number; + /** Format: uri */ + annotations_url: string; + summary: string | null; + text: string | null; + title: string | null; + }; + pull_requests: components["schemas"]["pull-request-minimal"][]; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + started_at: string; + /** + * @description The phase of the lifecycle that the check is currently in. + * @example queued + * @enum {string} + */ + status: "queued" | "in_progress" | "completed" | "pending"; + /** @example https://api.github.com/repos/github/hello-world/check-runs/4 */ + url: string; + }; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + webhooks_code_scanning_commit_oid: string; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + webhooks_code_scanning_ref: string; + /** @description The pusher type for the event. Can be either `user` or a deploy key. */ + webhooks_deploy_pusher_type: string; + /** @description The [`git ref`](https://docs.github.com/rest/git/refs#get-a-reference) resource. */ + webhooks_ref_0: string; + /** @description The [`deploy key`](https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key) resource. */ + webhooks_deploy_key: { + added_by?: string | null; + created_at: string; + id: number; + key: string; + last_used?: string | null; + read_only: boolean; + title: string; + /** Format: uri */ + url: string; + verified: boolean; + }; + /** Workflow */ + webhooks_workflow: { + /** Format: uri */ + badge_url: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + node_id: string; + path: string; + state: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + webhooks_approver: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + webhooks_reviewers: { + /** User */ + reviewer?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @enum {string} */ + type?: "User"; + }[]; + webhooks_workflow_job_run: { + conclusion: unknown; + created_at: string; + environment: string; + html_url: string; + id: number; + name: unknown; + status: string; + updated_at: string; + }; + /** User */ + webhooks_user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + webhooks_answer: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + child_comment_count: number; + /** Format: date-time */ + created_at: string; + discussion_id: number; + html_url: string; + id: number; + node_id: string; + parent_id: unknown; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + /** Format: date-time */ + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** + * Discussion + * @description A Discussion in a repository. + */ + discussion: { + active_lock_reason: string | null; + answer_chosen_at: string | null; + /** User */ + answer_chosen_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + answer_html_url: string | null; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + category: { + /** Format: date-time */ + created_at: string; + description: string; + emoji: string; + id: number; + is_answerable: boolean; + name: string; + node_id?: string; + repository_id: number; + slug: string; + updated_at: string; + }; + comments: number; + /** Format: date-time */ + created_at: string; + html_url: string; + id: number; + locked: boolean; + node_id: string; + number: number; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + /** + * @description The current state of the discussion. + * `converting` means that the discussion is being converted from an issue. + * `transferring` means that the discussion is being transferred from another repository. + * @enum {string} + */ + state: "open" | "closed" | "locked" | "converting" | "transferring"; + /** + * @description The reason for the current state + * @example resolved + * @enum {string|null} + */ + state_reason: "resolved" | "outdated" | "duplicate" | "reopened" | null; + timeline_url?: string; + title: string; + /** Format: date-time */ + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + webhooks_comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + child_comment_count: number; + created_at: string; + discussion_id: number; + html_url: string; + id: number; + node_id: string; + parent_id: number | null; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Label */ + webhooks_label: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + /** @description An array of repository objects that the installation can access. */ + webhooks_repositories: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + /** @description An array of repository objects, which were added to the installation. */ + webhooks_repositories_added: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + webhooks_repository_selection: "all" | "selected"; + /** + * issue comment + * @description The [comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment) itself. + */ + webhooks_issue_comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue comment */ + body: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + /** + * Format: int64 + * @description Unique identifier of the issue comment + */ + id: number; + /** Format: uri */ + issue_url: string; + node_id: string; + performed_via_github_app: components["schemas"]["integration"]; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + /** @description The changes to the comment. */ + webhooks_changes: { + body?: { + /** @description The previous version of the body. */ + from: string; + }; + }; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + webhooks_issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + webhooks_milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + webhooks_issue_2: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** User */ + webhooks_user_mannequin: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** Marketplace Purchase */ + webhooks_marketplace_purchase: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date: string | null; + on_free_trial: boolean; + plan: { + bullets: (string | null)[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + /** Marketplace Purchase */ + webhooks_previous_marketplace_purchase: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: unknown; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + webhooks_team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** @enum {string} */ + notification_setting?: "notifications_enabled" | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + /** + * Merge Group + * @description A group of pull requests that the merge queue has grouped together to be merged. + */ + "merge-group": { + /** @description The SHA of the merge group. */ + head_sha: string; + /** @description The full ref of the merge group. */ + head_ref: string; + /** @description The SHA of the merge group's parent commit. */ + base_sha: string; + /** @description The full ref of the branch the merge group will be merged into. */ + base_ref: string; + head_commit: components["schemas"]["simple-commit"]; + }; + /** + * Repository + * @description The repository on GitHub where the event occurred. Webhook payloads contain the `repository` property + * when the event occurs from activity in a repository. + */ + "nullable-repository-webhooks": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + organization?: components["schemas"]["nullable-simple-user"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + template_repository?: { + id?: number; + node_id?: string; + name?: string; + full_name?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }; + private?: boolean; + html_url?: string; + description?: string; + fork?: boolean; + url?: string; + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + downloads_url?: string; + events_url?: string; + forks_url?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + git_url?: string; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + notifications_url?: string; + pulls_url?: string; + releases_url?: string; + ssh_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + clone_url?: string; + mirror_url?: string; + hooks_url?: string; + svn_url?: string; + homepage?: string; + language?: string; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + pushed_at?: string; + created_at?: string; + updated_at?: string; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + allow_rebase_merge?: boolean; + temp_clone_token?: string; + allow_squash_merge?: boolean; + allow_auto_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_update_branch?: boolean; + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + allow_merge_commit?: boolean; + subscribers_count?: number; + network_count?: number; + } | null; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + */ + web_commit_signoff_required?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + /** @description Whether anonymous git access is enabled for this repository */ + anonymous_access_enabled?: boolean; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + webhooks_milestone_3: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + /** + * Membership + * @description The membership between the user and the organization. Not present when the action is `member_invited`. + */ + webhooks_membership: { + /** Format: uri */ + organization_url: string; + role: string; + state: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** + * Personal Access Token Request + * @description Details of a Personal Access Token Request. + */ + "personal-access-token-request": { + /** @description Unique identifier of the request for access via fine-grained personal access token. Used as the `pat_request_id` parameter in the list and review API calls. */ + id: number; + owner: components["schemas"]["simple-user"]; + /** @description New requested permissions, categorized by type of permission. */ + permissions_added: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** @description Requested permissions that elevate access for a previously approved request for access, categorized by type of permission. */ + permissions_upgraded: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** @description Permissions requested, categorized by type of permission. This field incorporates `permissions_added` and `permissions_upgraded`. */ + permissions_result: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** + * @description Type of repository selection requested. + * @enum {string} + */ + repository_selection: "none" | "all" | "subset"; + /** @description The number of repositories the token is requesting access to. This field is only populated when `repository_selection` is `subset`. */ + repository_count: number | null; + /** @description An array of repository objects the token is requesting access to. This field is only populated when `repository_selection` is `subset`. */ + repositories: + | { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[] + | null; + /** @description Date and time when the request for access was created. */ + created_at: string; + /** @description Whether the associated fine-grained personal access token has expired. */ + token_expired: boolean; + /** @description Date and time when the associated fine-grained personal access token expires. */ + token_expires_at: string | null; + /** @description Date and time when the associated fine-grained personal access token was last used for authentication. */ + token_last_used_at: string | null; + }; + /** Project Card */ + webhooks_project_card: { + after_id?: number | null; + /** @description Whether or not the card is archived */ + archived: boolean; + column_id: number; + /** Format: uri */ + column_url: string; + /** Format: uri */ + content_url?: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The project card's ID */ + id: number; + node_id: string; + note: string | null; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + /** Project */ + webhooks_project: { + /** @description Body of the project */ + body: string | null; + /** Format: uri */ + columns_url: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + id: number; + /** @description Name of the project */ + name: string; + node_id: string; + number: number; + /** Format: uri */ + owner_url: string; + /** + * @description State of the project; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + /** Project Column */ + webhooks_project_column: { + after_id?: number | null; + /** Format: uri */ + cards_url: string; + /** Format: date-time */ + created_at: string; + /** @description The unique identifier of the project column */ + id: number; + /** @description Name of the project column */ + name: string; + node_id: string; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + /** + * Projects v2 Project + * @description A projects v2 project + */ + "projects-v2": { + id: number; + node_id: string; + owner: components["schemas"]["simple-user"]; + creator: components["schemas"]["simple-user"]; + title: string; + description: string | null; + public: boolean; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + created_at: string; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + updated_at: string; + number: number; + short_description: string | null; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + deleted_at: string | null; + deleted_by: components["schemas"]["nullable-simple-user"]; + }; + webhooks_project_changes: { + archived_at?: { + /** Format: date-time */ + from?: string | null; + /** Format: date-time */ + to?: string | null; + }; + }; + /** + * Projects v2 Item Content Type + * @description The type of content tracked in a project item + * @enum {string} + */ + "projects-v2-item-content-type": "Issue" | "PullRequest" | "DraftIssue"; + /** + * Projects v2 Item + * @description An item belonging to a project + */ + "projects-v2-item": { + id: number; + node_id?: string; + project_node_id?: string; + content_node_id: string; + content_type: components["schemas"]["projects-v2-item-content-type"]; + creator?: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + created_at: string; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + archived_at: string | null; + }; + /** @description The pull request number. */ + webhooks_number: number; + "pull-request-webhook": components["schemas"]["pull-request"] & { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow updating the pull request's branch. */ + allow_update_branch?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a merge commit message. + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., "Merge pull request #123 from branch-name"). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a squash merge commit message: + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.** + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + /** Pull Request */ + webhooks_pull_request_5: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + /** + * Pull Request Review Comment + * @description The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) itself. + */ + webhooks_review_comment: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** @description The review that was affected. */ + webhooks_review: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the review. */ + body: string | null; + /** @description A commit SHA for the review. */ + commit_id: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the review */ + id: number; + node_id: string; + /** Format: uri */ + pull_request_url: string; + state: string; + /** Format: date-time */ + submitted_at: string | null; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + webhooks_nullable_string: string | null; + /** + * Release + * @description The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object. + */ + webhooks_release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + }; + /** + * Release + * @description The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object. + */ + webhooks_release_1: { + assets: ({ + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + } | null)[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + }; + /** + * Repository Vulnerability Alert Alert + * @description The security alert of the vulnerable dependency. + */ + webhooks_alert: { + affected_package_name: string; + affected_range: string; + created_at: string; + dismiss_reason?: string; + dismissed_at?: string; + /** User */ + dismisser?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + external_identifier: string; + /** Format: uri */ + external_reference: string | null; + fix_reason?: string; + /** Format: date-time */ + fixed_at?: string; + fixed_in?: string; + ghsa_id: string; + id: number; + node_id: string; + number: number; + severity: string; + /** @enum {string} */ + state: "open"; + }; + /** + * @description The reason for resolving the alert. + * @enum {string|null} + */ + "secret-scanning-alert-resolution-webhook": + | "false_positive" + | "wont_fix" + | "revoked" + | "used_in_tests" + | "pattern_deleted" + | "pattern_edited" + | null; + "secret-scanning-alert-webhook": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["nullable-alert-updated-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + /** + * Format: uri + * @description The REST API URL of the code locations for this alert. + */ + locations_url?: string; + resolution?: components["schemas"]["secret-scanning-alert-resolution-webhook"]; + /** + * Format: date-time + * @description The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + resolved_at?: string | null; + resolved_by?: components["schemas"]["nullable-simple-user"]; + /** @description An optional comment to resolve an alert. */ + resolution_comment?: string | null; + /** @description The type of secret that secret scanning detected. */ + secret_type?: string; + /** + * @description The token status as of the latest validity check. + * @enum {string} + */ + validity?: "active" | "inactive" | "unknown"; + /** @description Whether push protection was bypassed for the detected secret. */ + push_protection_bypassed?: boolean | null; + push_protection_bypassed_by?: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + push_protection_bypassed_at?: string | null; + }; + /** @description The details of the security advisory, including summary, description, and severity. */ + webhooks_security_advisory: { + cvss: { + score: number; + vector_string: string | null; + }; + cwes: { + cwe_id: string; + name: string; + }[]; + description: string; + ghsa_id: string; + identifiers: { + type: string; + value: string; + }[]; + published_at: string; + references: { + /** Format: uri */ + url: string; + }[]; + severity: string; + summary: string; + updated_at: string; + vulnerabilities: { + first_patched_version: { + identifier: string; + } | null; + package: { + ecosystem: string; + name: string; + }; + severity: string; + vulnerable_version_range: string; + }[]; + withdrawn_at: string | null; + }; + webhooks_sponsorship: { + created_at: string; + maintainer?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + node_id: string; + privacy_level: string; + /** User */ + sponsor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** User */ + sponsorable: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + tier: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + /** @description The `pending_cancellation` and `pending_tier_change` event types will include the date the cancellation or tier change will take effect. */ + webhooks_effective_date: string; + webhooks_changes_8: { + tier: { + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + from: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + webhooks_team_1: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting?: "notifications_enabled" | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + /** branch protection configuration disabled event */ + "webhook-branch-protection-configuration-disabled": { + /** @enum {string} */ + action: "disabled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** branch protection configuration enabled event */ + "webhook-branch-protection-configuration-enabled": { + /** @enum {string} */ + action: "enabled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** branch protection rule created event */ + "webhook-branch-protection-rule-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + rule: components["schemas"]["webhooks_rule"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** branch protection rule deleted event */ + "webhook-branch-protection-rule-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + rule: components["schemas"]["webhooks_rule"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** branch protection rule edited event */ + "webhook-branch-protection-rule-edited": { + /** @enum {string} */ + action: "edited"; + /** @description If the action was `edited`, the changes to the rule. */ + changes?: { + admin_enforced?: { + from: boolean | null; + }; + authorized_actor_names?: { + from: string[]; + }; + authorized_actors_only?: { + from: boolean | null; + }; + authorized_dismissal_actors_only?: { + from: boolean | null; + }; + linear_history_requirement_enforcement_level?: { + /** @enum {string} */ + from: "off" | "non_admins" | "everyone"; + }; + required_status_checks?: { + from: string[]; + }; + required_status_checks_enforcement_level?: { + /** @enum {string} */ + from: "off" | "non_admins" | "everyone"; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + rule: components["schemas"]["webhooks_rule"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Check Run Completed Event */ + "webhook-check-run-completed": { + /** @enum {string} */ + action?: "completed"; + check_run: components["schemas"]["check-run-with-simple-check-suite"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * Check Run Completed Event + * @description The check_run.completed webhook encoded with URL encoding + */ + "webhook-check-run-completed-form-encoded": { + /** @description A URL-encoded string of the check_run.completed JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** Check Run Created Event */ + "webhook-check-run-created": { + /** @enum {string} */ + action?: "created"; + check_run: components["schemas"]["check-run-with-simple-check-suite"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * Check Run Created Event + * @description The check_run.created webhook encoded with URL encoding + */ + "webhook-check-run-created-form-encoded": { + /** @description A URL-encoded string of the check_run.created JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** Check Run Requested Action Event */ + "webhook-check-run-requested-action": { + /** @enum {string} */ + action: "requested_action"; + check_run: components["schemas"]["check-run-with-simple-check-suite"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + /** @description The action requested by the user. */ + requested_action?: { + /** @description The integrator reference of the action requested by the user. */ + identifier?: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * Check Run Requested Action Event + * @description The check_run.requested_action webhook encoded with URL encoding + */ + "webhook-check-run-requested-action-form-encoded": { + /** @description A URL-encoded string of the check_run.requested_action JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** Check Run Re-Requested Event */ + "webhook-check-run-rerequested": { + /** @enum {string} */ + action?: "rerequested"; + check_run: components["schemas"]["check-run-with-simple-check-suite"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * Check Run Re-Requested Event + * @description The check_run.rerequested webhook encoded with URL encoding + */ + "webhook-check-run-rerequested-form-encoded": { + /** @description A URL-encoded string of the check_run.rerequested JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** check_suite completed event */ + "webhook-check-suite-completed": { + /** @enum {string} */ + action: "completed"; + /** @description The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite). */ + check_suite: { + after: string | null; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + app: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "merge_group" + | "pull_request_review_thread" + | "workflow_job" + | "merge_queue_entry" + | "security_and_analysis" + | "projects_v2_item" + | "secret_scanning_alert_location" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + }; + before: string | null; + /** Format: uri */ + check_runs_url: string; + /** + * @description The summary conclusion for all check runs that are part of the check suite. This value will be `null` until the check run has `completed`. + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "skipped" + | "startup_failure"; + /** Format: date-time */ + created_at: string; + /** @description The head branch name the changes are on. */ + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** @description The SHA of the head commit that is being checked. */ + head_sha: string; + id: number; + latest_check_runs_count: number; + node_id: string; + /** @description An array of pull requests that match this check suite. A pull request matches a check suite if they have the same `head_sha` and `head_branch`. When the check suite's `head_branch` is in a forked repository it will be `null` and the `pull_requests` array will be empty. */ + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + rerequestable?: boolean; + runs_rerequestable?: boolean; + /** + * @description The summary status for all check runs that are part of the check suite. Can be `requested`, `in_progress`, or `completed`. + * @enum {string|null} + */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | null + | "pending"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL that points to the check suite API resource. + */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** check_suite requested event */ + "webhook-check-suite-requested": { + /** @enum {string} */ + action: "requested"; + /** @description The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite). */ + check_suite: { + after: string | null; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + app: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "workflow_job" + | "merge_queue_entry" + | "security_and_analysis" + | "secret_scanning_alert_location" + | "projects_v2_item" + | "merge_group" + | "repository_import" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + }; + before: string | null; + /** Format: uri */ + check_runs_url: string; + /** + * @description The summary conclusion for all check runs that are part of the check suite. This value will be `null` until the check run has completed. + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "skipped"; + /** Format: date-time */ + created_at: string; + /** @description The head branch name the changes are on. */ + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** @description The SHA of the head commit that is being checked. */ + head_sha: string; + id: number; + latest_check_runs_count: number; + node_id: string; + /** @description An array of pull requests that match this check suite. A pull request matches a check suite if they have the same `head_sha` and `head_branch`. When the check suite's `head_branch` is in a forked repository it will be `null` and the `pull_requests` array will be empty. */ + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + rerequestable?: boolean; + runs_rerequestable?: boolean; + /** + * @description The summary status for all check runs that are part of the check suite. Can be `requested`, `in_progress`, or `completed`. + * @enum {string|null} + */ + status: "requested" | "in_progress" | "completed" | "queued" | null; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL that points to the check suite API resource. + */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** check_suite rerequested event */ + "webhook-check-suite-rerequested": { + /** @enum {string} */ + action: "rerequested"; + /** @description The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite). */ + check_suite: { + after: string | null; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + app: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "merge_queue_entry" + | "workflow_job" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + }; + before: string | null; + /** Format: uri */ + check_runs_url: string; + /** + * @description The summary conclusion for all check runs that are part of the check suite. This value will be `null` until the check run has completed. + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + /** @description The head branch name the changes are on. */ + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** @description The SHA of the head commit that is being checked. */ + head_sha: string; + id: number; + latest_check_runs_count: number; + node_id: string; + /** @description An array of pull requests that match this check suite. A pull request matches a check suite if they have the same `head_sha` and `head_branch`. When the check suite's `head_branch` is in a forked repository it will be `null` and the `pull_requests` array will be empty. */ + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + rerequestable?: boolean; + runs_rerequestable?: boolean; + /** + * @description The summary status for all check runs that are part of the check suite. Can be `requested`, `in_progress`, or `completed`. + * @enum {string|null} + */ + status: "requested" | "in_progress" | "completed" | "queued" | null; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL that points to the check suite API resource. + */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert appeared_in_branch event */ + "webhook-code-scanning-alert-appeared-in-branch": { + /** @enum {string} */ + action: "appeared_in_branch"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** + * Format: date-time + * @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + dismissed_at: string | null; + /** User */ + dismissed_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The reason for dismissing or closing the alert. + * @enum {string|null} + */ + dismissed_reason: + | "false positive" + | "won't fix" + | "used in tests" + | null; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + tool: { + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + }; + commit_oid: components["schemas"]["webhooks_code_scanning_commit_oid"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + ref: components["schemas"]["webhooks_code_scanning_ref"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert closed_by_user event */ + "webhook-code-scanning-alert-closed-by-user": { + /** @enum {string} */ + action: "closed_by_user"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** + * Format: date-time + * @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + dismissed_at: string; + /** User */ + dismissed_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The reason for dismissing or closing the alert. + * @enum {string|null} + */ + dismissed_reason: + | "false positive" + | "won't fix" + | "used in tests" + | null; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + full_description?: string; + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + tags?: string[] | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "dismissed" | "fixed"; + tool: { + guid?: string | null; + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + }; + commit_oid: components["schemas"]["webhooks_code_scanning_commit_oid"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + ref: components["schemas"]["webhooks_code_scanning_ref"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert created event */ + "webhook-code-scanning-alert-created": { + /** @enum {string} */ + action: "created"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string | null; + /** @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. */ + dismissed_at: unknown; + dismissed_by: unknown; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + /** @description The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`. */ + dismissed_reason: unknown; + fixed_at?: unknown; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + instances_url?: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + full_description?: string; + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + tags?: string[] | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed"; + tool: { + guid?: string | null; + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + } | null; + updated_at?: string | null; + /** Format: uri */ + url: string; + }; + commit_oid: components["schemas"]["webhooks_code_scanning_commit_oid"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + ref: components["schemas"]["webhooks_code_scanning_ref"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert fixed event */ + "webhook-code-scanning-alert-fixed": { + /** @enum {string} */ + action: "fixed"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** + * Format: date-time + * @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + dismissed_at: string | null; + /** User */ + dismissed_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The reason for dismissing or closing the alert. + * @enum {string|null} + */ + dismissed_reason: + | "false positive" + | "won't fix" + | "used in tests" + | null; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Format: uri */ + instances_url?: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + full_description?: string; + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + tags?: string[] | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "fixed"; + tool: { + guid?: string | null; + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + }; + commit_oid: components["schemas"]["webhooks_code_scanning_commit_oid"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + ref: components["schemas"]["webhooks_code_scanning_ref"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert reopened event */ + "webhook-code-scanning-alert-reopened": { + /** @enum {string} */ + action: "reopened"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. */ + dismissed_at: string | null; + dismissed_by: Record | null; + /** @description The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`. */ + dismissed_reason: string | null; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + full_description?: string; + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + tags?: string[] | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + tool: { + guid?: string | null; + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + } | null; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + commit_oid: string | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + ref: string | null; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert reopened_by_user event */ + "webhook-code-scanning-alert-reopened-by-user": { + /** @enum {string} */ + action: "reopened_by_user"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. */ + dismissed_at: unknown; + dismissed_by: unknown; + /** @description The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`. */ + dismissed_reason: unknown; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "fixed"; + tool: { + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + }; + commit_oid: components["schemas"]["webhooks_code_scanning_commit_oid"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + ref: components["schemas"]["webhooks_code_scanning_ref"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** commit_comment created event */ + "webhook-commit-comment-created": { + /** + * @description The action performed. Can be `created`. + * @enum {string} + */ + action: "created"; + /** @description The [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment) resource. */ + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + created_at: string; + /** Format: uri */ + html_url: string; + /** @description The ID of the commit comment. */ + id: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the commit comment. */ + node_id: string; + /** @description The relative path of the file to which the comment applies. */ + path: string | null; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** create event */ + "webhook-create": { + /** @description The repository's current description. */ + description: string | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The name of the repository's default branch (usually `main`). */ + master_branch: string; + organization?: components["schemas"]["organization-simple-webhooks"]; + pusher_type: components["schemas"]["webhooks_deploy_pusher_type"]; + ref: components["schemas"]["webhooks_ref_0"]; + /** + * @description The type of Git ref object created in the repository. + * @enum {string} + */ + ref_type: "tag" | "branch"; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** custom property created event */ + "webhook-custom-property-created": { + /** @enum {string} */ + action: "created"; + definition: components["schemas"]["org-custom-property"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** custom property deleted event */ + "webhook-custom-property-deleted": { + /** @enum {string} */ + action: "deleted"; + definition: { + /** @description The name of the property that was deleted. */ + property_name: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** custom property updated event */ + "webhook-custom-property-updated": { + /** @enum {string} */ + action: "updated"; + definition: components["schemas"]["org-custom-property"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** Custom property values updated event */ + "webhook-custom-property-values-updated": { + /** @enum {string} */ + action: "updated"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + repository: components["schemas"]["repository-webhooks"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + /** @description The new custom property values for the repository. */ + new_property_values: components["schemas"]["custom-property-value"][]; + /** @description The old custom property values for the repository. */ + old_property_values: components["schemas"]["custom-property-value"][]; + }; + /** delete event */ + "webhook-delete": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pusher_type: components["schemas"]["webhooks_deploy_pusher_type"]; + ref: components["schemas"]["webhooks_ref_0"]; + /** + * @description The type of Git ref object deleted in the repository. + * @enum {string} + */ + ref_type: "tag" | "branch"; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert auto-dismissed event */ + "webhook-dependabot-alert-auto-dismissed": { + /** @enum {string} */ + action: "auto_dismissed"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert auto-reopened event */ + "webhook-dependabot-alert-auto-reopened": { + /** @enum {string} */ + action: "auto_reopened"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert created event */ + "webhook-dependabot-alert-created": { + /** @enum {string} */ + action: "created"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert dismissed event */ + "webhook-dependabot-alert-dismissed": { + /** @enum {string} */ + action: "dismissed"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert fixed event */ + "webhook-dependabot-alert-fixed": { + /** @enum {string} */ + action: "fixed"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert reintroduced event */ + "webhook-dependabot-alert-reintroduced": { + /** @enum {string} */ + action: "reintroduced"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert reopened event */ + "webhook-dependabot-alert-reopened": { + /** @enum {string} */ + action: "reopened"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** deploy_key created event */ + "webhook-deploy-key-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + key: components["schemas"]["webhooks_deploy_key"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** deploy_key deleted event */ + "webhook-deploy-key-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + key: components["schemas"]["webhooks_deploy_key"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** deployment created event */ + "webhook-deployment-created": { + /** @enum {string} */ + action: "created"; + /** + * Deployment + * @description The [deployment](https://docs.github.com/rest/deployments/deployments#list-deployments). + */ + deployment: { + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + environment: string; + id: number; + node_id: string; + original_environment: string; + payload: Record | string; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "workflow_job" + | "pull_request_review_thread" + | "merge_queue_entry" + | "secret_scanning_alert_location" + | "merge_group" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + production_environment?: boolean; + ref: string; + /** Format: uri */ + repository_url: string; + sha: string; + /** Format: uri */ + statuses_url: string; + task: string; + transient_environment?: boolean; + updated_at: string; + /** Format: uri */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow: components["schemas"]["webhooks_workflow"]; + /** Deployment Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + display_title: string; + event: string; + head_branch: string; + head_commit?: unknown; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: unknown; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: unknown; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: unknown; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting" + | "pending"; + /** User */ + triggering_actor?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + } | null; + }; + /** deployment protection rule requested event */ + "webhook-deployment-protection-rule-requested": { + /** @enum {string} */ + action?: "requested"; + /** @description The name of the environment that has the deployment protection rule. */ + environment?: string; + /** @description The event that triggered the deployment protection rule. */ + event?: string; + /** + * Format: uri + * @description The URL to review the deployment protection rule. + */ + deployment_callback_url?: string; + deployment?: components["schemas"]["deployment"]; + pull_requests?: components["schemas"]["pull-request"][]; + repository?: components["schemas"]["repository-webhooks"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-deployment-review-approved": { + /** @enum {string} */ + action: "approved"; + approver?: components["schemas"]["webhooks_approver"]; + comment?: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + reviewers?: components["schemas"]["webhooks_reviewers"]; + sender: components["schemas"]["simple-user-webhooks"]; + since: string; + workflow_job_run?: components["schemas"]["webhooks_workflow_job_run"]; + workflow_job_runs?: { + conclusion?: unknown; + created_at?: string; + environment?: string; + html_url?: string; + id?: number; + name?: string | null; + status?: string; + updated_at?: string; + }[]; + /** Deployment Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + display_title: string; + event: string; + head_branch: string; + head_commit?: Record | null; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting" + | "pending"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + } | null; + }; + "webhook-deployment-review-rejected": { + /** @enum {string} */ + action: "rejected"; + approver?: components["schemas"]["webhooks_approver"]; + comment?: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + reviewers?: components["schemas"]["webhooks_reviewers"]; + sender: components["schemas"]["simple-user-webhooks"]; + since: string; + workflow_job_run?: components["schemas"]["webhooks_workflow_job_run"]; + workflow_job_runs?: { + conclusion?: string | null; + created_at?: string; + environment?: string; + html_url?: string; + id?: number; + name?: string | null; + status?: string; + updated_at?: string; + }[]; + /** Deployment Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string; + head_commit?: Record | null; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + display_title: string; + } | null; + }; + "webhook-deployment-review-requested": { + /** @enum {string} */ + action: "requested"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + environment: string; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + requestor: components["schemas"]["webhooks_user"]; + reviewers: { + /** User */ + reviewer?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login?: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @enum {string} */ + type?: "User" | "Team"; + }[]; + sender: components["schemas"]["simple-user-webhooks"]; + since: string; + workflow_job_run: { + conclusion: unknown; + created_at: string; + environment: string; + html_url: string; + id: number; + name: string | null; + status: string; + updated_at: string; + }; + /** Deployment Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string; + head_commit?: Record | null; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting" + | "pending"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + display_title: string; + } | null; + }; + /** deployment_status created event */ + "webhook-deployment-status-created": { + /** @enum {string} */ + action: "created"; + check_run?: { + /** Format: date-time */ + completed_at: string | null; + /** + * @description The result of the completed check run. This value will be `null` until the check run has completed. + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | "skipped" + | null; + /** Format: uri */ + details_url: string; + external_id: string; + /** @description The SHA of the commit that is being checked. */ + head_sha: string; + /** Format: uri */ + html_url: string; + /** @description The id of the check. */ + id: number; + /** @description The name of the check run. */ + name: string; + node_id: string; + /** Format: date-time */ + started_at: string; + /** + * @description The current status of the check run. Can be `queued`, `in_progress`, or `completed`. + * @enum {string} + */ + status: "queued" | "in_progress" | "completed" | "waiting" | "pending"; + /** Format: uri */ + url: string; + } | null; + /** + * Deployment + * @description The [deployment](https://docs.github.com/rest/deployments/deployments#list-deployments). + */ + deployment: { + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + environment: string; + id: number; + node_id: string; + original_environment: string; + payload: string | Record | null; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "merge_queue_entry" + | "workflow_job" + | "pull_request_review_thread" + | "secret_scanning_alert_location" + | "merge_group" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + production_environment?: boolean; + ref: string; + /** Format: uri */ + repository_url: string; + sha: string; + /** Format: uri */ + statuses_url: string; + task: string; + transient_environment?: boolean; + updated_at: string; + /** Format: uri */ + url: string; + }; + /** @description The [deployment status](https://docs.github.com/rest/deployments/statuses#list-deployment-statuses). */ + deployment_status: { + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + deployment_url: string; + /** @description The optional human-readable description added to the status. */ + description: string; + environment: string; + /** Format: uri */ + environment_url?: string; + id: number; + /** Format: uri */ + log_url?: string; + node_id: string; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "merge_queue_entry" + | "workflow_job" + | "merge_group" + | "secret_scanning_alert_location" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + /** Format: uri */ + repository_url: string; + /** @description The new state. Can be `pending`, `success`, `failure`, or `error`. */ + state: string; + /** @description The optional link added to the status. */ + target_url: string; + updated_at: string; + /** Format: uri */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow?: components["schemas"]["webhooks_workflow"]; + /** Deployment Workflow Run */ + workflow_run?: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "startup_failure"; + /** Format: date-time */ + created_at: string; + display_title: string; + event: string; + head_branch: string; + head_commit?: unknown; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: unknown; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: unknown; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: unknown; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting" + | "pending"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + } | null; + }; + /** discussion answered event */ + "webhook-discussion-answered": { + /** @enum {string} */ + action: "answered"; + answer: components["schemas"]["webhooks_answer"]; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion category changed event */ + "webhook-discussion-category-changed": { + /** @enum {string} */ + action: "category_changed"; + changes: { + category: { + from: { + /** Format: date-time */ + created_at: string; + description: string; + emoji: string; + id: number; + is_answerable: boolean; + name: string; + node_id?: string; + repository_id: number; + slug: string; + updated_at: string; + }; + }; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion closed event */ + "webhook-discussion-closed": { + /** @enum {string} */ + action: "closed"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion_comment created event */ + "webhook-discussion-comment-created": { + /** @enum {string} */ + action: "created"; + comment: components["schemas"]["webhooks_comment"]; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion_comment deleted event */ + "webhook-discussion-comment-deleted": { + /** @enum {string} */ + action: "deleted"; + comment: components["schemas"]["webhooks_comment"]; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion_comment edited event */ + "webhook-discussion-comment-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + body: { + from: string; + }; + }; + comment: components["schemas"]["webhooks_comment"]; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion created event */ + "webhook-discussion-created": { + /** @enum {string} */ + action: "created"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion deleted event */ + "webhook-discussion-deleted": { + /** @enum {string} */ + action: "deleted"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion edited event */ + "webhook-discussion-edited": { + /** @enum {string} */ + action: "edited"; + changes?: { + body?: { + from: string; + }; + title?: { + from: string; + }; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion labeled event */ + "webhook-discussion-labeled": { + /** @enum {string} */ + action: "labeled"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + label: components["schemas"]["webhooks_label"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion locked event */ + "webhook-discussion-locked": { + /** @enum {string} */ + action: "locked"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion pinned event */ + "webhook-discussion-pinned": { + /** @enum {string} */ + action: "pinned"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion reopened event */ + "webhook-discussion-reopened": { + /** @enum {string} */ + action: "reopened"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion transferred event */ + "webhook-discussion-transferred": { + /** @enum {string} */ + action: "transferred"; + changes: { + new_discussion: components["schemas"]["discussion"]; + new_repository: components["schemas"]["repository-webhooks"]; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion unanswered event */ + "webhook-discussion-unanswered": { + /** @enum {string} */ + action: "unanswered"; + discussion: components["schemas"]["discussion"]; + old_answer: components["schemas"]["webhooks_answer"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion unlabeled event */ + "webhook-discussion-unlabeled": { + /** @enum {string} */ + action: "unlabeled"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + label: components["schemas"]["webhooks_label"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion unlocked event */ + "webhook-discussion-unlocked": { + /** @enum {string} */ + action: "unlocked"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion unpinned event */ + "webhook-discussion-unpinned": { + /** @enum {string} */ + action: "unpinned"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * fork event + * @description A user forks a repository. + */ + "webhook-fork": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + /** @description The created [`repository`](https://docs.github.com/rest/repos/repos#get-a-repository) resource. */ + forkee: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } & { + allow_forking?: boolean; + archive_url?: string; + archived?: boolean; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + clone_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + created_at?: string; + default_branch?: string; + deployments_url?: string; + description?: string | null; + disabled?: boolean; + downloads_url?: string; + events_url?: string; + /** @enum {boolean} */ + fork?: true; + forks?: number; + forks_count?: number; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + git_url?: string; + has_downloads?: boolean; + has_issues?: boolean; + has_pages?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + homepage?: string | null; + hooks_url?: string; + html_url?: string; + id?: number; + is_template?: boolean; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + language?: unknown; + languages_url?: string; + license?: Record | null; + merges_url?: string; + milestones_url?: string; + mirror_url?: unknown; + name?: string; + node_id?: string; + notifications_url?: string; + open_issues?: number; + open_issues_count?: number; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + public?: boolean; + pulls_url?: string; + pushed_at?: string; + releases_url?: string; + size?: number; + ssh_url?: string; + stargazers_count?: number; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + svn_url?: string; + tags_url?: string; + teams_url?: string; + topics?: unknown[]; + trees_url?: string; + updated_at?: string; + url?: string; + visibility?: string; + watchers?: number; + watchers_count?: number; + }; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** github_app_authorization revoked event */ + "webhook-github-app-authorization-revoked": { + /** @enum {string} */ + action: "revoked"; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** gollum event */ + "webhook-gollum": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The pages that were updated. */ + pages: { + /** + * @description The action that was performed on the page. Can be `created` or `edited`. + * @enum {string} + */ + action: "created" | "edited"; + /** + * Format: uri + * @description Points to the HTML wiki page. + */ + html_url: string; + /** @description The name of the page. */ + page_name: string; + /** @description The latest commit SHA of the page. */ + sha: string; + summary: string | null; + /** @description The current page title. */ + title: string; + }[]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation created event */ + "webhook-installation-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repositories?: components["schemas"]["webhooks_repositories"]; + repository?: components["schemas"]["repository-webhooks"]; + requester?: components["schemas"]["webhooks_user"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation deleted event */ + "webhook-installation-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repositories?: components["schemas"]["webhooks_repositories"]; + repository?: components["schemas"]["repository-webhooks"]; + requester?: unknown; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation new_permissions_accepted event */ + "webhook-installation-new-permissions-accepted": { + /** @enum {string} */ + action: "new_permissions_accepted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repositories?: components["schemas"]["webhooks_repositories"]; + repository?: components["schemas"]["repository-webhooks"]; + requester?: unknown; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation_repositories added event */ + "webhook-installation-repositories-added": { + /** @enum {string} */ + action: "added"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repositories_added: components["schemas"]["webhooks_repositories_added"]; + /** @description An array of repository objects, which were removed from the installation. */ + repositories_removed: { + full_name?: string; + /** @description Unique identifier of the repository */ + id?: number; + /** @description The name of the repository. */ + name?: string; + node_id?: string; + /** @description Whether the repository is private or public. */ + private?: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + repository_selection: components["schemas"]["webhooks_repository_selection"]; + requester: components["schemas"]["webhooks_user"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation_repositories removed event */ + "webhook-installation-repositories-removed": { + /** @enum {string} */ + action: "removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repositories_added: components["schemas"]["webhooks_repositories_added"]; + /** @description An array of repository objects, which were removed from the installation. */ + repositories_removed: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + repository_selection: components["schemas"]["webhooks_repository_selection"]; + requester: components["schemas"]["webhooks_user"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation suspend event */ + "webhook-installation-suspend": { + /** @enum {string} */ + action: "suspend"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repositories?: components["schemas"]["webhooks_repositories"]; + repository?: components["schemas"]["repository-webhooks"]; + requester?: unknown; + sender: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-installation-target-renamed": { + account: { + archived_at?: string | null; + avatar_url: string; + created_at?: string; + description?: unknown; + events_url?: string; + followers?: number; + followers_url?: string; + following?: number; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + has_organization_projects?: boolean; + has_repository_projects?: boolean; + hooks_url?: string; + html_url: string; + id: number; + is_verified?: boolean; + issues_url?: string; + login?: string; + members_url?: string; + name?: string; + node_id: string; + organizations_url?: string; + public_gists?: number; + public_members_url?: string; + public_repos?: number; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + slug?: string; + starred_url?: string; + subscriptions_url?: string; + type?: string; + updated_at?: string; + url?: string; + website_url?: unknown; + }; + /** @enum {string} */ + action: "renamed"; + changes: { + login?: { + from: string; + }; + slug?: { + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + target_type: string; + }; + /** installation unsuspend event */ + "webhook-installation-unsuspend": { + /** @enum {string} */ + action: "unsuspend"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repositories?: components["schemas"]["webhooks_repositories"]; + repository?: components["schemas"]["repository-webhooks"]; + requester?: unknown; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issue_comment created event */ + "webhook-issue-comment-created": { + /** @enum {string} */ + action: "created"; + /** + * issue comment + * @description The [comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment) itself. + */ + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue comment */ + body: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + /** + * Format: int64 + * @description Unique identifier of the issue comment + */ + id: number; + /** Format: uri */ + issue_url: string; + node_id: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to. */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees?: (Record | null)[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + labels_url?: string; + locked: boolean; + milestone?: Record | null; + node_id?: string; + number?: number; + performed_via_github_app?: Record | null; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issue_comment deleted event */ + "webhook-issue-comment-deleted": { + /** @enum {string} */ + action: "deleted"; + comment: components["schemas"]["webhooks_issue_comment"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to. */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees?: (Record | null)[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + labels_url?: string; + locked: boolean; + milestone?: Record | null; + node_id?: string; + number?: number; + performed_via_github_app?: Record | null; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issue_comment edited event */ + "webhook-issue-comment-edited": { + /** @enum {string} */ + action: "edited"; + changes: components["schemas"]["webhooks_changes"]; + comment: components["schemas"]["webhooks_issue_comment"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to. */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees?: (Record | null)[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + labels_url?: string; + locked: boolean; + milestone?: Record | null; + node_id?: string; + number?: number; + performed_via_github_app?: Record | null; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues assigned event */ + "webhook-issues-assigned": { + /** + * @description The action that was performed. + * @enum {string} + */ + action: "assigned"; + assignee?: components["schemas"]["webhooks_user"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: components["schemas"]["webhooks_issue"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues closed event */ + "webhook-issues-closed": { + /** + * @description The action that was performed. + * @enum {string} + */ + action: "closed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "security_and_analysis" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + assignee?: Record | null; + assignees?: (Record | null)[]; + author_association?: string; + body?: string | null; + closed_at: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels?: (Record | null)[]; + labels_url?: string; + locked?: boolean; + milestone?: Record | null; + node_id?: string; + number?: number; + performed_via_github_app?: Record | null; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** @enum {string} */ + state: "closed" | "open"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues deleted event */ + "webhook-issues-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues demilestoned event */ + "webhook-issues-demilestoned": { + /** @enum {string} */ + action: "demilestoned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: ({ + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + } | null)[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + milestone?: components["schemas"]["webhooks_milestone"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues edited event */ + "webhook-issues-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the issue. */ + changes: { + body?: { + /** @description The previous version of the body. */ + from: string; + }; + title?: { + /** @description The previous version of the title. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "security_and_analysis" + | "pull_request_review_thread" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + label?: components["schemas"]["webhooks_label"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues labeled event */ + "webhook-issues-labeled": { + /** @enum {string} */ + action: "labeled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + label?: components["schemas"]["webhooks_label"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues locked event */ + "webhook-issues-locked": { + /** @enum {string} */ + action: "locked"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: ({ + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + } | null)[]; + /** Format: uri-template */ + labels_url: string; + /** @enum {boolean} */ + locked: true; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "security_and_analysis" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues milestoned event */ + "webhook-issues-milestoned": { + /** @enum {string} */ + action: "milestoned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: ({ + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + } | null)[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + milestone: components["schemas"]["webhooks_milestone"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues opened event */ + "webhook-issues-opened": { + /** @enum {string} */ + action: "opened"; + changes?: { + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + old_issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + } | null; + /** + * Repository + * @description A git repository + */ + old_repository: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** @description Whether the repository has discussions enabled. */ + has_discussions?: boolean; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require commit signoff. */ + web_commit_signoff_required?: boolean; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "security_and_analysis" + | "pull_request_review_thread" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues pinned event */ + "webhook-issues-pinned": { + /** @enum {string} */ + action: "pinned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: components["schemas"]["webhooks_issue_2"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues reopened event */ + "webhook-issues-reopened": { + /** @enum {string} */ + action: "reopened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: ({ + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + } | null)[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues transferred event */ + "webhook-issues-transferred": { + /** @enum {string} */ + action: "transferred"; + changes: { + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + new_issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** + * Repository + * @description A git repository + */ + new_repository: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: components["schemas"]["webhooks_issue_2"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues unassigned event */ + "webhook-issues-unassigned": { + /** + * @description The action that was performed. + * @enum {string} + */ + action: "unassigned"; + assignee?: components["schemas"]["webhooks_user_mannequin"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: components["schemas"]["webhooks_issue"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues unlabeled event */ + "webhook-issues-unlabeled": { + /** @enum {string} */ + action: "unlabeled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: components["schemas"]["webhooks_issue"]; + label?: components["schemas"]["webhooks_label"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues unlocked event */ + "webhook-issues-unlocked": { + /** @enum {string} */ + action: "unlocked"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: ({ + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + } | null)[]; + /** Format: uri-template */ + labels_url: string; + /** @enum {boolean} */ + locked: false; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues unpinned event */ + "webhook-issues-unpinned": { + /** @enum {string} */ + action: "unpinned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: components["schemas"]["webhooks_issue_2"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** label created event */ + "webhook-label-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + label: components["schemas"]["webhooks_label"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** label deleted event */ + "webhook-label-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + label: components["schemas"]["webhooks_label"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** label edited event */ + "webhook-label-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the label if the action was `edited`. */ + changes?: { + color?: { + /** @description The previous version of the color if the action was `edited`. */ + from: string; + }; + description?: { + /** @description The previous version of the description if the action was `edited`. */ + from: string; + }; + name?: { + /** @description The previous version of the name if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + label: components["schemas"]["webhooks_label"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase cancelled event */ + "webhook-marketplace-purchase-cancelled": { + /** @enum {string} */ + action: "cancelled"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: components["schemas"]["webhooks_marketplace_purchase"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + previous_marketplace_purchase?: components["schemas"]["webhooks_previous_marketplace_purchase"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase changed event */ + "webhook-marketplace-purchase-changed": { + /** @enum {string} */ + action: "changed"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: components["schemas"]["webhooks_marketplace_purchase"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Marketplace Purchase */ + previous_marketplace_purchase?: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean | null; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase pending_change event */ + "webhook-marketplace-purchase-pending-change": { + /** @enum {string} */ + action: "pending_change"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: components["schemas"]["webhooks_marketplace_purchase"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Marketplace Purchase */ + previous_marketplace_purchase?: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase pending_change_cancelled event */ + "webhook-marketplace-purchase-pending-change-cancelled": { + /** @enum {string} */ + action: "pending_change_cancelled"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Marketplace Purchase */ + marketplace_purchase: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: unknown; + next_billing_date: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + previous_marketplace_purchase?: components["schemas"]["webhooks_previous_marketplace_purchase"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase purchased event */ + "webhook-marketplace-purchase-purchased": { + /** @enum {string} */ + action: "purchased"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: components["schemas"]["webhooks_marketplace_purchase"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + previous_marketplace_purchase?: components["schemas"]["webhooks_previous_marketplace_purchase"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** member added event */ + "webhook-member-added": { + /** @enum {string} */ + action: "added"; + changes?: { + /** + * @description This field is included for legacy purposes; use the `role_name` field instead. The `maintain` + * role is mapped to `write` and the `triage` role is mapped to `read`. To determine the role + * assigned to the collaborator, use the `role_name` field instead, which will provide the full + * role name, including custom roles. + */ + permission?: { + /** @enum {string} */ + to: "write" | "admin" | "read"; + }; + /** @description The role assigned to the collaborator. */ + role_name?: { + to: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + member: components["schemas"]["webhooks_user"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** member edited event */ + "webhook-member-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the collaborator permissions */ + changes: { + old_permission?: { + /** @description The previous permissions of the collaborator if the action was edited. */ + from: string; + }; + permission?: { + from?: string | null; + to?: string | null; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + member: components["schemas"]["webhooks_user"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** member removed event */ + "webhook-member-removed": { + /** @enum {string} */ + action: "removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + member: components["schemas"]["webhooks_user"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** membership added event */ + "webhook-membership-added": { + /** @enum {string} */ + action: "added"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + member: components["schemas"]["webhooks_user"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + /** + * @description The scope of the membership. Currently, can only be `team`. + * @enum {string} + */ + scope: "team"; + /** User */ + sender: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + team: components["schemas"]["webhooks_team"]; + }; + /** membership removed event */ + "webhook-membership-removed": { + /** @enum {string} */ + action: "removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + member: components["schemas"]["webhooks_user"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + /** + * @description The scope of the membership. Currently, can only be `team`. + * @enum {string} + */ + scope: "team" | "organization"; + /** User */ + sender: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + team: components["schemas"]["webhooks_team"]; + }; + "webhook-merge-group-checks-requested": { + /** @enum {string} */ + action: "checks_requested"; + installation?: components["schemas"]["simple-installation"]; + merge_group: components["schemas"]["merge-group"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-merge-group-destroyed": { + /** @enum {string} */ + action: "destroyed"; + /** + * @description Explains why the merge group is being destroyed. The group could have been merged, removed from the queue (dequeued), or invalidated by an earlier queue entry being dequeued (invalidated). + * @enum {string} + */ + reason?: "merged" | "invalidated" | "dequeued"; + installation?: components["schemas"]["simple-installation"]; + merge_group: components["schemas"]["merge-group"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** meta deleted event */ + "webhook-meta-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + /** @description The modified webhook. This will contain different keys based on the type of webhook it is: repository, organization, business, app, or GitHub Marketplace. */ + hook: { + active: boolean; + config: { + /** @enum {string} */ + content_type: "json" | "form"; + insecure_ssl: string; + secret?: string; + /** Format: uri */ + url: string; + }; + created_at: string; + events: ( + | "*" + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "create" + | "delete" + | "deployment" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "meta" + | "milestone" + | "organization" + | "org_block" + | "package" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "pull_request_review_thread" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_import" + | "repository_vulnerability_alert" + | "secret_scanning_alert" + | "secret_scanning_alert_location" + | "security_and_analysis" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_job" + | "workflow_run" + | "repository_dispatch" + | "projects_v2_item" + )[]; + id: number; + name: string; + type: string; + updated_at: string; + }; + /** @description The id of the modified webhook. */ + hook_id: number; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["nullable-repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone closed event */ + "webhook-milestone-closed": { + /** @enum {string} */ + action: "closed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + milestone: components["schemas"]["webhooks_milestone"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone created event */ + "webhook-milestone-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + milestone: components["schemas"]["webhooks_milestone_3"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone deleted event */ + "webhook-milestone-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + milestone: components["schemas"]["webhooks_milestone"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone edited event */ + "webhook-milestone-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the milestone if the action was `edited`. */ + changes: { + description?: { + /** @description The previous version of the description if the action was `edited`. */ + from: string; + }; + due_on?: { + /** @description The previous version of the due date if the action was `edited`. */ + from: string; + }; + title?: { + /** @description The previous version of the title if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + milestone: components["schemas"]["webhooks_milestone"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone opened event */ + "webhook-milestone-opened": { + /** @enum {string} */ + action: "opened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + milestone: components["schemas"]["webhooks_milestone_3"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** org_block blocked event */ + "webhook-org-block-blocked": { + /** @enum {string} */ + action: "blocked"; + blocked_user: components["schemas"]["webhooks_user"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** org_block unblocked event */ + "webhook-org-block-unblocked": { + /** @enum {string} */ + action: "unblocked"; + blocked_user: components["schemas"]["webhooks_user"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** organization deleted event */ + "webhook-organization-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + membership?: components["schemas"]["webhooks_membership"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** organization member_added event */ + "webhook-organization-member-added": { + /** @enum {string} */ + action: "member_added"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + membership: components["schemas"]["webhooks_membership"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** organization member_invited event */ + "webhook-organization-member-invited": { + /** @enum {string} */ + action: "member_invited"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The invitation for the user or email if the action is `member_invited`. */ + invitation: { + /** Format: date-time */ + created_at: string; + email: string | null; + /** Format: date-time */ + failed_at: string | null; + failed_reason: string | null; + id: number; + /** Format: uri */ + invitation_teams_url: string; + /** User */ + inviter: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + login: string | null; + node_id: string; + role: string; + team_count: number; + invitation_source?: string; + }; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + user?: components["schemas"]["webhooks_user"]; + }; + /** organization member_removed event */ + "webhook-organization-member-removed": { + /** @enum {string} */ + action: "member_removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + membership: components["schemas"]["webhooks_membership"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** organization renamed event */ + "webhook-organization-renamed": { + /** @enum {string} */ + action: "renamed"; + changes?: { + login?: { + from?: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + membership?: components["schemas"]["webhooks_membership"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Ruby Gems metadata */ + "webhook-rubygems-metadata": { + name?: string; + description?: string; + readme?: string; + homepage?: string; + version_info?: { + version?: string; + }; + platform?: string; + metadata?: { + [key: string]: string; + }; + repo?: string; + dependencies?: { + [key: string]: string; + }[]; + commit_oid?: string; + }; + /** package published event */ + "webhook-package-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description Information about the package. */ + package: { + created_at: string | null; + description: string | null; + ecosystem: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + namespace: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + package_type: string; + package_version: { + /** User */ + author?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body?: string | Record; + body_html?: string; + container_metadata?: { + labels?: Record | null; + manifest?: Record | null; + tag?: { + digest?: string; + name?: string; + }; + } | null; + created_at?: string; + description: string; + docker_metadata?: { + tags?: string[]; + }[]; + draft?: boolean; + /** Format: uri */ + html_url: string; + id: number; + installation_command: string; + manifest?: string; + metadata: { + [key: string]: unknown; + }[]; + name: string; + npm_metadata?: { + name?: string; + version?: string; + npm_user?: string; + author?: Record | null; + bugs?: Record | null; + dependencies?: Record; + dev_dependencies?: Record; + peer_dependencies?: Record; + optional_dependencies?: Record; + description?: string; + dist?: Record | null; + git_head?: string; + homepage?: string; + license?: string; + main?: string; + repository?: Record | null; + scripts?: Record; + id?: string; + node_version?: string; + npm_version?: string; + has_shrinkwrap?: boolean; + maintainers?: Record[]; + contributors?: Record[]; + engines?: Record; + keywords?: string[]; + files?: string[]; + bin?: Record; + man?: Record; + directories?: Record | null; + os?: string[]; + cpu?: string[]; + readme?: string; + installation_command?: string; + release_id?: number; + commit_oid?: string; + published_via_actions?: boolean; + deleted_by_id?: number; + } | null; + nuget_metadata?: + | { + id?: number | string; + name?: string; + value?: OneOf< + [ + boolean, + string, + number, + { + url?: string; + branch?: string; + commit?: string; + type?: string; + }, + ] + >; + }[] + | null; + package_files: { + content_type: string; + created_at: string; + /** Format: uri */ + download_url: string; + id: number; + md5: string | null; + name: string; + sha1: string | null; + sha256: string | null; + size: number; + state: string | null; + updated_at: string; + }[]; + package_url?: string; + prerelease?: boolean; + release?: { + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + created_at: string; + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + prerelease: boolean; + published_at: string; + tag_name: string; + target_commitish: string; + /** Format: uri */ + url: string; + }; + rubygems_metadata?: components["schemas"]["webhook-rubygems-metadata"][]; + source_url?: string; + summary: string; + tag_name?: string; + target_commitish?: string; + target_oid?: string; + updated_at?: string; + version: string; + } | null; + registry: { + /** Format: uri */ + about_url: string; + name: string; + type: string; + /** Format: uri */ + url: string; + vendor: string; + } | null; + updated_at: string | null; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** package updated event */ + "webhook-package-updated": { + /** @enum {string} */ + action: "updated"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description Information about the package. */ + package: { + created_at: string; + description: string | null; + ecosystem: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + namespace: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + package_type: string; + package_version: { + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string; + body_html: string; + created_at: string; + description: string; + docker_metadata?: { + tags?: string[]; + }[]; + draft?: boolean; + /** Format: uri */ + html_url: string; + id: number; + installation_command: string; + manifest?: string; + metadata: { + [key: string]: unknown; + }[]; + name: string; + package_files: { + content_type: string; + created_at: string; + /** Format: uri */ + download_url: string; + id: number; + md5: string | null; + name: string; + sha1: string | null; + sha256: string; + size: number; + state: string; + updated_at: string; + }[]; + package_url?: string; + prerelease?: boolean; + release?: { + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + created_at: string; + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string; + prerelease: boolean; + published_at: string; + tag_name: string; + target_commitish: string; + /** Format: uri */ + url: string; + }; + rubygems_metadata?: components["schemas"]["webhook-rubygems-metadata"][]; + /** Format: uri */ + source_url?: string; + summary: string; + tag_name?: string; + target_commitish: string; + target_oid: string; + updated_at: string; + version: string; + }; + registry: { + /** Format: uri */ + about_url: string; + name: string; + type: string; + /** Format: uri */ + url: string; + vendor: string; + } | null; + updated_at: string; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** page_build event */ + "webhook-page-build": { + /** @description The [List GitHub Pages builds](https://docs.github.com/rest/pages/pages#list-github-pages-builds) itself. */ + build: { + commit: string | null; + created_at: string; + duration: number; + error: { + message: string | null; + }; + /** User */ + pusher: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + status: string; + updated_at: string; + /** Format: uri */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + id: number; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** personal_access_token_request approved event */ + "webhook-personal-access-token-request-approved": { + /** @enum {string} */ + action: "approved"; + personal_access_token_request: components["schemas"]["personal-access-token-request"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + installation: components["schemas"]["simple-installation"]; + }; + /** personal_access_token_request cancelled event */ + "webhook-personal-access-token-request-cancelled": { + /** @enum {string} */ + action: "cancelled"; + personal_access_token_request: components["schemas"]["personal-access-token-request"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + installation: components["schemas"]["simple-installation"]; + }; + /** personal_access_token_request created event */ + "webhook-personal-access-token-request-created": { + /** @enum {string} */ + action: "created"; + personal_access_token_request: components["schemas"]["personal-access-token-request"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + installation: components["schemas"]["simple-installation"]; + }; + /** personal_access_token_request denied event */ + "webhook-personal-access-token-request-denied": { + /** @enum {string} */ + action: "denied"; + personal_access_token_request: components["schemas"]["personal-access-token-request"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + installation: components["schemas"]["simple-installation"]; + }; + "webhook-ping": { + /** + * Webhook + * @description The webhook that is being pinged + */ + hook?: { + /** @description Determines whether the hook is actually triggered for the events it subscribes to. */ + active: boolean; + /** @description Only included for GitHub Apps. When you register a new GitHub App, GitHub sends a ping event to the webhook URL you specified during registration. The GitHub App ID sent in this field is required for authenticating an app. */ + app_id?: number; + config: { + content_type?: components["schemas"]["webhook-config-content-type"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + secret?: components["schemas"]["webhook-config-secret"]; + url?: components["schemas"]["webhook-config-url"]; + }; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + deliveries_url?: string; + /** @description Determines what events the hook is triggered for. Default: ['push']. */ + events: string[]; + /** @description Unique identifier of the webhook. */ + id: number; + last_response?: components["schemas"]["hook-response"]; + /** + * @description The type of webhook. The only valid value is 'web'. + * @enum {string} + */ + name: "web"; + /** Format: uri */ + ping_url?: string; + /** Format: uri */ + test_url?: string; + type: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url?: string; + }; + /** @description The ID of the webhook that triggered the ping. */ + hook_id?: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + /** @description Random string of GitHub zen. */ + zen?: string; + }; + /** @description The webhooks ping payload encoded with URL encoding. */ + "webhook-ping-form-encoded": { + /** @description A URL-encoded string of the ping JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** project_card converted event */ + "webhook-project-card-converted": { + /** @enum {string} */ + action: "converted"; + changes: { + note: { + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project_card: components["schemas"]["webhooks_project_card"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_card created event */ + "webhook-project-card-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project_card: components["schemas"]["webhooks_project_card"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_card deleted event */ + "webhook-project-card-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Card */ + project_card: { + after_id?: number | null; + /** @description Whether or not the card is archived */ + archived: boolean; + column_id: number | null; + /** Format: uri */ + column_url: string; + /** Format: uri */ + content_url?: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** @description The project card's ID */ + id: number; + node_id: string; + note: string | null; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["nullable-repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_card edited event */ + "webhook-project-card-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + note: { + from: string | null; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project_card: components["schemas"]["webhooks_project_card"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_card moved event */ + "webhook-project-card-moved": { + /** @enum {string} */ + action: "moved"; + changes?: { + column_id: { + from: number; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project_card: { + after_id?: number | null; + /** @description Whether or not the card is archived */ + archived: boolean; + column_id: number; + /** Format: uri */ + column_url: string; + /** Format: uri */ + content_url?: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** @description The project card's ID */ + id: number; + node_id: string; + note: string | null; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } & { + after_id: number | null; + archived?: boolean; + column_id?: number; + column_url?: string; + created_at?: string; + creator?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + } | null; + id?: number; + node_id?: string; + note?: string | null; + project_url?: string; + updated_at?: string; + url?: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project closed event */ + "webhook-project-closed": { + /** @enum {string} */ + action: "closed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project: components["schemas"]["webhooks_project"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_column created event */ + "webhook-project-column-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project_column: components["schemas"]["webhooks_project_column"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project_column deleted event */ + "webhook-project-column-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project_column: components["schemas"]["webhooks_project_column"]; + repository?: components["schemas"]["nullable-repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project_column edited event */ + "webhook-project-column-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + name?: { + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project_column: components["schemas"]["webhooks_project_column"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project_column moved event */ + "webhook-project-column-moved": { + /** @enum {string} */ + action: "moved"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project_column: components["schemas"]["webhooks_project_column"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project created event */ + "webhook-project-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project: components["schemas"]["webhooks_project"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project deleted event */ + "webhook-project-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project: components["schemas"]["webhooks_project"]; + repository?: components["schemas"]["nullable-repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project edited event */ + "webhook-project-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the project if the action was `edited`. */ + changes?: { + body?: { + /** @description The previous version of the body if the action was `edited`. */ + from: string; + }; + name?: { + /** @description The changes to the project if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project: components["schemas"]["webhooks_project"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project reopened event */ + "webhook-project-reopened": { + /** @enum {string} */ + action: "reopened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project: components["schemas"]["webhooks_project"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Project Closed Event */ + "webhook-projects-v2-project-closed": { + /** @enum {string} */ + action: "closed"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** @description A project was created */ + "webhook-projects-v2-project-created": { + /** @enum {string} */ + action: "created"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Project Deleted Event */ + "webhook-projects-v2-project-deleted": { + /** @enum {string} */ + action: "deleted"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Project Edited Event */ + "webhook-projects-v2-project-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + description?: { + from?: string | null; + to?: string | null; + }; + public?: { + from?: boolean; + to?: boolean; + }; + short_description?: { + from?: string | null; + to?: string | null; + }; + title?: { + from?: string; + to?: string; + }; + }; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Archived Event */ + "webhook-projects-v2-item-archived": { + /** @enum {string} */ + action: "archived"; + changes: components["schemas"]["webhooks_project_changes"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Converted Event */ + "webhook-projects-v2-item-converted": { + /** @enum {string} */ + action: "converted"; + changes: { + content_type?: { + from?: string | null; + to?: string; + }; + }; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Created Event */ + "webhook-projects-v2-item-created": { + /** @enum {string} */ + action: "created"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Deleted Event */ + "webhook-projects-v2-item-deleted": { + /** @enum {string} */ + action: "deleted"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Edited Event */ + "webhook-projects-v2-item-edited": { + /** @enum {string} */ + action: "edited"; + changes?: OneOf< + [ + { + field_value: { + field_node_id?: string; + field_type?: string; + }; + }, + { + body: { + from?: string | null; + to?: string | null; + }; + }, + ] + >; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Reordered Event */ + "webhook-projects-v2-item-reordered": { + /** @enum {string} */ + action: "reordered"; + changes: { + previous_projects_v2_item_node_id?: { + from?: string | null; + to?: string | null; + }; + }; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Restored Event */ + "webhook-projects-v2-item-restored": { + /** @enum {string} */ + action: "restored"; + changes: components["schemas"]["webhooks_project_changes"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Project Reopened Event */ + "webhook-projects-v2-project-reopened": { + /** @enum {string} */ + action: "reopened"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** public event */ + "webhook-public": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request assigned event */ + "webhook-pull-request-assigned": { + /** @enum {string} */ + action: "assigned"; + assignee: components["schemas"]["webhooks_user"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request auto_merge_disabled event */ + "webhook-pull-request-auto-merge-disabled": { + /** @enum {string} */ + action: "auto_merge_disabled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + reason: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request auto_merge_enabled event */ + "webhook-pull-request-auto-merge-enabled": { + /** @enum {string} */ + action: "auto_merge_enabled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + reason?: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request closed event */ + "webhook-pull-request-closed": { + /** @enum {string} */ + action: "closed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request-webhook"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request converted_to_draft event */ + "webhook-pull-request-converted-to-draft": { + /** @enum {string} */ + action: "converted_to_draft"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request-webhook"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request demilestoned event */ + "webhook-pull-request-demilestoned": { + /** @enum {string} */ + action: "demilestoned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + milestone?: components["schemas"]["milestone"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["webhooks_pull_request_5"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request dequeued event */ + "webhook-pull-request-dequeued": { + /** @enum {string} */ + action: "dequeued"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + reason: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request edited event */ + "webhook-pull-request-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the comment if the action was `edited`. */ + changes: { + base?: { + ref: { + from: string; + }; + sha: { + from: string; + }; + }; + body?: { + /** @description The previous version of the body if the action was `edited`. */ + from: string; + }; + title?: { + /** @description The previous version of the title if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request-webhook"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request enqueued event */ + "webhook-pull-request-enqueued": { + /** @enum {string} */ + action: "enqueued"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request labeled event */ + "webhook-pull-request-labeled": { + /** @enum {string} */ + action: "labeled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + label?: components["schemas"]["webhooks_label"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request locked event */ + "webhook-pull-request-locked": { + /** @enum {string} */ + action: "locked"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request milestoned event */ + "webhook-pull-request-milestoned": { + /** @enum {string} */ + action: "milestoned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + milestone?: components["schemas"]["milestone"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["webhooks_pull_request_5"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request opened event */ + "webhook-pull-request-opened": { + /** @enum {string} */ + action: "opened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request-webhook"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request ready_for_review event */ + "webhook-pull-request-ready-for-review": { + /** @enum {string} */ + action: "ready_for_review"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request-webhook"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request reopened event */ + "webhook-pull-request-reopened": { + /** @enum {string} */ + action: "reopened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request-webhook"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review_comment created event */ + "webhook-pull-request-review-comment-created": { + /** @enum {string} */ + action: "created"; + /** + * Pull Request Review Comment + * @description The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) itself. + */ + comment: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number | null; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge?: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft?: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions?: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review_comment deleted event */ + "webhook-pull-request-review-comment-deleted": { + /** @enum {string} */ + action: "deleted"; + comment: components["schemas"]["webhooks_review_comment"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge?: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft?: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review_comment edited event */ + "webhook-pull-request-review-comment-edited": { + /** @enum {string} */ + action: "edited"; + changes: components["schemas"]["webhooks_changes"]; + comment: components["schemas"]["webhooks_review_comment"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge?: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft?: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review dismissed event */ + "webhook-pull-request-review-dismissed": { + /** @enum {string} */ + action: "dismissed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** @description The review that was affected. */ + review: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the review. */ + body: string | null; + /** @description A commit SHA for the review. */ + commit_id: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the review */ + id: number; + node_id: string; + /** Format: uri */ + pull_request_url: string; + /** @enum {string} */ + state: "dismissed" | "approved" | "changes_requested"; + /** Format: date-time */ + submitted_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review edited event */ + "webhook-pull-request-review-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + body?: { + /** @description The previous version of the body if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + review: components["schemas"]["webhooks_review"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request review_request_removed event */ + "webhook-pull-request-review-request-removed": OneOf< + [ + { + /** @enum {string} */ + action: "review_request_removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title. + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** User */ + requested_reviewer: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + sender: components["schemas"]["simple-user-webhooks"]; + }, + { + /** @enum {string} */ + action: "review_request_removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + requested_team: { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }, + ] + >; + /** pull_request review_requested event */ + "webhook-pull-request-review-requested": OneOf< + [ + { + /** @enum {string} */ + action: "review_requested"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** User */ + requested_reviewer: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + sender: components["schemas"]["simple-user-webhooks"]; + }, + { + /** @enum {string} */ + action: "review_requested"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + requested_team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }, + ] + >; + /** pull_request_review submitted event */ + "webhook-pull-request-review-submitted": { + /** @enum {string} */ + action: "submitted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + review: components["schemas"]["webhooks_review"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review_thread resolved event */ + "webhook-pull-request-review-thread-resolved": { + /** @enum {string} */ + action: "resolved"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + thread: { + comments: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number | null; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }[]; + node_id: string; + }; + }; + /** pull_request_review_thread unresolved event */ + "webhook-pull-request-review-thread-unresolved": { + /** @enum {string} */ + action: "unresolved"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + thread: { + comments: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }[]; + node_id: string; + }; + }; + /** pull_request synchronize event */ + "webhook-pull-request-synchronize": { + /** @enum {string} */ + action: "synchronize"; + after: string; + before: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit message title. + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request unassigned event */ + "webhook-pull-request-unassigned": { + /** @enum {string} */ + action: "unassigned"; + assignee?: components["schemas"]["webhooks_user_mannequin"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request unlabeled event */ + "webhook-pull-request-unlabeled": { + /** @enum {string} */ + action: "unlabeled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + label?: components["schemas"]["webhooks_label"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit message title. + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request unlocked event */ + "webhook-pull-request-unlocked": { + /** @enum {string} */ + action: "unlocked"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: components["schemas"]["webhooks_number"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** push event */ + "webhook-push": { + /** @description The SHA of the most recent commit on `ref` after the push. */ + after: string; + base_ref: components["schemas"]["webhooks_nullable_string"]; + /** @description The SHA of the most recent commit on `ref` before the push. */ + before: string; + /** @description An array of commit objects describing the pushed commits. (Pushed commits are all commits that are included in the `compare` between the `before` commit and the `after` commit.) The array includes a maximum of 2048 commits. If necessary, you can use the [Commits API](https://docs.github.com/rest/commits) to fetch additional commits. */ + commits: { + /** @description An array of files added in the commit. A maximum of 3000 changed files will be reported per commit. */ + added?: string[]; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** @description Whether this commit is distinct from any that have been pushed before. */ + distinct: boolean; + id: string; + /** @description The commit message. */ + message: string; + /** @description An array of files modified by the commit. A maximum of 3000 changed files will be reported per commit. */ + modified?: string[]; + /** @description An array of files removed in the commit. A maximum of 3000 changed files will be reported per commit. */ + removed?: string[]; + /** + * Format: date-time + * @description The ISO 8601 timestamp of the commit. + */ + timestamp: string; + tree_id: string; + /** + * Format: uri + * @description URL that points to the commit API resource. + */ + url: string; + }[]; + /** @description URL that shows the changes in this `ref` update, from the `before` commit to the `after` commit. For a newly created `ref` that is directly based on the default branch, this is the comparison between the head of the default branch and the `after` commit. Otherwise, this shows all commits until the `after` commit. */ + compare: string; + /** @description Whether this push created the `ref`. */ + created: boolean; + /** @description Whether this push deleted the `ref`. */ + deleted: boolean; + enterprise?: components["schemas"]["enterprise-webhooks"]; + /** @description Whether this push was a force push of the `ref`. */ + forced: boolean; + /** Commit */ + head_commit: { + /** @description An array of files added in the commit. */ + added?: string[]; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** @description Whether this commit is distinct from any that have been pushed before. */ + distinct: boolean; + id: string; + /** @description The commit message. */ + message: string; + /** @description An array of files modified by the commit. */ + modified?: string[]; + /** @description An array of files removed in the commit. */ + removed?: string[]; + /** + * Format: date-time + * @description The ISO 8601 timestamp of the commit. + */ + timestamp: string; + tree_id: string; + /** + * Format: uri + * @description URL that points to the commit API resource. + */ + url: string; + } | null; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + pusher: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email?: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** @description The full git ref that was pushed. Example: `refs/heads/main` or `refs/tags/v3.14.1`. */ + ref: string; + /** + * Repository + * @description A git repository + */ + repository: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-registry-package-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + registry_package: { + created_at: string | null; + description: string | null; + ecosystem: string; + html_url: string; + id: number; + name: string; + namespace: string; + owner: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + package_type: string; + package_version: { + author?: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + body?: string | Record; + body_html?: string; + container_metadata?: { + labels?: Record | null; + manifest?: Record | null; + tag?: { + digest?: string; + name?: string; + }; + }; + created_at?: string; + description: string; + docker_metadata?: { + tags?: string[]; + }[]; + draft?: boolean; + html_url: string; + id: number; + installation_command: string; + manifest?: string; + metadata: { + [key: string]: unknown; + }[]; + name: string; + npm_metadata?: { + name?: string; + version?: string; + npm_user?: string; + author?: string | Record | null; + bugs?: string | Record | null; + dependencies?: Record; + dev_dependencies?: Record; + peer_dependencies?: Record; + optional_dependencies?: Record; + description?: string; + dist?: string | Record | null; + git_head?: string; + homepage?: string; + license?: string; + main?: string; + repository?: string | Record | null; + scripts?: Record; + id?: string; + node_version?: string; + npm_version?: string; + has_shrinkwrap?: boolean; + maintainers?: string[]; + contributors?: string[]; + engines?: Record; + keywords?: string[]; + files?: string[]; + bin?: Record; + man?: Record; + directories?: string | Record | null; + os?: string[]; + cpu?: string[]; + readme?: string; + installation_command?: string; + release_id?: number; + commit_oid?: string; + published_via_actions?: boolean; + deleted_by_id?: number; + } | null; + nuget_metadata?: + | { + id?: string | Record | number | null; + name?: string; + value?: OneOf< + [ + boolean, + string, + number, + { + url?: string; + branch?: string; + commit?: string; + type?: string; + }, + ] + >; + }[] + | null; + package_files: { + content_type: string; + created_at: string; + download_url: string; + id: number; + md5: string | null; + name: string; + sha1: string | null; + sha256: string | null; + size: number; + state: string | null; + updated_at: string; + }[]; + package_url: string; + prerelease?: boolean; + release?: { + author?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + created_at?: string; + draft?: boolean; + html_url?: string; + id?: number; + name?: string | null; + prerelease?: boolean; + published_at?: string; + tag_name?: string; + target_commitish?: string; + url?: string; + }; + rubygems_metadata?: components["schemas"]["webhook-rubygems-metadata"][]; + summary: string; + tag_name?: string; + target_commitish?: string; + target_oid?: string; + updated_at?: string; + version: string; + } | null; + registry: { + about_url?: string; + name?: string; + type?: string; + url?: string; + vendor?: string; + } | null; + updated_at: string | null; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-registry-package-updated": { + /** @enum {string} */ + action: "updated"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + registry_package: { + created_at: string; + description: unknown; + ecosystem: string; + html_url: string; + id: number; + name: string; + namespace: string; + owner: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + package_type: string; + package_version: { + author: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + body: string; + body_html: string; + created_at: string; + description: string; + docker_metadata?: ({ + tags?: string[]; + } | null)[]; + draft?: boolean; + html_url: string; + id: number; + installation_command: string; + manifest?: string; + metadata: { + [key: string]: unknown; + }[]; + name: string; + package_files: { + content_type?: string; + created_at?: string; + download_url?: string; + id?: number; + md5?: string | null; + name?: string; + sha1?: string | null; + sha256?: string; + size?: number; + state?: string; + updated_at?: string; + }[]; + package_url: string; + prerelease?: boolean; + release?: { + author: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + created_at: string; + draft: boolean; + html_url: string; + id: number; + name: string; + prerelease: boolean; + published_at: string; + tag_name: string; + target_commitish: string; + url: string; + }; + rubygems_metadata?: components["schemas"]["webhook-rubygems-metadata"][]; + summary: string; + tag_name?: string; + target_commitish: string; + target_oid: string; + updated_at: string; + version: string; + }; + registry: Record | null; + updated_at: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** release created event */ + "webhook-release-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + release: components["schemas"]["webhooks_release"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** release deleted event */ + "webhook-release-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + release: components["schemas"]["webhooks_release"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** release edited event */ + "webhook-release-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + body?: { + /** @description The previous version of the body if the action was `edited`. */ + from: string; + }; + name?: { + /** @description The previous version of the name if the action was `edited`. */ + from: string; + }; + make_latest?: { + /** @description Whether this release was explicitly `edited` to be the latest. */ + to: boolean; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + release: components["schemas"]["webhooks_release"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** release prereleased event */ + "webhook-release-prereleased": { + /** @enum {string} */ + action: "prereleased"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** + * Release + * @description The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object. + */ + release: { + assets: ({ + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + } | null)[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** + * @description Whether the release is identified as a prerelease or a full release. + * @enum {boolean} + */ + prerelease: true; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** release published event */ + "webhook-release-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + release: components["schemas"]["webhooks_release_1"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** release released event */ + "webhook-release-released": { + /** @enum {string} */ + action: "released"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + release: components["schemas"]["webhooks_release"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** release unpublished event */ + "webhook-release-unpublished": { + /** @enum {string} */ + action: "unpublished"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + release: components["schemas"]["webhooks_release_1"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** Repository advisory published event */ + "webhook-repository-advisory-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + repository_advisory: components["schemas"]["repository-advisory"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** Repository advisory reported event */ + "webhook-repository-advisory-reported": { + /** @enum {string} */ + action: "reported"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + repository_advisory: components["schemas"]["repository-advisory"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** repository archived event */ + "webhook-repository-archived": { + /** @enum {string} */ + action: "archived"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository created event */ + "webhook-repository-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository deleted event */ + "webhook-repository-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_dispatch event */ + "webhook-repository-dispatch-sample": { + /** @description The `event_type` that was specified in the `POST /repos/{owner}/{repo}/dispatches` request body. */ + action: string; + branch: string; + /** @description The `client_payload` that was specified in the `POST /repos/{owner}/{repo}/dispatches` request body. */ + client_payload: { + [key: string]: unknown; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository edited event */ + "webhook-repository-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + default_branch?: { + from: string; + }; + description?: { + from: string | null; + }; + homepage?: { + from: string | null; + }; + topics?: { + from?: string[] | null; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_import event */ + "webhook-repository-import": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** @enum {string} */ + status: "success" | "cancelled" | "failure"; + }; + /** repository privatized event */ + "webhook-repository-privatized": { + /** @enum {string} */ + action: "privatized"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository publicized event */ + "webhook-repository-publicized": { + /** @enum {string} */ + action: "publicized"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository renamed event */ + "webhook-repository-renamed": { + /** @enum {string} */ + action: "renamed"; + changes: { + repository: { + name: { + from: string; + }; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository ruleset created event */ + "webhook-repository-ruleset-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + repository_ruleset: components["schemas"]["repository-ruleset"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository ruleset deleted event */ + "webhook-repository-ruleset-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + repository_ruleset: components["schemas"]["repository-ruleset"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository ruleset edited event */ + "webhook-repository-ruleset-edited": { + /** @enum {string} */ + action: "edited"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + repository_ruleset: components["schemas"]["repository-ruleset"]; + changes?: { + name?: { + from?: string; + }; + enforcement?: { + from?: string; + }; + conditions?: { + added?: components["schemas"]["repository-ruleset-conditions"][]; + deleted?: components["schemas"]["repository-ruleset-conditions"][]; + updated?: { + condition?: components["schemas"]["repository-ruleset-conditions"]; + changes?: { + condition_type?: { + from?: string; + }; + target?: { + from?: string; + }; + include?: { + from?: string[]; + }; + exclude?: { + from?: string[]; + }; + }; + }[]; + }; + rules?: { + added?: components["schemas"]["repository-rule"][]; + deleted?: components["schemas"]["repository-rule"][]; + updated?: { + rule?: components["schemas"]["repository-rule"]; + changes?: { + configuration?: { + from?: string; + }; + rule_type?: { + from?: string; + }; + pattern?: { + from?: string; + }; + }; + }[]; + }; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository transferred event */ + "webhook-repository-transferred": { + /** @enum {string} */ + action: "transferred"; + changes: { + owner: { + from: { + /** Organization */ + organization?: { + /** Format: uri */ + avatar_url: string; + description: string | null; + /** Format: uri */ + events_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url?: string; + id: number; + /** Format: uri */ + issues_url: string; + login: string; + /** Format: uri-template */ + members_url: string; + node_id: string; + /** Format: uri-template */ + public_members_url: string; + /** Format: uri */ + repos_url: string; + /** Format: uri */ + url: string; + }; + /** User */ + user?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository unarchived event */ + "webhook-repository-unarchived": { + /** @enum {string} */ + action: "unarchived"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_vulnerability_alert create event */ + "webhook-repository-vulnerability-alert-create": { + /** @enum {string} */ + action: "create"; + alert: components["schemas"]["webhooks_alert"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_vulnerability_alert dismiss event */ + "webhook-repository-vulnerability-alert-dismiss": { + /** @enum {string} */ + action: "dismiss"; + /** + * Repository Vulnerability Alert Alert + * @description The security alert of the vulnerable dependency. + */ + alert: { + affected_package_name: string; + affected_range: string; + created_at: string; + dismiss_comment?: string | null; + dismiss_reason: string; + dismissed_at: string; + /** User */ + dismisser: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + external_identifier: string; + /** Format: uri */ + external_reference: string | null; + fix_reason?: string; + /** Format: date-time */ + fixed_at?: string; + fixed_in?: string; + ghsa_id: string; + id: number; + node_id: string; + number: number; + severity: string; + /** @enum {string} */ + state: "dismissed"; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_vulnerability_alert reopen event */ + "webhook-repository-vulnerability-alert-reopen": { + /** @enum {string} */ + action: "reopen"; + alert: components["schemas"]["webhooks_alert"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_vulnerability_alert resolve event */ + "webhook-repository-vulnerability-alert-resolve": { + /** @enum {string} */ + action: "resolve"; + /** + * Repository Vulnerability Alert Alert + * @description The security alert of the vulnerable dependency. + */ + alert: { + affected_package_name: string; + affected_range: string; + created_at: string; + dismiss_reason?: string; + dismissed_at?: string; + /** User */ + dismisser?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + external_identifier: string; + /** Format: uri */ + external_reference: string | null; + fix_reason?: string; + /** Format: date-time */ + fixed_at?: string; + fixed_in?: string; + ghsa_id: string; + id: number; + node_id: string; + number: number; + severity: string; + /** @enum {string} */ + state: "fixed" | "open"; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** secret_scanning_alert created event */ + "webhook-secret-scanning-alert-created": { + /** @enum {string} */ + action: "created"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** Secret Scanning Alert Location Created Event */ + "webhook-secret-scanning-alert-location-created": { + /** @enum {string} */ + action?: "created"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + installation?: components["schemas"]["simple-installation"]; + location: components["schemas"]["secret-scanning-location"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Secret Scanning Alert Location Created Event */ + "webhook-secret-scanning-alert-location-created-form-encoded": { + /** @description A URL-encoded string of the secret_scanning_alert_location.created JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** secret_scanning_alert reopened event */ + "webhook-secret-scanning-alert-reopened": { + /** @enum {string} */ + action: "reopened"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** secret_scanning_alert resolved event */ + "webhook-secret-scanning-alert-resolved": { + /** @enum {string} */ + action: "resolved"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** secret_scanning_alert revoked event */ + "webhook-secret-scanning-alert-revoked": { + /** @enum {string} */ + action: "revoked"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** secret_scanning_alert validated event */ + "webhook-secret-scanning-alert-validated": { + /** @enum {string} */ + action: "validated"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** security_advisory published event */ + "webhook-security-advisory-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + security_advisory: components["schemas"]["webhooks_security_advisory"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** security_advisory updated event */ + "webhook-security-advisory-updated": { + /** @enum {string} */ + action: "updated"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + security_advisory: components["schemas"]["webhooks_security_advisory"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** security_advisory withdrawn event */ + "webhook-security-advisory-withdrawn": { + /** @enum {string} */ + action: "withdrawn"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + /** @description The details of the security advisory, including summary, description, and severity. */ + security_advisory: { + cvss: { + score: number; + vector_string: string | null; + }; + cwes: { + cwe_id: string; + name: string; + }[]; + description: string; + ghsa_id: string; + identifiers: { + type: string; + value: string; + }[]; + published_at: string; + references: { + /** Format: uri */ + url: string; + }[]; + severity: string; + summary: string; + updated_at: string; + vulnerabilities: { + first_patched_version: { + identifier: string; + } | null; + package: { + ecosystem: string; + name: string; + }; + severity: string; + vulnerable_version_range: string; + }[]; + withdrawn_at: string; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** security_and_analysis event */ + "webhook-security-and-analysis": { + changes: { + from?: { + security_and_analysis?: components["schemas"]["security-and-analysis"]; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["full-repository"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** sponsorship cancelled event */ + "webhook-sponsorship-cancelled": { + /** @enum {string} */ + action: "cancelled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: components["schemas"]["webhooks_sponsorship"]; + }; + /** sponsorship created event */ + "webhook-sponsorship-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: components["schemas"]["webhooks_sponsorship"]; + }; + /** sponsorship edited event */ + "webhook-sponsorship-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + privacy_level?: { + /** @description The `edited` event types include the details about the change when someone edits a sponsorship to change the privacy. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: components["schemas"]["webhooks_sponsorship"]; + }; + /** sponsorship pending_cancellation event */ + "webhook-sponsorship-pending-cancellation": { + /** @enum {string} */ + action: "pending_cancellation"; + effective_date?: components["schemas"]["webhooks_effective_date"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: components["schemas"]["webhooks_sponsorship"]; + }; + /** sponsorship pending_tier_change event */ + "webhook-sponsorship-pending-tier-change": { + /** @enum {string} */ + action: "pending_tier_change"; + changes: components["schemas"]["webhooks_changes_8"]; + effective_date?: components["schemas"]["webhooks_effective_date"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: components["schemas"]["webhooks_sponsorship"]; + }; + /** sponsorship tier_changed event */ + "webhook-sponsorship-tier-changed": { + /** @enum {string} */ + action: "tier_changed"; + changes: components["schemas"]["webhooks_changes_8"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: components["schemas"]["webhooks_sponsorship"]; + }; + /** star created event */ + "webhook-star-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** @description The time the star was created. This is a timestamp in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. Will be `null` for the `deleted` action. */ + starred_at: string | null; + }; + /** star deleted event */ + "webhook-star-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** @description The time the star was created. This is a timestamp in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. Will be `null` for the `deleted` action. */ + starred_at: unknown; + }; + /** status event */ + "webhook-status": { + /** Format: uri */ + avatar_url?: string | null; + /** @description An array of branch objects containing the status' SHA. Each branch contains the given SHA, but the SHA may or may not be the head of the branch. The array includes a maximum of 10 branches. */ + branches: { + commit: { + sha: string | null; + /** Format: uri */ + url: string | null; + }; + name: string; + protected: boolean; + }[]; + commit: { + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id?: number; + login?: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + comments_url: string; + commit: { + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + } & { + date: string; + email?: string; + name?: string; + }; + comment_count: number; + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + } & { + date: string; + email?: string; + name?: string; + }; + message: string; + tree: { + sha: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + url: string; + verification: { + payload: string | null; + /** @enum {string} */ + reason: + | "expired_key" + | "not_signing_key" + | "gpgverify_error" + | "gpgverify_unavailable" + | "unsigned" + | "unknown_signature_type" + | "no_user" + | "unverified_email" + | "bad_email" + | "unknown_key" + | "malformed_signature" + | "invalid" + | "valid" + | "bad_cert" + | "ocsp_pending"; + signature: string | null; + verified: boolean; + }; + }; + /** User */ + committer: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id?: number; + login?: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + node_id: string; + parents: { + /** Format: uri */ + html_url: string; + sha: string; + /** Format: uri */ + url: string; + }[]; + sha: string; + /** Format: uri */ + url: string; + }; + context: string; + created_at: string; + /** @description The optional human-readable description added to the status. */ + description: string | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + /** @description The unique identifier of the status. */ + id: number; + installation?: components["schemas"]["simple-installation"]; + name: string; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** @description The Commit SHA. */ + sha: string; + /** + * @description The new state. Can be `pending`, `success`, `failure`, or `error`. + * @enum {string} + */ + state: "pending" | "success" | "failure" | "error"; + /** @description The optional link added to the status. */ + target_url: string | null; + updated_at: string; + }; + /** team_add event */ + "webhook-team-add": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + team: components["schemas"]["webhooks_team_1"]; + }; + /** team added_to_repository event */ + "webhook-team-added-to-repository": { + /** @enum {string} */ + action: "added_to_repository"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + team: components["schemas"]["webhooks_team_1"]; + }; + /** team created event */ + "webhook-team-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender: components["schemas"]["simple-user-webhooks"]; + team: components["schemas"]["webhooks_team_1"]; + }; + /** team deleted event */ + "webhook-team-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + team: components["schemas"]["webhooks_team_1"]; + }; + /** team edited event */ + "webhook-team-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the team if the action was `edited`. */ + changes: { + description?: { + /** @description The previous version of the description if the action was `edited`. */ + from: string; + }; + name?: { + /** @description The previous version of the name if the action was `edited`. */ + from: string; + }; + privacy?: { + /** @description The previous version of the team's privacy if the action was `edited`. */ + from: string; + }; + notification_setting?: { + /** @description The previous version of the team's notification setting if the action was `edited`. */ + from: string; + }; + repository?: { + permissions: { + from: { + /** @description The previous version of the team member's `admin` permission on a repository, if the action was `edited`. */ + admin?: boolean; + /** @description The previous version of the team member's `pull` permission on a repository, if the action was `edited`. */ + pull?: boolean; + /** @description The previous version of the team member's `push` permission on a repository, if the action was `edited`. */ + push?: boolean; + }; + }; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender: components["schemas"]["simple-user-webhooks"]; + team: components["schemas"]["webhooks_team_1"]; + }; + /** team removed_from_repository event */ + "webhook-team-removed-from-repository": { + /** @enum {string} */ + action: "removed_from_repository"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender: components["schemas"]["simple-user-webhooks"]; + team: components["schemas"]["webhooks_team_1"]; + }; + /** watch started event */ + "webhook-watch-started": { + /** @enum {string} */ + action: "started"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** workflow_dispatch event */ + "webhook-workflow-dispatch": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + inputs: { + [key: string]: unknown; + } | null; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + ref: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow: string; + }; + /** workflow_job completed event */ + "webhook-workflow-job-completed": { + /** @enum {string} */ + action: "completed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow_job: { + /** Format: uri */ + check_run_url: string; + completed_at: string | null; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | null + | "skipped" + | "cancelled" + | "action_required" + | "neutral" + | "timed_out"; + /** @description The time that the job created. */ + created_at: string; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** @description Custom labels for the job. Specified by the [`"runs-on"` attribute](https://docs.github.com/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) in the workflow YAML. */ + labels: string[]; + name: string; + node_id: string; + run_attempt: number; + run_id: number; + /** Format: uri */ + run_url: string; + /** @description The ID of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_group_id: number | null; + /** @description The name of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_group_name: string | null; + /** @description The ID of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_id: number | null; + /** @description The name of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_name: string | null; + started_at: string; + /** + * @description The current status of the job. Can be `queued`, `in_progress`, `waiting`, or `completed`. + * @enum {string} + */ + status: "queued" | "in_progress" | "completed" | "waiting"; + /** @description The name of the current branch. */ + head_branch: string | null; + /** @description The name of the workflow. */ + workflow_name: string | null; + steps: { + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "failure" | "skipped" | "success" | "cancelled" | null; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: "in_progress" | "completed" | "queued"; + }[]; + /** Format: uri */ + url: string; + } & { + check_run_url?: string; + completed_at?: string; + /** @enum {string} */ + conclusion: + | "success" + | "failure" + | "skipped" + | "cancelled" + | "action_required" + | "neutral" + | "timed_out"; + /** @description The time that the job created. */ + created_at?: string; + head_sha?: string; + html_url?: string; + id?: number; + labels?: (string | null)[]; + name?: string; + node_id?: string; + run_attempt?: number; + run_id?: number; + run_url?: string; + runner_group_id?: number | null; + runner_group_name?: string | null; + runner_id?: number | null; + runner_name?: string | null; + started_at?: string; + status?: string; + /** @description The name of the current branch. */ + head_branch?: string | null; + /** @description The name of the workflow. */ + workflow_name?: string | null; + steps?: (Record | null)[]; + url?: string; + }; + deployment?: components["schemas"]["deployment"]; + }; + /** workflow_job in_progress event */ + "webhook-workflow-job-in-progress": { + /** @enum {string} */ + action: "in_progress"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow_job: { + /** Format: uri */ + check_run_url: string; + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "success" | "failure" | null | "cancelled" | "neutral"; + /** @description The time that the job created. */ + created_at: string; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** @description Custom labels for the job. Specified by the [`"runs-on"` attribute](https://docs.github.com/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) in the workflow YAML. */ + labels: string[]; + name: string; + node_id: string; + run_attempt: number; + run_id: number; + /** Format: uri */ + run_url: string; + /** @description The ID of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_group_id: number | null; + /** @description The name of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_group_name: string | null; + /** @description The ID of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_id: number | null; + /** @description The name of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_name: string | null; + started_at: string; + /** + * @description The current status of the job. Can be `queued`, `in_progress`, or `completed`. + * @enum {string} + */ + status: "queued" | "in_progress" | "completed"; + /** @description The name of the current branch. */ + head_branch: string | null; + /** @description The name of the workflow. */ + workflow_name: string | null; + steps: { + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "failure" | "skipped" | "success" | null | "cancelled"; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: "in_progress" | "completed" | "queued" | "pending"; + }[]; + /** Format: uri */ + url: string; + } & { + check_run_url?: string; + completed_at?: string | null; + conclusion?: string | null; + /** @description The time that the job created. */ + created_at?: string; + head_sha?: string; + html_url?: string; + id?: number; + labels?: string[]; + name?: string; + node_id?: string; + run_attempt?: number; + run_id?: number; + run_url?: string; + runner_group_id?: number | null; + runner_group_name?: string | null; + runner_id?: number | null; + runner_name?: string | null; + started_at?: string; + /** @enum {string} */ + status: "in_progress" | "completed" | "queued"; + /** @description The name of the current branch. */ + head_branch?: string | null; + /** @description The name of the workflow. */ + workflow_name?: string | null; + steps: { + completed_at: string | null; + conclusion: string | null; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: "in_progress" | "completed" | "pending" | "queued"; + }[]; + url?: string; + }; + deployment?: components["schemas"]["deployment"]; + }; + /** workflow_job queued event */ + "webhook-workflow-job-queued": { + /** @enum {string} */ + action: "queued"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow_job: { + /** Format: uri */ + check_run_url: string; + completed_at: string | null; + conclusion: string | null; + /** @description The time that the job created. */ + created_at: string; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + labels: string[]; + name: string; + node_id: string; + run_attempt: number; + run_id: number; + /** Format: uri */ + run_url: string; + runner_group_id: number | null; + runner_group_name: string | null; + runner_id: number | null; + runner_name: string | null; + /** Format: date-time */ + started_at: string; + /** @enum {string} */ + status: "queued" | "in_progress" | "completed" | "waiting"; + /** @description The name of the current branch. */ + head_branch: string | null; + /** @description The name of the workflow. */ + workflow_name: string | null; + steps: { + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "failure" | "skipped" | "success" | "cancelled" | null; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: "completed" | "in_progress" | "queued" | "pending"; + }[]; + /** Format: uri */ + url: string; + }; + deployment?: components["schemas"]["deployment"]; + }; + /** workflow_job waiting event */ + "webhook-workflow-job-waiting": { + /** @enum {string} */ + action: "waiting"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow_job: { + /** Format: uri */ + check_run_url: string; + completed_at: string | null; + conclusion: string | null; + /** @description The time that the job created. */ + created_at: string; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + labels: string[]; + name: string; + node_id: string; + run_attempt: number; + run_id: number; + /** Format: uri */ + run_url: string; + runner_group_id: number | null; + runner_group_name: string | null; + runner_id: number | null; + runner_name: string | null; + /** Format: date-time */ + started_at: string; + /** @description The name of the current branch. */ + head_branch: string | null; + /** @description The name of the workflow. */ + workflow_name: string | null; + /** @enum {string} */ + status: "queued" | "in_progress" | "completed" | "waiting"; + steps: { + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "failure" | "skipped" | "success" | "cancelled" | null; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: + | "completed" + | "in_progress" + | "queued" + | "pending" + | "waiting"; + }[]; + /** Format: uri */ + url: string; + }; + deployment?: components["schemas"]["deployment"]; + }; + /** workflow_run completed event */ + "webhook-workflow-run-completed": { + /** @enum {string} */ + action: "completed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow: components["schemas"]["webhooks_workflow"]; + /** Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + artifacts_url: string; + /** Format: uri */ + cancel_url: string; + check_suite_id: number; + check_suite_node_id: string; + /** Format: uri */ + check_suite_url: string; + /** @enum {string|null} */ + conclusion: + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "skipped" + | "stale" + | "success" + | "timed_out" + | null; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** Repository Lite */ + head_repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + jobs_url: string; + /** Format: uri */ + logs_url: string; + name: string | null; + node_id: string; + path: string; + /** Format: uri */ + previous_attempt_url: string | null; + pull_requests: ({ + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + } | null)[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + /** Repository Lite */ + repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + rerun_url: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "pending" + | "waiting"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + /** Format: uri */ + workflow_url: string; + /** + * @description The event-specific title associated with the run or the run-name if set, or the value of `run-name` if it is set in the workflow. + * @example Simple Workflow + */ + display_title?: string; + }; + }; + /** workflow_run in_progress event */ + "webhook-workflow-run-in-progress": { + /** @enum {string} */ + action: "in_progress"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow: components["schemas"]["webhooks_workflow"]; + /** Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + artifacts_url: string; + /** Format: uri */ + cancel_url: string; + check_suite_id: number; + check_suite_node_id: string; + /** Format: uri */ + check_suite_url: string; + /** @enum {string|null} */ + conclusion: + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "skipped" + | "stale" + | "success" + | "timed_out" + | null; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** Repository Lite */ + head_repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string | null; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + jobs_url: string; + /** Format: uri */ + logs_url: string; + name: string | null; + node_id: string; + path: string; + /** Format: uri */ + previous_attempt_url: string | null; + pull_requests: ({ + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + } | null)[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + /** Repository Lite */ + repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + rerun_url: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "pending"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + /** Format: uri */ + workflow_url: string; + }; + }; + /** workflow_run requested event */ + "webhook-workflow-run-requested": { + /** @enum {string} */ + action: "requested"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow: components["schemas"]["webhooks_workflow"]; + /** Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + artifacts_url: string; + /** Format: uri */ + cancel_url: string; + check_suite_id: number; + check_suite_node_id: string; + /** Format: uri */ + check_suite_url: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "skipped" + | "startup_failure"; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** Repository Lite */ + head_repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + jobs_url: string; + /** Format: uri */ + logs_url: string; + name: string | null; + node_id: string; + path: string; + /** Format: uri */ + previous_attempt_url: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + /** Repository Lite */ + repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + rerun_url: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "pending" + | "waiting"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + /** Format: uri */ + workflow_url: string; + display_title: string; + }; + }; + }; + responses: { + /** @description Validation failed, or the endpoint has been spammed. */ + validation_failed_simple: { + content: { + "application/json": components["schemas"]["validation-error-simple"]; + }; + }; + /** @description Resource not found */ + not_found: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Bad Request */ + bad_request: { + content: { + "application/json": components["schemas"]["basic-error"]; + "application/scim+json": components["schemas"]["scim-error"]; + }; + }; + /** @description Validation failed, or the endpoint has been spammed. */ + validation_failed: { + content: { + "application/json": components["schemas"]["validation-error"]; + }; + }; + /** @description Accepted */ + accepted: { + content: { + "application/json": Record; + }; + }; + /** @description Not modified */ + not_modified: { + content: never; + }; + /** @description Requires authentication */ + requires_authentication: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Forbidden */ + forbidden: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Internal Error */ + internal_error: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Service unavailable */ + service_unavailable: { + content: { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + }; + }; + }; + /** @description Forbidden Gist */ + forbidden_gist: { + content: { + "application/json": { + block?: { + reason?: string; + created_at?: string; + html_url?: string | null; + }; + message?: string; + documentation_url?: string; + }; + }; + }; + /** @description Moved permanently */ + moved_permanently: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Conflict */ + conflict: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Response */ + actions_runner_jitconfig: { + content: { + "application/json": { + runner: components["schemas"]["runner"]; + /** @description The base64 encoded runner configuration. */ + encoded_jit_config: string; + }; + }; + }; + /** @description Response */ + actions_runner_labels: { + content: { + "application/json": { + total_count: number; + labels: components["schemas"]["runner-label"][]; + }; + }; + }; + /** @description Response */ + actions_runner_labels_readonly: { + content: { + "application/json": { + total_count: number; + labels: components["schemas"]["runner-label"][]; + }; + }; + }; + /** @description The value of `per_page` multiplied by `page` cannot be greater than 10000. */ + package_es_list_error: { + content: never; + }; + /** @description A header with no content is returned. */ + no_content: { + content: never; + }; + /** @description Gone */ + gone: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Temporary Redirect */ + temporary_redirect: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Response if GitHub Advanced Security is not enabled for this repository */ + code_scanning_forbidden_read: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Response if the repository is archived or if GitHub Advanced Security is not enabled for this repository */ + code_scanning_forbidden_write: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Found */ + found: { + content: never; + }; + /** @description Response if there is already a validation run in progress with a different default setup configuration */ + code_scanning_conflict: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Response if GitHub Advanced Security is not enabled for this repository */ + dependency_review_forbidden: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Unavailable due to service under maintenance. */ + porter_maintenance: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Unacceptable */ + unacceptable: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + parameters: { + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + "pagination-before"?: string; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + "pagination-after"?: string; + /** @description The direction to sort the results by. */ + direction?: "asc" | "desc"; + /** @description The GHSA (GitHub Security Advisory) identifier of the advisory. */ + ghsa_id: string; + /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + "per-page"?: number; + /** @description Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors. */ + cursor?: string; + "delivery-id": number; + /** @description The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + page?: number; + /** @description Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: string; + /** @description The unique identifier of the installation. */ + "installation-id": number; + /** @description The client ID of the GitHub app. */ + "client-id": string; + "app-slug": string; + /** @description The unique identifier of the classroom assignment. */ + "assignment-id": number; + /** @description The unique identifier of the classroom. */ + "classroom-id": number; + /** @description The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: string; + /** + * @description A comma-separated list of states. If specified, only alerts with these states will be returned. + * + * Can be: `auto_dismissed`, `dismissed`, `fixed`, `open` + */ + "dependabot-alert-comma-separated-states"?: string; + /** + * @description A comma-separated list of severities. If specified, only alerts with these severities will be returned. + * + * Can be: `low`, `medium`, `high`, `critical` + */ + "dependabot-alert-comma-separated-severities"?: string; + /** + * @description A comma-separated list of ecosystems. If specified, only alerts for these ecosystems will be returned. + * + * Can be: `composer`, `go`, `maven`, `npm`, `nuget`, `pip`, `pub`, `rubygems`, `rust` + */ + "dependabot-alert-comma-separated-ecosystems"?: string; + /** @description A comma-separated list of package names. If specified, only alerts for these packages will be returned. */ + "dependabot-alert-comma-separated-packages"?: string; + /** @description The scope of the vulnerable dependency. If specified, only alerts with this scope will be returned. */ + "dependabot-alert-scope"?: "development" | "runtime"; + /** + * @description The property by which to sort the results. + * `created` means when the alert was created. + * `updated` means when the alert's state last changed. + */ + "dependabot-alert-sort"?: "created" | "updated"; + /** + * @description **Deprecated**. The number of results per page (max 100), starting from the first matching result. + * This parameter must not be used in combination with `last`. + * Instead, use `per_page` in combination with `after` to fetch the first page of results. + */ + "pagination-first"?: number; + /** + * @description **Deprecated**. The number of results per page (max 100), starting from the last matching result. + * This parameter must not be used in combination with `first`. + * Instead, use `per_page` in combination with `before` to fetch the last page of results. + */ + "pagination-last"?: number; + /** @description Set to `open` or `resolved` to only list secret scanning alerts in a specific state. */ + "secret-scanning-alert-state"?: "open" | "resolved"; + /** + * @description A comma-separated list of secret types to return. By default all secret types are returned. + * See "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)" + * for a complete list of secret types. + */ + "secret-scanning-alert-secret-type"?: string; + /** @description A comma-separated list of resolutions. Only secret scanning alerts with one of these resolutions are listed. Valid resolutions are `false_positive`, `wont_fix`, `revoked`, `pattern_edited`, `pattern_deleted` or `used_in_tests`. */ + "secret-scanning-alert-resolution"?: string; + /** @description The property to sort the results by. `created` means when the alert was created. `updated` means when the alert was updated or resolved. */ + "secret-scanning-alert-sort"?: "created" | "updated"; + /** @description A comma-separated list of validities that, when present, will return alerts that match the validities in this list. Valid options are `active`, `inactive`, and `unknown`. */ + "secret-scanning-alert-validity"?: string; + /** @description The unique identifier of the gist. */ + "gist-id": string; + /** @description The unique identifier of the comment. */ + "comment-id": number; + /** @description A list of comma separated label names. Example: `bug,ui,@high` */ + labels?: string; + /** @description account_id parameter */ + "account-id": number; + /** @description The unique identifier of the plan. */ + "plan-id": number; + /** @description The property to sort the results by. */ + sort?: "created" | "updated"; + /** @description The account owner of the repository. The name is not case sensitive. */ + owner: string; + /** @description The name of the repository without the `.git` extension. The name is not case sensitive. */ + repo: string; + /** @description If `true`, show notifications marked as read. */ + all?: boolean; + /** @description If `true`, only shows notifications in which the user is directly participating or mentioned. */ + participating?: boolean; + /** @description Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + before?: string; + /** @description The unique identifier of the notification thread. This corresponds to the value returned in the `id` field when you retrieve notifications (for example with the [`GET /notifications` operation](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user)). */ + "thread-id": number; + /** @description An organization ID. Only return organizations with an ID greater than this ID. */ + "since-org"?: number; + /** @description The organization name. The name is not case sensitive. */ + org: string; + /** @description The unique identifier of the repository. */ + "repository-id": number; + /** @description Unique identifier of the self-hosted runner. */ + "runner-id": number; + /** @description The name of a self-hosted runner's custom label. */ + "runner-label-name": string; + /** @description The name of the secret. */ + "secret-name": string; + /** @description The number of results per page (max 30). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + "variables-per-page"?: number; + /** @description The name of the variable. */ + "variable-name": string; + /** @description The handle for the GitHub user account. */ + username: string; + /** @description The name of a code scanning tool. Only results by this tool will be listed. You can specify the tool by using either `tool_name` or `tool_guid`, but not both. */ + "tool-name"?: components["schemas"]["code-scanning-analysis-tool-name"]; + /** @description The GUID of a code scanning tool. Only results by this tool will be listed. Note that some code scanning tools may not include a GUID in their analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, but not both. */ + "tool-guid"?: components["schemas"]["code-scanning-analysis-tool-guid"]; + /** @description The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. */ + "hook-id": number; + /** @description The unique identifier of the invitation. */ + "invitation-id": number; + /** @description The name of the codespace. */ + "codespace-name": string; + /** @description The unique identifier of the migration. */ + "migration-id": number; + /** @description repo_name parameter */ + "repo-name": string; + /** @description The slug of the team name. */ + "team-slug": string; + /** @description The unique identifier of the role. */ + "role-id": number; + /** + * @description The selected visibility of the packages. This parameter is optional and only filters an existing result set. + * + * The `internal` visibility is only supported for GitHub Packages registries that allow for granular permissions. For other ecosystems `internal` is synonymous with `private`. + * For the list of GitHub Packages registries that support granular permissions, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + */ + "package-visibility"?: "public" | "private" | "internal"; + /** @description The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + "package-type": + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** @description The name of the package. */ + "package-name": string; + /** @description Unique identifier of the package version. */ + "package-version-id": number; + /** @description The property by which to sort the results. */ + "personal-access-token-sort"?: "created_at"; + /** @description A list of owner usernames to use to filter the results. */ + "personal-access-token-owner"?: string[]; + /** @description The name of the repository to use to filter the results. */ + "personal-access-token-repository"?: string; + /** @description The permission to use to filter the results. */ + "personal-access-token-permission"?: string; + /** @description Only show fine-grained personal access tokens used before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + "personal-access-token-before"?: string; + /** @description Only show fine-grained personal access tokens used after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + "personal-access-token-after"?: string; + /** @description The unique identifier of the fine-grained personal access token. */ + "fine-grained-personal-access-token-id": number; + /** @description The custom property name. The name is case sensitive. */ + "custom-property-name": string; + /** @description The name of the repository to filter on. When specified, only rule evaluations from this repository will be returned. */ + "repository-name-in-query"?: number; + /** + * @description The time period to filter by. + * + * For example, `day` will filter for rule suites that occurred in the past 24 hours, and `week` will filter for insights that occurred in the past 7 days (168 hours). + */ + "time-period"?: "hour" | "day" | "week" | "month"; + /** @description The handle for the GitHub user account to filter on. When specified, only rule evaluations triggered by this actor will be returned. */ + "actor-name-in-query"?: string; + /** @description The rule results to filter on. When specified, only suites with this result will be returned. */ + "rule-suite-result"?: "pass" | "fail" | "bypass" | "all"; + /** + * @description The unique identifier of the rule suite result. + * To get this ID, you can use [GET /repos/{owner}/{repo}/rulesets/rule-suites](https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites) + * for repositories and [GET /orgs/{org}/rulesets/rule-suites](https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites) + * for organizations. + */ + "rule-suite-id": number; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events before this cursor. To receive an initial cursor on your first request, include an empty "before" query string. */ + "secret-scanning-pagination-before-org-repo"?: string; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events after this cursor. To receive an initial cursor on your first request, include an empty "after" query string. */ + "secret-scanning-pagination-after-org-repo"?: string; + /** @description The number that identifies the discussion. */ + "discussion-number": number; + /** @description The number that identifies the comment. */ + "comment-number": number; + /** @description The unique identifier of the reaction. */ + "reaction-id": number; + /** @description The unique identifier of the project. */ + "project-id": number; + /** @description The security feature to enable or disable. */ + "security-product": + | "dependency_graph" + | "dependabot_alerts" + | "dependabot_security_updates" + | "advanced_security" + | "code_scanning_default_setup" + | "secret_scanning" + | "secret_scanning_push_protection"; + /** + * @description The action to take. + * + * `enable_all` means to enable the specified security feature for all repositories in the organization. + * `disable_all` means to disable the specified security feature for all repositories in the organization. + */ + "org-security-product-enablement": "enable_all" | "disable_all"; + /** @description The unique identifier of the card. */ + "card-id": number; + /** @description The unique identifier of the column. */ + "column-id": number; + /** @description The name field of an artifact. When specified, only artifacts with this name will be returned. */ + "artifact-name"?: string; + /** @description The unique identifier of the artifact. */ + "artifact-id": number; + /** @description The full Git reference for narrowing down the cache. The `ref` for a branch should be formatted as `refs/heads/`. To reference a pull request use `refs/pull//merge`. */ + "actions-cache-git-ref-full"?: string; + /** @description An explicit key or prefix for identifying the cache */ + "actions-cache-key"?: string; + /** @description The property to sort the results by. `created_at` means when the cache was created. `last_accessed_at` means when the cache was last accessed. `size_in_bytes` is the size of the cache in bytes. */ + "actions-cache-list-sort"?: + | "created_at" + | "last_accessed_at" + | "size_in_bytes"; + /** @description A key for identifying the cache. */ + "actions-cache-key-required": string; + /** @description The unique identifier of the GitHub Actions cache. */ + "cache-id": number; + /** @description The unique identifier of the job. */ + "job-id": number; + /** @description Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. */ + actor?: string; + /** @description Returns workflow runs associated with a branch. Use the name of the branch of the `push`. */ + "workflow-run-branch"?: string; + /** @description Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://docs.github.com/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows)." */ + event?: string; + /** @description Returns workflow runs with the check run `status` or `conclusion` that you specify. For example, a conclusion can be `success` or a status can be `in_progress`. Only GitHub Actions can set a status of `waiting`, `pending`, or `requested`. */ + "workflow-run-status"?: + | "completed" + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "skipped" + | "stale" + | "success" + | "timed_out" + | "in_progress" + | "queued" + | "requested" + | "waiting" + | "pending"; + /** @description Returns workflow runs created within the given date-time range. For more information on the syntax, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." */ + created?: string; + /** @description If `true` pull requests are omitted from the response (empty array). */ + "exclude-pull-requests"?: boolean; + /** @description Returns workflow runs with the `check_suite_id` that you specify. */ + "workflow-run-check-suite-id"?: number; + /** @description Only returns workflow runs that are associated with the specified `head_sha`. */ + "workflow-run-head-sha"?: string; + /** @description The unique identifier of the workflow run. */ + "run-id": number; + /** @description The attempt number of the workflow run. */ + "attempt-number": number; + /** @description The ID of the workflow. You can also pass the workflow file name as a string. */ + "workflow-id": number | string; + /** @description The unique identifier of the autolink. */ + "autolink-id": number; + /** @description The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ + branch: string; + /** @description The unique identifier of the check run. */ + "check-run-id": number; + /** @description The unique identifier of the check suite. */ + "check-suite-id": number; + /** @description Returns check runs with the specified `name`. */ + "check-name"?: string; + /** @description Returns check runs with the specified `status`. */ + status?: "queued" | "in_progress" | "completed"; + /** @description The Git reference for the results you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. */ + "git-ref"?: components["schemas"]["code-scanning-ref"]; + /** @description The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. */ + "alert-number": components["schemas"]["alert-number"]; + /** @description The SHA of the commit. */ + "commit-sha": string; + /** @description The commit reference. Can be a commit SHA, branch name (`heads/BRANCH_NAME`), or tag name (`tags/TAG_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. */ + "commit-ref": string; + /** @description A comma-separated list of full manifest paths. If specified, only alerts for these manifests will be returned. */ + "dependabot-alert-comma-separated-manifests"?: string; + /** + * @description The number that identifies a Dependabot alert in its repository. + * You can find this at the end of the URL for a Dependabot alert within GitHub, + * or in `number` fields in the response from the + * `GET /repos/{owner}/{repo}/dependabot/alerts` operation. + */ + "dependabot-alert-number": components["schemas"]["alert-number"]; + /** @description The full path, relative to the repository root, of the dependency manifest file. */ + "manifest-path"?: string; + /** @description deployment_id parameter */ + "deployment-id": number; + /** @description The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. */ + "environment-name": string; + /** @description The unique identifier of the branch policy. */ + "branch-policy-id": number; + /** @description The unique identifier of the protection rule. */ + "protection-rule-id": number; + /** + * @description The Git reference. For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. + * @example heads/feature-a + */ + "git-ref-only": string; + /** @description A user ID. Only return users with an ID greater than this ID. */ + "since-user"?: number; + /** @description The number that identifies the issue. */ + "issue-number": number; + /** @description The unique identifier of the key. */ + "key-id": number; + /** @description The number that identifies the milestone. */ + "milestone-number": number; + /** @description The ID of the Pages deployment. You can also give the commit SHA of the deployment. */ + "pages-deployment-id": number | string; + /** @description The number that identifies the pull request. */ + "pull-number": number; + /** @description The unique identifier of the review. */ + "review-id": number; + /** @description The unique identifier of the asset. */ + "asset-id": number; + /** @description The unique identifier of the release. */ + "release-id": number; + /** @description The name of the ref. Cannot contain wildcard characters. When specified, only rule evaluations triggered for this ref will be returned. */ + "ref-in-query"?: string; + /** @description The unique identifier of the tag protection. */ + "tag-protection-id": number; + /** @description The time frame to display results for. */ + per?: "day" | "week"; + /** @description A repository ID. Only return repositories with an ID greater than this ID. */ + "since-repo"?: number; + /** @description Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. */ + order?: "desc" | "asc"; + /** @description The unique identifier of the team. */ + "team-id": number; + /** @description ID of the Repository to filter on */ + "repository-id-in-query"?: number; + /** @description The ID of the export operation, or `latest`. Currently only `latest` is currently supported. */ + "export-id": string; + /** @description The unique identifier of the GPG key. */ + "gpg-key-id": number; + /** @description Only show repositories updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + "since-repo-date"?: string; + /** @description Only show repositories updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + "before-repo-date"?: string; + /** @description The unique identifier of the SSH signing key. */ + "ssh-signing-key-id": number; + /** @description The property to sort the results by. `created` means when the repository was starred. `updated` means when the repository was last pushed to. */ + "sort-starred"?: "created" | "updated"; + }; + requestBodies: never; + headers: { + /** @example ; rel="next", ; rel="last" */ + link: string; + /** @example text/html */ + "content-type": string; + /** @example 0.17.4 */ + "x-common-marker-version": string; + /** @example 5000 */ + "x-rate-limit-limit": number; + /** @example 4999 */ + "x-rate-limit-remaining": number; + /** @example 1590701888 */ + "x-rate-limit-reset": number; + /** @example https://pipelines.actions.githubusercontent.com/OhgS4QRKqmgx7bKC27GKU83jnQjyeqG8oIMTge8eqtheppcmw8/_apis/pipelines/1/runs/176/signedlogcontent?urlExpires=2020-01-24T18%3A10%3A31.5729946Z&urlSigningMethod=HMACV1&urlSignature=agG73JakPYkHrh06seAkvmH7rBR4Ji4c2%2B6a2ejYh3E%3D */ + location: string; + }; + pathItems: never; +} + +export type $defs = Record; + +export type external = Record; + +export interface operations { + /** + * GitHub API Root + * @description Get Hypermedia links to resources accessible in GitHub's REST API + */ + "meta/root": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["root"]; + }; + }; + }; + }; + /** + * List global security advisories + * @description Lists all global security advisories that match the specified parameters. If no other parameters are defined, the request will return only GitHub-reviewed advisories that are not malware. + * + * By default, all responses will exclude advisories for malware, because malware are not standard vulnerabilities. To list advisories for malware, you must include the `type` parameter in your request, with the value `malware`. For more information about the different types of security advisories, see "[About the GitHub Advisory database](https://docs.github.com/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database#about-types-of-security-advisories)." + */ + "security-advisories/list-global-advisories": { + parameters: { + query?: { + /** @description If specified, only advisories with this GHSA (GitHub Security Advisory) identifier will be returned. */ + ghsa_id?: string; + /** @description If specified, only advisories of this type will be returned. By default, a request with no other parameters defined will only return reviewed advisories that are not malware. */ + type?: "reviewed" | "malware" | "unreviewed"; + /** @description If specified, only advisories with this CVE (Common Vulnerabilities and Exposures) identifier will be returned. */ + cve_id?: string; + /** @description If specified, only advisories for these ecosystems will be returned. */ + ecosystem?: components["schemas"]["security-advisory-ecosystems"]; + /** @description If specified, only advisories with these severities will be returned. */ + severity?: "unknown" | "low" | "medium" | "high" | "critical"; + /** + * @description If specified, only advisories with these Common Weakness Enumerations (CWEs) will be returned. + * + * Example: `cwes=79,284,22` or `cwes[]=79&cwes[]=284&cwes[]=22` + */ + cwes?: string | string[]; + /** @description Whether to only return advisories that have been withdrawn. */ + is_withdrawn?: boolean; + /** + * @description If specified, only return advisories that affect any of `package` or `package@version`. A maximum of 1000 packages can be specified. + * If the query parameter causes the URL to exceed the maximum URL length supported by your client, you must specify fewer packages. + * + * Example: `affects=package1,package2@1.0.0,package3@^2.0.0` or `affects[]=package1&affects[]=package2@1.0.0` + */ + affects?: string | string[]; + /** + * @description If specified, only return advisories that were published on a date or date range. + * + * For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." + */ + published?: string; + /** + * @description If specified, only return advisories that were updated on a date or date range. + * + * For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." + */ + updated?: string; + /** + * @description If specified, only show advisories that were updated or published on a date or date range. + * + * For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." + */ + modified?: string; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + direction?: components["parameters"]["direction"]; + /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + /** @description The property to sort the results by. */ + sort?: "updated" | "published"; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["global-advisory"][]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + /** @description Too many requests */ + 429: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Get a global security advisory + * @description Gets a global security advisory using its GitHub Security Advisory (GHSA) identifier. + */ + "security-advisories/get-global-advisory": { + parameters: { + path: { + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["global-advisory"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get the authenticated app + * @description Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/apps/apps#list-installations-for-the-authenticated-app)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-authenticated": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"]; + }; + }; + }; + }; + /** + * Create a GitHub App from a manifest + * @description Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. + */ + "apps/create-from-manifest": { + parameters: { + path: { + code: string; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["integration"] & { + client_id: string; + client_secret: string; + webhook_secret: string | null; + pem: string; + [key: string]: unknown; + }; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get a webhook configuration for an app + * @description Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-webhook-config-for-app": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * Update a webhook configuration for an app + * @description Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/update-webhook-config-for-app": { + requestBody: { + content: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * List deliveries for an app webhook + * @description Returns a list of webhook deliveries for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/list-webhook-deliveries": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + cursor?: components["parameters"]["cursor"]; + redelivery?: boolean; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery-item"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a delivery for an app webhook + * @description Returns a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-webhook-delivery": { + parameters: { + path: { + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery"]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Redeliver a delivery for an app webhook + * @description Redeliver a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/redeliver-webhook-delivery": { + parameters: { + path: { + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List installation requests for the authenticated app + * @description Lists all the pending installation requests for the authenticated GitHub App. + */ + "apps/list-installation-requests-for-authenticated-app": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description List of integration installation requests */ + 200: { + content: { + "application/json": components["schemas"]["integration-installation-request"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * List installations for the authenticated app + * @description You must use a [JWT](https://docs.github.com/enterprise-server@3.9/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * The permissions the installation has are included under the `permissions` key. + */ + "apps/list-installations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + since?: components["parameters"]["since"]; + outdated?: string; + }; + }; + responses: { + /** @description The permissions the installation has are included under the `permissions` key. */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + /** + * @description The ID of the installation. + * @example 1 + */ + id: number; + account: + | ({ + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + } & { + /** @description A short description of the enterprise. */ + description?: string | null; + /** + * Format: uri + * @example https://github.com/enterprises/octo-business + */ + html_url: string; + /** + * Format: uri + * @description The enterprise's website URL. + */ + website_url?: string | null; + /** + * @description Unique identifier of the enterprise + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the enterprise. + * @example Octo Business + */ + name: string; + /** + * @description The slug url identifier for the enterprise. + * @example octo-business + */ + slug: string; + /** + * Format: date-time + * @example 2019-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2019-01-26T19:14:43Z + */ + updated_at: string | null; + /** Format: uri */ + avatar_url: string; + }) + | null; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** + * Format: uri + * @example https://api.github.com/installations/1/access_tokens + */ + access_tokens_url: string; + /** + * Format: uri + * @example https://api.github.com/installation/repositories + */ + repositories_url: string; + /** + * Format: uri + * @example https://github.com/organizations/github/settings/installations/1 + */ + html_url: string; + /** @example 1 */ + app_id: number; + /** @description The ID of the user or organization this token is being scoped to. */ + target_id: number; + /** @example Organization */ + target_type: string; + /** + * App Permissions + * @description The permissions granted to the user access token. + * @example { + * "contents": "read", + * "issues": "read", + * "deployments": "write", + * "single_file": "read" + * } + */ + permissions: { + /** + * @description The level of permission to grant the access token for GitHub Actions workflows, workflow runs, and artifacts. + * @enum {string} + */ + actions?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository creation, deletion, settings, teams, and collaborators creation. + * @enum {string} + */ + administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token for checks on code. + * @enum {string} + */ + checks?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges. + * @enum {string} + */ + contents?: "read" | "write"; + /** + * @description The level of permission to grant the access token for deployments and deployment statuses. + * @enum {string} + */ + deployments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for managing repository environments. + * @enum {string} + */ + environments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for issues and related comments, assignees, labels, and milestones. + * @enum {string} + */ + issues?: "read" | "write"; + /** + * @description The level of permission to grant the access token to search repositories, list collaborators, and access repository metadata. + * @enum {string} + */ + metadata?: "read" | "write"; + /** + * @description The level of permission to grant the access token for packages published to GitHub Packages. + * @enum {string} + */ + packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to retrieve Pages statuses, configuration, and builds, as well as create new builds. + * @enum {string} + */ + pages?: "read" | "write"; + /** + * @description The level of permission to grant the access token for pull requests and related comments, assignees, labels, milestones, and merges. + * @enum {string} + */ + pull_requests?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for a repository. + * @enum {string} + */ + repository_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository projects, columns, and cards. + * @enum {string} + */ + repository_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token to view and manage secret scanning alerts. + * @enum {string} + */ + secret_scanning_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository secrets. + * @enum {string} + */ + secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage security events like code scanning alerts. + * @enum {string} + */ + security_events?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage just a single file. + * @enum {string} + */ + single_file?: "read" | "write"; + /** + * @description The level of permission to grant the access token for commit statuses. + * @enum {string} + */ + statuses?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage Dependabot alerts. + * @enum {string} + */ + vulnerability_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to update GitHub Actions workflow files. + * @enum {string} + */ + workflows?: "write"; + /** + * @description The level of permission to grant the access token for organization teams and members. + * @enum {string} + */ + members?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage access to an organization. + * @enum {string} + */ + organization_administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token for custom repository roles management. This property is in beta and is subject to change. + * @enum {string} + */ + organization_custom_roles?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage announcement banners for an organization. + * @enum {string} + */ + organization_announcement_banners?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for an organization. + * @enum {string} + */ + organization_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing and managing fine-grained personal access token requests to an organization. + * @enum {string} + */ + organization_personal_access_tokens?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing and managing fine-grained personal access tokens that have been approved by an organization. + * @enum {string} + */ + organization_personal_access_token_requests?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing an organization's plan. + * @enum {string} + */ + organization_plan?: "read"; + /** + * @description The level of permission to grant the access token to manage organization projects and projects beta (where available). + * @enum {string} + */ + organization_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token for organization packages published to GitHub Packages. + * @enum {string} + */ + organization_packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage organization secrets. + * @enum {string} + */ + organization_secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage GitHub Actions self-hosted runners available to an organization. + * @enum {string} + */ + organization_self_hosted_runners?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage users blocked by the organization. + * @enum {string} + */ + organization_user_blocking?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage team discussions and related comments. + * @enum {string} + */ + team_discussions?: "read" | "write"; + }; + events: string[]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** @example config.yaml */ + single_file_name: string | null; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + /** @example github-actions */ + app_slug: string; + /** + * Simple User + * @description A GitHub user. + */ + suspended_by: { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + } | null; + /** Format: date-time */ + suspended_at: string | null; + /** @example "test_13f1e99741e3e004@d7e1eb0bc0a1ba12.com" */ + contact_email?: string | null; + }[]; + }; + }; + }; + }; + /** + * Get an installation for the authenticated app + * @description Enables an authenticated GitHub App to find an installation's information using the installation id. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an installation for the authenticated app + * @description Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/rest/apps/apps#suspend-an-app-installation)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/delete-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create an installation access token for an app + * @description Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. + * + * Optionally, you can use the `repositories` or `repository_ids` body parameters to specify individual repositories that the installation access token can access. If you don't use `repositories` or `repository_ids` to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner. + * + * Optionally, use the `permissions` body parameter to specify the permissions that the installation access token should have. If `permissions` is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted. + * + * When using the repository or permission parameters to reduce the access of the token, the complexity of the token is increased due to both the number of permissions in the request and the number of repositories the token will have access to. If the complexity is too large, the token will fail to be issued. If this occurs, the error message will indicate the maximum number of repositories that should be requested. For the average application requesting 8 permissions, this limit is around 5000 repositories. With fewer permissions requested, more repositories are supported. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/create-installation-access-token": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description List of repository names that the token should have access to */ + repositories?: string[]; + /** + * @description List of repository IDs that the token should have access to + * @example [ + * 1 + * ] + */ + repository_ids?: number[]; + permissions?: components["schemas"]["app-permissions"]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["installation-token"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Suspend an app installation + * @description Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/suspend-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unsuspend an app installation + * @description Removes a GitHub App installation suspension. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/unsuspend-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an app authorization + * @description OAuth and GitHub application owners can revoke a grant for their application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * Deleting an application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + "apps/delete-authorization": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The OAuth access token used to authenticate to the GitHub API. */ + access_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Check a token + * @description OAuth applications and GitHub applications with OAuth authorizations can use this API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. + */ + "apps/check-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The access_token of the OAuth or GitHub application. */ + access_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an app token + * @description OAuth or GitHub application owners can revoke a single token for an OAuth application or a GitHub application with an OAuth authorization. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. + */ + "apps/delete-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The OAuth access token used to authenticate to the GitHub API. */ + access_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Reset a token + * @description OAuth applications and GitHub applications with OAuth authorizations can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + "apps/reset-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The access_token of the OAuth or GitHub application. */ + access_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a scoped access token + * @description Use a non-scoped user access token to create a repository-scoped and/or permission-scoped user access token. You can specify + * which repositories the token can access and which permissions are granted to the + * token. + * + * Invalid tokens will return `404 NOT FOUND`. + * + * You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) + * when accessing this endpoint, using the `client_id` and `client_secret` of the GitHub App + * as the username and password. + */ + "apps/scope-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The access token used to authenticate to the GitHub API. + * @example e72e16c7e42f292c6912e7710c838347ae178b4a + */ + access_token: string; + /** + * @description The name of the user or organization to scope the user access token to. **Required** unless `target_id` is specified. + * @example octocat + */ + target?: string; + /** + * @description The ID of the user or organization to scope the user access token to. **Required** unless `target` is specified. + * @example 1 + */ + target_id?: number; + /** @description The list of repository names to scope the user access token to. `repositories` may not be specified if `repository_ids` is specified. */ + repositories?: string[]; + /** + * @description The list of repository IDs to scope the user access token to. `repository_ids` may not be specified if `repositories` is specified. + * @example [ + * 1 + * ] + */ + repository_ids?: number[]; + permissions?: components["schemas"]["app-permissions"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an app + * @description **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + */ + "apps/get-by-slug": { + parameters: { + path: { + app_slug: components["parameters"]["app-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get an assignment + * @description Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + "classroom/get-an-assignment": { + parameters: { + path: { + assignment_id: components["parameters"]["assignment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["classroom-assignment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List accepted assignments for an assignment + * @description Lists any assignment repositories that have been created by students accepting a GitHub Classroom assignment. Accepted assignments will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + "classroom/list-accepted-assigments-for-an-assignment": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + assignment_id: components["parameters"]["assignment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["classroom-accepted-assignment"][]; + }; + }; + }; + }; + /** + * Get assignment grades + * @description Gets grades for a GitHub Classroom assignment. Grades will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + "classroom/get-assignment-grades": { + parameters: { + path: { + assignment_id: components["parameters"]["assignment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["classroom-assignment-grade"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List classrooms + * @description Lists GitHub Classroom classrooms for the current user. Classrooms will only be returned if the current user is an administrator of one or more GitHub Classrooms. + */ + "classroom/list-classrooms": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-classroom"][]; + }; + }; + }; + }; + /** + * Get a classroom + * @description Gets a GitHub Classroom classroom for the current user. Classroom will only be returned if the current user is an administrator of the GitHub Classroom. + */ + "classroom/get-a-classroom": { + parameters: { + path: { + classroom_id: components["parameters"]["classroom-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["classroom"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List assignments for a classroom + * @description Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. + */ + "classroom/list-assignments-for-a-classroom": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + classroom_id: components["parameters"]["classroom-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-classroom-assignment"][]; + }; + }; + }; + }; + /** + * Get all codes of conduct + * @description Returns array of all GitHub's codes of conduct. + */ + "codes-of-conduct/get-all-codes-of-conduct": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-of-conduct"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a code of conduct + * @description Returns information about the specified GitHub code of conduct. + */ + "codes-of-conduct/get-conduct-code": { + parameters: { + path: { + key: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-of-conduct"]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get emojis + * @description Lists all the emojis available to use on GitHub. + */ + "emojis/get": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + [key: string]: string; + }; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a summary of Copilot usage for enterprise members + * @description **Note**: This endpoint is in beta and is subject to change. + * + * You can use this endpoint to see a daily breakdown of aggregated usage metrics for Copilot completions and Copilot Chat in the IDE + * for all users across organizations with access to Copilot within your enterprise, with a further breakdown of suggestions, acceptances, + * and number of active users by editor and language for each day. See the response schema tab for detailed metrics definitions. + * + * The response contains metrics for the prior 28 days. Usage metrics are processed once per day for the previous day, + * and the response will only include data up until yesterday. In order for an end user to be counted towards these metrics, + * they must have telemetry enabled in their IDE. + * + * Only the owners and billing managers of enterprises with a Copilot Business or Enterprise subscription can view Copilot usage + * metrics for the enterprise. + * + * OAuth app tokens and personal access tokens (classic) need the `copilot`, `manage_billing:copilot`, `admin:enterprise`, or `manage_billing:enterprise` scope to use this endpoint. + */ + "copilot/usage-metrics-for-enterprise": { + parameters: { + query?: { + /** @description Show usage metrics since this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`). Maximum value is 28 days ago. */ + since?: string; + /** @description Show usage metrics until this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`) and should not preceed the `since` date if it is passed. */ + until?: string; + page?: components["parameters"]["page"]; + /** @description The number of days of metrics to display per page (max 28). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + }; + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["copilot-usage-metrics"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List Dependabot alerts for an enterprise + * @description Lists Dependabot alerts for repositories that are owned by the specified enterprise. + * + * The authenticated user must be a member of the enterprise to use this endpoint. + * + * Alerts are only returned for organizations in the enterprise for which you are an organization owner or a security manager. For more information about security managers, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. + */ + "dependabot/list-alerts-for-enterprise": { + parameters: { + query?: { + state?: components["parameters"]["dependabot-alert-comma-separated-states"]; + severity?: components["parameters"]["dependabot-alert-comma-separated-severities"]; + ecosystem?: components["parameters"]["dependabot-alert-comma-separated-ecosystems"]; + package?: components["parameters"]["dependabot-alert-comma-separated-packages"]; + scope?: components["parameters"]["dependabot-alert-scope"]; + sort?: components["parameters"]["dependabot-alert-sort"]; + direction?: components["parameters"]["direction"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + first?: components["parameters"]["pagination-first"]; + last?: components["parameters"]["pagination-last"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert-with-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List secret scanning alerts for an enterprise + * @description Lists secret scanning alerts for eligible repositories in an enterprise, from newest to oldest. + * + * Alerts are only returned for organizations in the enterprise for which the authenticated user is an organization owner or a [security manager](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization). + * + * The authenticated user must be a member of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope or `security_events` scope to use this endpoint. + */ + "secret-scanning/list-alerts-for-enterprise": { + parameters: { + query?: { + state?: components["parameters"]["secret-scanning-alert-state"]; + secret_type?: components["parameters"]["secret-scanning-alert-secret-type"]; + resolution?: components["parameters"]["secret-scanning-alert-resolution"]; + sort?: components["parameters"]["secret-scanning-alert-sort"]; + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + validity?: components["parameters"]["secret-scanning-alert-validity"]; + }; + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-secret-scanning-alert"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List public events + * @description We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. + */ + "activity/list-public-events": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get feeds + * @description Lists the feeds available to the authenticated user. The response provides a URL for each feed. You can then get a specific feed by sending a request to one of the feed URLs. + * + * * **Timeline**: The GitHub global public timeline + * * **User**: The public timeline for any user, using `uri_template`. For more information, see "[Hypermedia](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + * * **Current user public**: The public timeline for the authenticated user + * * **Current user**: The private timeline for the authenticated user + * * **Current user actor**: The private timeline for activity created by the authenticated user + * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + * + * By default, timeline resources are returned in JSON. You can specify the `application/atom+xml` type in the `Accept` header to return timeline resources in Atom format. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + */ + "activity/get-feeds": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["feed"]; + }; + }; + }; + }; + /** + * List gists for the authenticated user + * @description Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: + */ + "gists/list": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Create a gist + * @description Allows you to add a new gist with one or more files. + * + * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + */ + "gists/create": { + requestBody: { + content: { + "application/json": { + /** + * @description Description of the gist + * @example Example Ruby script + */ + description?: string; + /** + * @description Names and content for the files that make up the gist + * @example { + * "hello.rb": { + * "content": "puts \"Hello, World!\"" + * } + * } + */ + files: { + [key: string]: { + /** @description Content of the file */ + content: string; + }; + }; + public?: boolean | ("true" | "false"); + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/gists/aa5a315d61ae9438b18d */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List public gists + * @description List public gists sorted by most recently updated to least recently updated. + * + * Note: With [pagination](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + */ + "gists/list-public": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List starred gists + * @description List the authenticated user's starred gists: + */ + "gists/list-starred": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a gist + * @description Gets a specified gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/get": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden_gist"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a gist */ + "gists/delete": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a gist + * @description Allows you to update a gist's description and to update, delete, or rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. + */ + "gists/update": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The description of the gist. + * @example Example Ruby script + */ + description?: string; + /** + * @description The gist files to be updated, renamed, or deleted. Each `key` must match the current filename + * (including extension) of the targeted gist file. For example: `hello.py`. + * + * To delete a file, set the whole file to null. For example: `hello.py : null`. + * @example { + * "hello.rb": { + * "content": "blah", + * "filename": "goodbye.rb" + * } + * } + */ + files?: { + [key: string]: { + /** @description The new content of the file. */ + content?: string; + /** @description The new filename for the file. */ + filename?: string | null; + }; + }; + } | null; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List gist comments + * @description Lists the comments on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/list-comments": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["gist-comment"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a gist comment + * @description Creates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/create-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The comment text. + * @example Body of the attachment + */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/gists/a6db0bec360bb87e9418/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["gist-comment"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a gist comment + * @description Gets a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/get-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-comment"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden_gist"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a gist comment */ + "gists/delete-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a gist comment + * @description Updates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/update-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The comment text. + * @example Body of the attachment + */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** List gist commits */ + "gists/list-commits": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + /** @example ; rel="next" */ + Link?: string; + }; + content: { + "application/json": components["schemas"]["gist-commit"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** List gist forks */ + "gists/list-forks": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["gist-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Fork a gist */ + "gists/fork": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/gists/aa5a315d61ae9438b18d */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["base-gist"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Check if a gist is starred */ + "gists/check-is-starred": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response if gist is starred */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + /** @description Not Found if gist is not starred */ + 404: { + content: { + "application/json": Record; + }; + }; + }; + }; + /** + * Star a gist + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "gists/star": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Unstar a gist */ + "gists/unstar": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a gist revision + * @description Gets a specified gist revision. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/get-revision": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + sha: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all gitignore templates + * @description List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user). + */ + "gitignore/get-all-templates": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a gitignore template + * @description Get the content of a gitignore template. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw .gitignore contents. + */ + "gitignore/get-template": { + parameters: { + path: { + name: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gitignore-template"]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * List repositories accessible to the app installation + * @description List repositories that an app installation can access. + */ + "apps/list-repos-accessible-to-installation": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["repository"][]; + /** @example selected */ + repository_selection?: string; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Revoke an installation access token + * @description Revokes the installation token you're using to authenticate as an installation and access this endpoint. + * + * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app)" endpoint. + */ + "apps/revoke-installation-access-token": { + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List issues assigned to the authenticated user + * @description List issues assigned to the authenticated user across all visible repositories including owned repositories, member + * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not + * necessarily assigned to you. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list": { + parameters: { + query?: { + /** @description Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. */ + filter?: + | "assigned" + | "created" + | "mentioned" + | "subscribed" + | "repos" + | "all"; + /** @description Indicates the state of the issues to return. */ + state?: "open" | "closed" | "all"; + labels?: components["parameters"]["labels"]; + /** @description What to sort results by. */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + collab?: boolean; + orgs?: boolean; + owned?: boolean; + pulls?: boolean; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all commonly used licenses + * @description Lists the most commonly used licenses on GitHub. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + "licenses/get-all-commonly-used": { + parameters: { + query?: { + featured?: boolean; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["license-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a license + * @description Gets information about a specific license. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + "licenses/get": { + parameters: { + path: { + license: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["license"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Render a Markdown document */ + "markdown/render": { + requestBody: { + content: { + "application/json": { + /** @description The Markdown text to render in HTML. */ + text: string; + /** + * @description The rendering mode. + * @default markdown + * @example markdown + * @enum {string} + */ + mode?: "markdown" | "gfm"; + /** @description The repository context to use when creating references in `gfm` mode. For example, setting `context` to `octo-org/octo-repo` will change the text `#42` into an HTML link to issue 42 in the `octo-org/octo-repo` repository. */ + context?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + "Content-Type": components["headers"]["content-type"]; + /** @example 279 */ + "Content-Length"?: string; + "X-CommonMarker-Version": components["headers"]["x-common-marker-version"]; + }; + content: { + "text/html": string; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Render a Markdown document in raw mode + * @description You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. + */ + "markdown/render-raw": { + requestBody?: { + content: { + "text/plain": string; + "text/x-markdown": string; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + "X-CommonMarker-Version": components["headers"]["x-common-marker-version"]; + }; + content: { + "text/html": string; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a subscription plan for an account + * @description Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/get-subscription-plan-for-account": { + parameters: { + path: { + account_id: components["parameters"]["account-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["marketplace-purchase"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + /** @description Not Found when the account has not purchased the listing */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * List plans + * @description Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-plans": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["marketplace-listing-plan"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List accounts for a plan + * @description Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-accounts-for-plan": { + parameters: { + query?: { + sort?: components["parameters"]["sort"]; + /** @description To return the oldest accounts first, set to `asc`. Ignored without the `sort` parameter. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + plan_id: components["parameters"]["plan-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["marketplace-purchase"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a subscription plan for an account (stubbed) + * @description Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/get-subscription-plan-for-account-stubbed": { + parameters: { + path: { + account_id: components["parameters"]["account-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["marketplace-purchase"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + /** @description Not Found when the account has not purchased the listing */ + 404: { + content: never; + }; + }; + }; + /** + * List plans (stubbed) + * @description Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-plans-stubbed": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["marketplace-listing-plan"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * List accounts for a plan (stubbed) + * @description Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-accounts-for-plan-stubbed": { + parameters: { + query?: { + sort?: components["parameters"]["sort"]; + /** @description To return the oldest accounts first, set to `asc`. Ignored without the `sort` parameter. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + plan_id: components["parameters"]["plan-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["marketplace-purchase"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * Get GitHub meta information + * @description Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://docs.github.com/articles/about-github-s-ip-addresses/)." + * + * The API's response also includes a list of GitHub's domain names. + * + * The values shown in the documentation's response are example values. You must always query the API directly to get the latest values. + * + * **Note:** This endpoint returns both IPv4 and IPv6 addresses. However, not all features support IPv6. You should refer to the specific documentation for each feature to determine if IPv6 is supported. + */ + "meta/get": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["api-overview"]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** List public events for a network of repositories */ + "activity/list-public-events-for-repo-network": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List notifications for the authenticated user + * @description List all notifications for the current user, sorted by most recently updated. + */ + "activity/list-notifications-for-authenticated-user": { + parameters: { + query?: { + all?: components["parameters"]["all"]; + participating?: components["parameters"]["participating"]; + since?: components["parameters"]["since"]; + before?: components["parameters"]["before"]; + page?: components["parameters"]["page"]; + /** @description The number of results per page (max 50). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["thread"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Mark notifications as read + * @description Marks all notifications as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + "activity/mark-notifications-as-read": { + requestBody?: { + content: { + "application/json": { + /** + * Format: date-time + * @description Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; + /** @description Whether the notification has been read. */ + read?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": { + message?: string; + }; + }; + }; + /** @description Reset Content */ + 205: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a thread + * @description Gets information about a notification thread. + */ + "activity/get-thread": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["thread"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Mark a thread as done + * @description Marks a thread as "done." Marking a thread as "done" is equivalent to marking a notification in your notification inbox on GitHub as done: https://github.com/notifications. + */ + "activity/mark-thread-as-done": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description No content */ + 204: { + content: never; + }; + }; + }; + /** + * Mark a thread as read + * @description Marks a thread as "read." Marking a thread as "read" is equivalent to clicking a notification in your notification inbox on GitHub: https://github.com/notifications. + */ + "activity/mark-thread-as-read": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description Reset Content */ + 205: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a thread subscription for the authenticated user + * @description This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/activity/watching#get-a-repository-subscription). + * + * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + */ + "activity/get-thread-subscription-for-authenticated-user": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["thread-subscription"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Set a thread subscription + * @description If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**. + * + * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. + * + * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription) endpoint. + */ + "activity/set-thread-subscription": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Whether to block all notifications from a thread. + * @default false + */ + ignored?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["thread-subscription"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Delete a thread subscription + * @description Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/activity/notifications#set-a-thread-subscription) endpoint and set `ignore` to `true`. + */ + "activity/delete-thread-subscription": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get Octocat + * @description Get the octocat as ASCII art + */ + "meta/get-octocat": { + parameters: { + query?: { + /** @description The words to show in Octocat's speech bubble */ + s?: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/octocat-stream": string; + }; + }; + }; + }; + /** + * List organizations + * @description Lists all organizations, in the order that they were created. + * + * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of organizations. + */ + "orgs/list": { + parameters: { + query?: { + since?: components["parameters"]["since-org"]; + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + /** @example ; rel="next" */ + Link?: string; + }; + content: { + "application/json": components["schemas"]["organization-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get an organization + * @description Gets information about an organization. + * + * When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://docs.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * + * To see the full details about an organization, the authenticated user must be an organization owner. + * + * The values returned by this endpoint are set by the "Update an organization" endpoint. If your organization set a default security configuration (beta), the following values retrieved from the "Update an organization" endpoint have been overwritten by that configuration: + * + * - advanced_security_enabled_for_new_repositories + * - dependabot_alerts_enabled_for_new_repositories + * - dependabot_security_updates_enabled_for_new_repositories + * - dependency_graph_enabled_for_new_repositories + * - secret_scanning_enabled_for_new_repositories + * - secret_scanning_push_protection_enabled_for_new_repositories + * + * For more information on security configurations, see "[Enabling security features at scale](https://docs.github.com/code-security/securing-your-organization/introduction-to-securing-your-organization-at-scale/about-enabling-security-features-at-scale)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to see the full details about an organization. + * + * To see information about an organization's GitHub plan, GitHub Apps need the `Organization plan` permission. + */ + "orgs/get": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-full"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an organization + * @description Deletes an organization and all its repositories. + * + * The organization login will be unavailable for 90 days after deletion. + * + * Please review the Terms of Service regarding account deletion before using this endpoint: + * + * https://docs.github.com/site-policy/github-terms/github-terms-of-service + */ + "orgs/delete": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update an organization + * @description **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * + * Updates the organization's profile and member privileges. + * + * With security configurations (beta), your organization can choose a default security configuration which will automatically apply a set of security enablement settings to new repositories in your organization based on their visibility. For targeted repositories, the following attributes will be overridden by the default security configuration: + * + * - advanced_security_enabled_for_new_repositories + * - dependabot_alerts_enabled_for_new_repositories + * - dependabot_security_updates_enabled_for_new_repositories + * - dependency_graph_enabled_for_new_repositories + * - secret_scanning_enabled_for_new_repositories + * - secret_scanning_push_protection_enabled_for_new_repositories + * + * For more information on setting a default security configuration, see "[Enabling security features at scale](https://docs.github.com/code-security/securing-your-organization/introduction-to-securing-your-organization-at-scale/about-enabling-security-features-at-scale)." + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` or `repo` scope to use this endpoint. + */ + "orgs/update": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Billing email address. This address is not publicized. */ + billing_email?: string; + /** @description The company name. */ + company?: string; + /** @description The publicly visible email address. */ + email?: string; + /** @description The Twitter username of the company. */ + twitter_username?: string; + /** @description The location. */ + location?: string; + /** @description The shorthand name of the company. */ + name?: string; + /** @description The description of the company. The maximum size is 160 characters. */ + description?: string; + /** @description Whether an organization can use organization projects. */ + has_organization_projects?: boolean; + /** @description Whether repositories that belong to the organization can use repository projects. */ + has_repository_projects?: boolean; + /** + * @description Default permission level members have for organization repositories. + * @default read + * @enum {string} + */ + default_repository_permission?: "read" | "write" | "admin" | "none"; + /** + * @description Whether of non-admin organization members can create repositories. **Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details. + * @default true + */ + members_can_create_repositories?: boolean; + /** @description Whether organization members can create internal repositories, which are visible to all enterprise members. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see "[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. */ + members_can_create_internal_repositories?: boolean; + /** @description Whether organization members can create private repositories, which are visible to organization members with permission. For more information, see "[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. */ + members_can_create_private_repositories?: boolean; + /** @description Whether organization members can create public repositories, which are visible to anyone. For more information, see "[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. */ + members_can_create_public_repositories?: boolean; + /** + * @description Specifies which types of repositories non-admin organization members can create. `private` is only available to repositories that are part of an organization on GitHub Enterprise Cloud. + * **Note:** This parameter is deprecated and will be removed in the future. Its return value ignores internal repositories. Using this parameter overrides values set in `members_can_create_repositories`. See the parameter deprecation notice in the operation description for details. + * @enum {string} + */ + members_allowed_repository_creation_type?: "all" | "private" | "none"; + /** + * @description Whether organization members can create GitHub Pages sites. Existing published sites will not be impacted. + * @default true + */ + members_can_create_pages?: boolean; + /** + * @description Whether organization members can create public GitHub Pages sites. Existing published sites will not be impacted. + * @default true + */ + members_can_create_public_pages?: boolean; + /** + * @description Whether organization members can create private GitHub Pages sites. Existing published sites will not be impacted. + * @default true + */ + members_can_create_private_pages?: boolean; + /** + * @description Whether organization members can fork private organization repositories. + * @default false + */ + members_can_fork_private_repositories?: boolean; + /** + * @description Whether contributors to organization repositories are required to sign off on commits they make through GitHub's web interface. + * @default false + */ + web_commit_signoff_required?: boolean; + /** @example "http://github.blog" */ + blog?: string; + /** + * @description Whether GitHub Advanced Security is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + advanced_security_enabled_for_new_repositories?: boolean; + /** + * @description Whether Dependabot alerts is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + dependabot_alerts_enabled_for_new_repositories?: boolean; + /** + * @description Whether Dependabot security updates is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + dependabot_security_updates_enabled_for_new_repositories?: boolean; + /** + * @description Whether dependency graph is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + dependency_graph_enabled_for_new_repositories?: boolean; + /** + * @description Whether secret scanning is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + secret_scanning_enabled_for_new_repositories?: boolean; + /** + * @description Whether secret scanning push protection is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + secret_scanning_push_protection_enabled_for_new_repositories?: boolean; + /** @description Whether a custom link is shown to contributors who are blocked from pushing a secret by push protection. */ + secret_scanning_push_protection_custom_link_enabled?: boolean; + /** @description If `secret_scanning_push_protection_custom_link_enabled` is true, the URL that will be displayed to contributors who are blocked from pushing a secret. */ + secret_scanning_push_protection_custom_link?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-full"]; + }; + }; + 409: components["responses"]["conflict"]; + /** @description Validation failed */ + 422: { + content: { + "application/json": + | components["schemas"]["validation-error"] + | components["schemas"]["validation-error-simple"]; + }; + }; + }; + }; + /** + * Get GitHub Actions cache usage for an organization + * @description Gets the total GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + "actions/get-actions-cache-usage-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["actions-cache-usage-org-enterprise"]; + }; + }; + }; + }; + /** + * List repositories with GitHub Actions cache usage for an organization + * @description Lists repositories and their GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + "actions/get-actions-cache-usage-by-repo-for-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + repository_cache_usages: components["schemas"]["actions-cache-usage-by-repository"][]; + }; + }; + }; + }; + }; + /** + * Get the customization template for an OIDC subject claim for an organization + * @description Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + "oidc/get-oidc-custom-sub-template-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description A JSON serialized template for OIDC subject claim customization */ + 200: { + content: { + "application/json": components["schemas"]["oidc-custom-sub"]; + }; + }; + }; + }; + /** + * Set the customization template for an OIDC subject claim for an organization + * @description Creates or updates the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + "oidc/update-oidc-custom-sub-template-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["oidc-custom-sub"]; + }; + }; + responses: { + /** @description Empty response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get GitHub Actions permissions for an organization + * @description Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/get-github-actions-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-organization-permissions"]; + }; + }; + }; + }; + /** + * Set GitHub Actions permissions for an organization + * @description Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/set-github-actions-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + enabled_repositories: components["schemas"]["enabled-repositories"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories enabled for GitHub Actions in an organization + * @description Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/list-selected-repositories-enabled-github-actions-organization": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["repository"][]; + }; + }; + }; + }; + }; + /** + * Set selected repositories enabled for GitHub Actions in an organization + * @description Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/set-selected-repositories-enabled-github-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description List of repository IDs to enable for GitHub Actions. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Enable a selected repository for GitHub Actions in an organization + * @description Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/enable-selected-repository-github-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Disable a selected repository for GitHub Actions in an organization + * @description Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/disable-selected-repository-github-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get allowed actions and reusable workflows for an organization + * @description Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/get-allowed-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + }; + /** + * Set allowed actions and reusable workflows for an organization + * @description Sets the actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/set-allowed-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get default workflow permissions for an organization + * @description Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, + * as well as whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/get-github-actions-default-workflow-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-get-default-workflow-permissions"]; + }; + }; + }; + }; + /** + * Set default workflow permissions for an organization + * @description Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, and sets if GitHub Actions + * can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/set-github-actions-default-workflow-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["actions-set-default-workflow-permissions"]; + }; + }; + responses: { + /** @description Success response */ + 204: { + content: never; + }; + }; + }; + /** + * List self-hosted runners for an organization + * @description Lists all self-hosted runners configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-self-hosted-runners-for-org": { + parameters: { + query?: { + /** @description The name of a self-hosted runner. */ + name?: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + runners: components["schemas"]["runner"][]; + }; + }; + }; + }; + }; + /** + * List runner applications for an organization + * @description Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-runner-applications-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["runner-application"][]; + }; + }; + }; + }; + /** + * Create configuration for a just-in-time runner for an organization + * @description Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the organization. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/generate-runner-jitconfig-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the new runner. */ + name: string; + /** @description The ID of the runner group to register the runner to. */ + runner_group_id: number; + /** @description The names of the custom labels to add to the runner. **Minimum items**: 1. **Maximum items**: 100. */ + labels: string[]; + /** + * @description The working directory to be used for job execution, relative to the runner install directory. + * @default _work + */ + work_folder?: string; + }; + }; + }; + responses: { + 201: components["responses"]["actions_runner_jitconfig"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Create a registration token for an organization + * @description Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-registration-token-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Create a remove token for an organization + * @description Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-remove-token-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Get a self-hosted runner for an organization + * @description Gets a specific self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/get-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["runner"]; + }; + }; + }; + }; + /** + * Delete a self-hosted runner from an organization + * @description Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-self-hosted-runner-from-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List labels for a self-hosted runner for an organization + * @description Lists all labels for a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-labels-for-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set custom labels for a self-hosted runner for an organization + * @description Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/set-custom-labels-for-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to set for the runner. You can pass an empty array to remove all custom labels. */ + labels: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Add custom labels to a self-hosted runner for an organization + * @description Adds custom labels to a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/add-custom-labels-to-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to add to the runner. */ + labels: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Remove all custom labels from a self-hosted runner for an organization + * @description Remove all custom labels from a self-hosted runner configured in an + * organization. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/remove-all-custom-labels-from-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels_readonly"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a custom label from a self-hosted runner for an organization + * @description Remove a custom label from a self-hosted runner configured + * in an organization. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/remove-custom-label-from-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + name: components["parameters"]["runner-label-name"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List organization secrets + * @description Lists all secrets available in an organization without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-org-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["organization-actions-secret"][]; + }; + }; + }; + }; + }; + /** + * Get an organization public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-org-public-key": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + }; + /** + * Get an organization secret + * @description Gets a single organization secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-actions-secret"]; + }; + }; + }; + }; + /** + * Create or update an organization secret + * @description Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to + * use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "actions/create-or-update-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/actions#get-an-organization-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + /** + * @description Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids?: (number | string)[]; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete an organization secret + * @description Deletes a secret in an organization using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-selected-repos-for-org-secret": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + }; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/set-selected-repos-for-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Add selected repository to an organization secret](https://docs.github.com/rest/actions/secrets#add-selected-repository-to-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/actions/secrets#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. For more information about setting the visibility, see [Create or + * update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/add-selected-repo-to-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was added to the selected list */ + 204: { + content: never; + }; + /** @description Conflict when visibility type is not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/remove-selected-repo-from-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response when repository was removed from the selected list */ + 204: { + content: never; + }; + /** @description Conflict when visibility type not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * List organization variables + * @description Lists all organization variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-org-variables": { + parameters: { + query?: { + per_page?: components["parameters"]["variables-per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + variables: components["schemas"]["organization-actions-variable"][]; + }; + }; + }; + }; + }; + /** + * Create an organization variable + * @description Creates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name: string; + /** @description The value of the variable. */ + value: string; + /** + * @description The type of repositories in the organization that can access the variable. `selected` means only the repositories specified by `selected_repository_ids` can access the variable. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization variable. You can only provide a list of repository ids when the `visibility` is set to `selected`. */ + selected_repository_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response when creating a variable */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Get an organization variable + * @description Gets a specific variable in an organization. + * + * The authenticated user must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-actions-variable"]; + }; + }; + }; + }; + /** + * Delete an organization variable + * @description Deletes an organization variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update an organization variable + * @description Updates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/update-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name?: string; + /** @description The value of the variable. */ + value?: string; + /** + * @description The type of repositories in the organization that can access the variable. `selected` means only the repositories specified by `selected_repository_ids` can access the variable. + * @enum {string} + */ + visibility?: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization variable. You can only provide a list of repository ids when the `visibility` is set to `selected`. */ + selected_repository_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories for an organization variable + * @description Lists all repositories that can access an organization variable + * that is available to selected repositories. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-selected-repos-for-org-variable": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + /** @description Response when the visibility of the variable is not set to `selected` */ + 409: { + content: never; + }; + }; + }; + /** + * Set selected repositories for an organization variable + * @description Replaces all repositories for an organization variable that is available + * to selected repositories. Organization variables that are available to selected + * repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/set-selected-repos-for-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The IDs of the repositories that can access the organization variable. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response when the visibility of the variable is not set to `selected` */ + 409: { + content: never; + }; + }; + }; + /** + * Add selected repository to an organization variable + * @description Adds a repository to an organization variable that is available to selected repositories. + * Organization variables that are available to selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/add-selected-repo-to-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response when the visibility of the variable is not set to `selected` */ + 409: { + content: never; + }; + }; + }; + /** + * Remove selected repository from an organization variable + * @description Removes a repository from an organization variable that is + * available to selected repositories. Organization variables that are available to + * selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/remove-selected-repo-from-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response when the visibility of the variable is not set to `selected` */ + 409: { + content: never; + }; + }; + }; + /** + * List users blocked by an organization + * @description List the users blocked by an organization. + */ + "orgs/list-blocked-users": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Check if a user is blocked by an organization + * @description Returns a 204 if the given user is blocked by the given organization. Returns a 404 if the organization is not blocking the user, or if the user account has been identified as spam by GitHub. + */ + "orgs/check-blocked-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description If the user is blocked */ + 204: { + content: never; + }; + /** @description If the user is not blocked */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Block a user from an organization + * @description Blocks the given user on behalf of the specified organization and returns a 204. If the organization cannot block the given user a 422 is returned. + */ + "orgs/block-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Unblock a user from an organization + * @description Unblocks the given user on behalf of the specified organization. + */ + "orgs/unblock-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List code scanning alerts for an organization + * @description Lists code scanning alerts for the default branch for all eligible repositories in an organization. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` or `repo`s cope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/list-alerts-for-org": { + parameters: { + query?: { + tool_name?: components["parameters"]["tool-name"]; + tool_guid?: components["parameters"]["tool-guid"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + direction?: components["parameters"]["direction"]; + /** @description If specified, only code scanning alerts with this state will be returned. */ + state?: components["schemas"]["code-scanning-alert-state-query"]; + /** @description The property by which to sort the results. */ + sort?: "created" | "updated"; + /** @description If specified, only code scanning alerts with this severity will be returned. */ + severity?: components["schemas"]["code-scanning-alert-severity"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["code-scanning-organization-alert-items"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List codespaces for the organization + * @description Lists the codespaces associated to a specified organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/list-in-organization": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Manage access control for organization codespaces + * @deprecated + * @description Sets which users can access codespaces in an organization. This is synonymous with granting or revoking codespaces access permissions for users according to the visibility. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/set-codespaces-access": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Which users can access codespaces in the organization. `disabled` means that no users can access codespaces in the organization. + * @enum {string} + */ + visibility: + | "disabled" + | "selected_members" + | "all_members" + | "all_members_and_outside_collaborators"; + /** @description The usernames of the organization members who should have access to codespaces in the organization. Required when `visibility` is `selected_members`. The provided list of usernames will replace any existing value. */ + selected_usernames?: string[]; + }; + }; + }; + responses: { + /** @description Response when successfully modifying permissions. */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + /** @description Users are neither members nor collaborators of this organization. */ + 400: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Add users to Codespaces access for an organization + * @deprecated + * @description Codespaces for the specified users will be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/set-codespaces-access-users": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The usernames of the organization members whose codespaces be billed to the organization. */ + selected_usernames: string[]; + }; + }; + }; + responses: { + /** @description Response when successfully modifying permissions. */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + /** @description Users are neither members nor collaborators of this organization. */ + 400: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Remove users from Codespaces access for an organization + * @deprecated + * @description Codespaces for the specified users will no longer be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/delete-codespaces-access-users": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The usernames of the organization members whose codespaces should not be billed to the organization. */ + selected_usernames: string[]; + }; + }; + }; + responses: { + /** @description Response when successfully modifying permissions. */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + /** @description Users are neither members nor collaborators of this organization. */ + 400: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List organization secrets + * @description Lists all Codespaces development environment secrets available at the organization-level without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/list-org-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["codespaces-org-secret"][]; + }; + }; + }; + }; + }; + /** + * Get an organization public key + * @description Gets a public key for an organization, which is required in order to encrypt secrets. You need to encrypt the value of a secret before you can create or update secrets. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/get-org-public-key": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-public-key"]; + }; + }; + }; + }; + /** + * Get an organization secret + * @description Gets an organization development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/get-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["codespaces-org-secret"]; + }; + }; + }; + }; + /** + * Create or update an organization secret + * @description Creates or updates an organization development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/create-or-update-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-public-key) endpoint. */ + encrypted_value?: string; + /** @description The ID of the key you used to encrypt the secret. */ + key_id?: string; + /** + * @description Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository IDs that can access the organization secret. You can only provide a list of repository IDs when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an organization secret + * @description Deletes an organization development environment secret using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/delete-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/list-selected-repos-for-org-secret": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/set-selected-repos-for-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description Conflict when visibility type not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization development environment secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/add-selected-repo-to-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was added to the selected list */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description Conflict when visibility type is not set to selected */ + 409: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/remove-selected-repo-from-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response when repository was removed from the selected list */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description Conflict when visibility type not set to selected */ + 409: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get Copilot seat information and settings for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Gets information about an organization's Copilot subscription, including seat breakdown + * and code matching policies. To configure these settings, go to your organization's settings on GitHub.com. + * For more information, see "[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-copilot-business-in-your-organization)". + * + * Only organization owners can configure and view details about the organization's Copilot Business subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/get-copilot-organization-details": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["copilot-organization-details"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description There is a problem with your account's associated payment method. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List all Copilot seat assignments for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Lists all Copilot seat assignments for an organization that are currently being billed (either active or pending cancellation at the start of the next billing cycle). + * + * Only organization owners can configure and view details about the organization's Copilot Business or Enterprise subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/list-copilot-seats": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + /** @description Total number of Copilot seats for the organization currently being billed. */ + total_seats?: number; + seats?: components["schemas"]["copilot-seat-details"][]; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Add teams to the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for all users within each specified team. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/add-copilot-seats-for-teams": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description List of team names within the organization to which to grant access to GitHub Copilot. */ + selected_teams: string[]; + }; + }; + }; + responses: { + /** @description OK */ + 201: { + content: { + "application/json": { + seats_created: number; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, or the organization's Copilot access setting is set to enable Copilot for all users or is unconfigured. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Remove teams from the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for all members of each team specified. + * This will cause the members of the specified team(s) to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/cancel-copilot-seat-assignment-for-teams": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of teams from which to revoke access to GitHub Copilot. */ + selected_teams: string[]; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": { + seats_cancelled: number; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, or the organization's Copilot access setting is set to enable Copilot for all users or is unconfigured. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Add users to the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for each user specified. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/add-copilot-seats-for-users": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The usernames of the organization members to be granted access to GitHub Copilot. */ + selected_usernames: string[]; + }; + }; + }; + responses: { + /** @description OK */ + 201: { + content: { + "application/json": { + seats_created: number; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, or the organization's Copilot access setting is set to enable Copilot for all users or is unconfigured. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Remove users from the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for each user specified. + * This will cause the specified users to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/cancel-copilot-seat-assignment-for-users": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The usernames of the organization members for which to revoke access to GitHub Copilot. */ + selected_usernames: string[]; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": { + seats_cancelled: number; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, the seat management setting is set to enable Copilot for all users or is unconfigured, or a user's seat cannot be cancelled because it was assigned to them via a team. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get a summary of Copilot usage for organization members + * @description **Note**: This endpoint is in beta and is subject to change. + * + * You can use this endpoint to see a daily breakdown of aggregated usage metrics for Copilot completions and Copilot Chat in the IDE + * across an organization, with a further breakdown of suggestions, acceptances, and number of active users by editor and language for each day. + * See the response schema tab for detailed metrics definitions. + * + * The response contains metrics for the prior 28 days. Usage metrics are processed once per day for the previous day, + * and the response will only include data up until yesterday. In order for an end user to be counted towards these metrics, + * they must have telemetry enabled in their IDE. + * + * Copilot Business or Copilot Enterprise organization owners, and owners and billing managers of their parent enterprises, can view + * Copilot usage metrics. + * + * OAuth app tokens and personal access tokens (classic) need the `copilot`, `manage_billing:copilot`, `admin:org`, `admin:enterprise`, or `manage_billing:enterprise` scope to use this endpoint. + */ + "copilot/usage-metrics-for-org": { + parameters: { + query?: { + /** @description Show usage metrics since this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`). Maximum value is 28 days ago. */ + since?: string; + /** @description Show usage metrics until this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`) and should not preceed the `since` date if it is passed. */ + until?: string; + page?: components["parameters"]["page"]; + /** @description The number of days of metrics to display per page (max 28). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["copilot-usage-metrics"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List Dependabot alerts for an organization + * @description Lists Dependabot alerts for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "dependabot/list-alerts-for-org": { + parameters: { + query?: { + state?: components["parameters"]["dependabot-alert-comma-separated-states"]; + severity?: components["parameters"]["dependabot-alert-comma-separated-severities"]; + ecosystem?: components["parameters"]["dependabot-alert-comma-separated-ecosystems"]; + package?: components["parameters"]["dependabot-alert-comma-separated-packages"]; + scope?: components["parameters"]["dependabot-alert-scope"]; + sort?: components["parameters"]["dependabot-alert-sort"]; + direction?: components["parameters"]["direction"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + first?: components["parameters"]["pagination-first"]; + last?: components["parameters"]["pagination-last"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert-with-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List organization secrets + * @description Lists all secrets available in an organization without revealing their + * encrypted values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/list-org-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["organization-dependabot-secret"][]; + }; + }; + }; + }; + }; + /** + * Get an organization public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/get-org-public-key": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-public-key"]; + }; + }; + }; + }; + /** + * Get an organization secret + * @description Gets a single organization secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/get-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-dependabot-secret"]; + }; + }; + }; + }; + /** + * Create or update an organization secret + * @description Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization + * permission to use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "dependabot/create-or-update-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + /** + * @description Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids?: (string | number)[]; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete an organization secret + * @description Deletes a secret in an organization using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/delete-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/list-selected-repos-for-org-secret": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + }; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/set-selected-repos-for-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/dependabot/secrets#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. The visibility is set when you [Create or + * update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/add-selected-repo-to-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was added to the selected list */ + 204: { + content: never; + }; + /** @description Conflict when visibility type is not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/remove-selected-repo-from-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response when repository was removed from the selected list */ + 204: { + content: never; + }; + /** @description Conflict when visibility type not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * Get list of conflicting packages during Docker migration for organization + * @description Lists all packages that are in a specific organization, are readable by the requesting user, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + "packages/list-docker-migration-conflicting-packages-for-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** List public organization events */ + "activity/list-public-org-events": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** + * List failed organization invitations + * @description The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. + */ + "orgs/list-failed-invitations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organization webhooks + * @description You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + "orgs/list-webhooks": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["org-hook"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create an organization webhook + * @description Create a hook that posts payloads in JSON format. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or + * edit webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + "orgs/create-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Must be passed as "web". */ + name: string; + /** @description Key/value pairs to provide settings for this webhook. */ + config: { + url: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + /** @example "kdaigle" */ + username?: string; + /** @example "password" */ + password?: string; + }; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. Set to `["*"]` to receive all possible events. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/orgs/octocat/hooks/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["org-hook"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an organization webhook + * @description Returns a webhook configured in an organization. To get only the webhook + * `config` properties, see "[Get a webhook configuration for an organization](/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization). + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + "orgs/get-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-hook"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an organization webhook + * @description You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + "orgs/delete-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update an organization webhook + * @description Updates a webhook configured in an organization. When you update a webhook, + * the `secret` will be overwritten. If you previously had a `secret` set, you must + * provide the same `secret` or set a new `secret` or the secret will be removed. If + * you are only updating individual webhook `config` properties, use "[Update a webhook + * configuration for an organization](/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization)". + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + "orgs/update-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Key/value pairs to provide settings for this webhook. */ + config?: { + url: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + /** @example "web" */ + name?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-hook"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a webhook configuration for an organization + * @description Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/orgs/webhooks#get-an-organization-webhook)." + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + "orgs/get-webhook-config-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * Update a webhook configuration for an organization + * @description Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/orgs/webhooks#update-an-organization-webhook)." + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + "orgs/update-webhook-config-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * List deliveries for an organization webhook + * @description Returns a list of webhook deliveries for a webhook configured in an organization. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + "orgs/list-webhook-deliveries": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + cursor?: components["parameters"]["cursor"]; + redelivery?: boolean; + }; + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery-item"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a webhook delivery for an organization webhook + * @description Returns a delivery for a webhook configured in an organization. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + "orgs/get-webhook-delivery": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery"]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Redeliver a delivery for an organization webhook + * @description Redeliver a delivery for a webhook configured in an organization. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + "orgs/redeliver-webhook-delivery": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Ping an organization webhook + * @description This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) + * to be sent to the hook. + * + * You must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit + * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps. + */ + "orgs/ping-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get an organization installation for the authenticated app + * @description Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-org-installation": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + }; + }; + /** + * List app installations for an organization + * @description Lists all GitHub Apps in an organization. The installation count includes + * all GitHub Apps installed on repositories in the organization. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:read` scope to use this endpoint. + */ + "orgs/list-app-installations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + installations: components["schemas"]["installation"][]; + }; + }; + }; + }; + }; + /** + * Get interaction restrictions for an organization + * @description Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response. + */ + "interactions/get-restrictions-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": + | components["schemas"]["interaction-limit-response"] + | Record; + }; + }; + }; + }; + /** + * Set interaction restrictions for an organization + * @description Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. + */ + "interactions/set-restrictions-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["interaction-limit"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove interaction restrictions for an organization + * @description Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. + */ + "interactions/remove-restrictions-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List pending organization invitations + * @description The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, or `hiring_manager`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + "orgs/list-pending-invitations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Filter invitations by their member role. */ + role?: + | "all" + | "admin" + | "direct_member" + | "billing_manager" + | "hiring_manager"; + /** @description Filter invitations by their invitation source. */ + invitation_source?: "all" | "member" | "scim"; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create an organization invitation + * @description Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + "orgs/create-invitation": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description **Required unless you provide `email`**. GitHub user ID for the person you are inviting. */ + invitee_id?: number; + /** @description **Required unless you provide `invitee_id`**. Email address of the person you are inviting, which can be an existing GitHub user. */ + email?: string; + /** + * @description The role for the new member. + * * `admin` - Organization owners with full administrative rights to the organization and complete access to all repositories and teams. + * * `direct_member` - Non-owner organization members with ability to see other members and join teams by invitation. + * * `billing_manager` - Non-owner organization members with ability to manage the billing settings of your organization. + * * `reinstate` - The previous role assigned to the invitee before they were removed from your organization. Can be one of the roles listed above. Only works if the invitee was previously part of your organization. + * @default direct_member + * @enum {string} + */ + role?: "admin" | "direct_member" | "billing_manager" | "reinstate"; + /** @description Specify IDs for the teams you want to invite new members to. */ + team_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["organization-invitation"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Cancel an organization invitation + * @description Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + */ + "orgs/cancel-invitation": { + parameters: { + path: { + org: components["parameters"]["org"]; + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List organization invitation teams + * @description List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + */ + "orgs/list-invitation-teams": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organization issues assigned to the authenticated user + * @description List issues in an organization assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-for-org": { + parameters: { + query?: { + /** @description Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. */ + filter?: + | "assigned" + | "created" + | "mentioned" + | "subscribed" + | "repos" + | "all"; + /** @description Indicates the state of the issues to return. */ + state?: "open" | "closed" | "all"; + labels?: components["parameters"]["labels"]; + /** @description What to sort results by. */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organization members + * @description List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + */ + "orgs/list-members": { + parameters: { + query?: { + /** @description Filter members returned in the list. `2fa_disabled` means that only members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled will be returned. This options is only available for organization owners. */ + filter?: "2fa_disabled" | "all"; + /** @description Filter members returned by their role. */ + role?: "all" | "admin" | "member"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Check organization membership for a user + * @description Check if a user is, publicly or privately, a member of the organization. + */ + "orgs/check-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response if requester is an organization member and user is a member */ + 204: { + content: never; + }; + /** @description Response if requester is not an organization member */ + 302: { + headers: { + /** @example https://api.github.com/orgs/github/public_members/pezra */ + Location?: string; + }; + content: never; + }; + /** @description Not Found if requester is an organization member and user is not a member */ + 404: { + content: never; + }; + }; + }; + /** + * Remove an organization member + * @description Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + */ + "orgs/remove-member": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List codespaces for a user in organization + * @description Lists the codespaces that a member of an organization has for repositories in that organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/get-codespaces-for-user-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Delete a codespace from the organization + * @description Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/delete-from-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Stop a codespace for an organization user + * @description Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/stop-in-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get Copilot seat assignment details for a user + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Gets the GitHub Copilot seat assignment details for a member of an organization who currently has access to GitHub Copilot. + * + * Organization owners can view GitHub Copilot seat assignment details for members in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/get-copilot-seat-details-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description The user's GitHub Copilot seat details, including usage. */ + 200: { + content: { + "application/json": components["schemas"]["copilot-seat-details"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization or the user has a pending organization invitation. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get organization membership for a user + * @description In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status. + */ + "orgs/get-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set organization membership for a user + * @description Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + */ + "orgs/set-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The role to give the user in the organization. Can be one of: + * * `admin` - The user will become an owner of the organization. + * * `member` - The user will become a non-owner member of the organization. + * @default member + * @enum {string} + */ + role?: "admin" | "member"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove organization membership for a user + * @description In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + */ + "orgs/remove-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organization migrations + * @description Lists the most recent migrations, including both exports (which can be started through the REST API) and imports (which cannot be started using the REST API). + * + * A list of `repositories` is only returned for export migrations. + */ + "migrations/list-for-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Exclude attributes from the API response to improve performance */ + exclude?: "repositories"[]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["migration"][]; + }; + }; + }; + }; + /** + * Start an organization migration + * @description Initiates the generation of a migration archive. + */ + "migrations/start-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A list of arrays indicating which repositories should be migrated. */ + repositories: string[]; + /** + * @description Indicates whether repositories should be locked (to prevent manipulation) while migrating data. + * @default false + * @example true + */ + lock_repositories?: boolean; + /** + * @description Indicates whether metadata should be excluded and only git source should be included for the migration. + * @default false + */ + exclude_metadata?: boolean; + /** + * @description Indicates whether the repository git data should be excluded from the migration. + * @default false + */ + exclude_git_data?: boolean; + /** + * @description Indicates whether attachments should be excluded from the migration (to reduce migration archive file size). + * @default false + * @example true + */ + exclude_attachments?: boolean; + /** + * @description Indicates whether releases should be excluded from the migration (to reduce migration archive file size). + * @default false + * @example true + */ + exclude_releases?: boolean; + /** + * @description Indicates whether projects owned by the organization or users should be excluded. from the migration. + * @default false + * @example true + */ + exclude_owner_projects?: boolean; + /** + * @description Indicates whether this should only include organization metadata (repositories array should be empty and will ignore other flags). + * @default false + * @example true + */ + org_metadata_only?: boolean; + /** @description Exclude related items from being returned in the response in order to improve performance of the request. */ + exclude?: "repositories"[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an organization migration status + * @description Fetches the status of a migration. + * + * The `state` of a migration can be one of the following values: + * + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + "migrations/get-status-for-org": { + parameters: { + query?: { + /** @description Exclude attributes from the API response to improve performance */ + exclude?: "repositories"[]; + }; + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** + * @description * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + 200: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Download an organization migration archive + * @description Fetches the URL to a migration archive. + */ + "migrations/download-archive-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 302: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an organization migration archive + * @description Deletes a previous migration archive. Migration archives are automatically deleted after seven days. + */ + "migrations/delete-archive-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unlock an organization repository + * @description Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/repos/repos#delete-a-repository) when the migration is complete and you no longer need the source data. + */ + "migrations/unlock-repo-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + repo_name: components["parameters"]["repo-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories in an organization migration + * @description List all the repositories for this organization migration. + */ + "migrations/list-repos-for-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organization fine-grained permissions for an organization + * @description Lists the fine-grained permissions that can be used in custom organization roles for an organization. For more information, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To list the fine-grained permissions that can be used in custom repository roles for an organization, see "[List repository fine-grained permissions for an organization](https://docs.github.com/rest/orgs/organization-roles#list-repository-fine-grained-permissions-for-an-organization)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/list-organization-fine-grained-permissions": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-fine-grained-permission"][]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all organization roles for an organization + * @description Lists the organization roles available in this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/list-org-roles": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response - list of organization roles */ + 200: { + content: { + "application/json": { + /** @description The total number of organization roles available to the organization. */ + total_count?: number; + /** @description The list of organization roles available to the organization. */ + roles?: components["schemas"]["organization-role"][]; + }; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a custom organization role + * @description Creates a custom organization role that can be assigned to users and teams, granting them specific permissions over the organization. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/create-custom-organization-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the custom role. */ + name: string; + /** @description A short description about the intended usage of this role or what permissions it grants. */ + description?: string; + /** @description A list of additional permissions included in this role. */ + permissions: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["organization-role"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove all organization roles for a team + * @description Removes all assigned organization roles from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/revoke-all-org-roles-team": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Assign an organization role to a team + * @description Assigns an organization role to a team in an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/assign-team-to-org-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response if the organization, team or role does not exist. */ + 404: { + content: never; + }; + /** @description Response if the organization roles feature is not enabled for the organization, or validation failed. */ + 422: { + content: never; + }; + }; + }; + /** + * Remove an organization role from a team + * @description Removes an organization role from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/revoke-org-role-team": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Remove all organization roles for a user + * @description Revokes all assigned organization roles from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/revoke-all-org-roles-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Assign an organization role to a user + * @description Assigns an organization role to a member of an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/assign-user-to-org-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response if the organization, user or role does not exist. */ + 404: { + content: never; + }; + /** @description Response if the organization roles feature is not enabled enabled for the organization, the validation failed, or the user is not an organization member. */ + 422: { + content: never; + }; + }; + }; + /** + * Remove an organization role from a user + * @description Remove an organization role from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/revoke-org-role-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get an organization role + * @description Gets an organization role that is available to this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/get-org-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-role"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a custom organization role. + * @description Deletes a custom organization role. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/delete-custom-organization-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a custom organization role + * @description Updates an existing custom organization role. Permission changes will apply to all assignees. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/patch-custom-organization-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the custom role. */ + name?: string; + /** @description A short description about the intended usage of this role or what permissions it grants. */ + description?: string; + /** @description A list of additional permissions included in this role. */ + permissions?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-role"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List teams that are assigned to an organization role + * @description Lists the teams that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/list-org-role-teams": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response - List of assigned teams */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + /** @description Response if the organization or role does not exist. */ + 404: { + content: never; + }; + /** @description Response if the organization roles feature is not enabled or validation failed. */ + 422: { + content: never; + }; + }; + }; + /** + * List users that are assigned to an organization role + * @description Lists organization members that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/list-org-role-users": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response - List of assigned users */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + /** @description Response if the organization or role does not exist. */ + 404: { + content: never; + }; + /** @description Response if the organization roles feature is not enabled or validation failed. */ + 422: { + content: never; + }; + }; + }; + /** + * List outside collaborators for an organization + * @description List all users who are outside collaborators of an organization. + */ + "orgs/list-outside-collaborators": { + parameters: { + query?: { + /** @description Filter the list of outside collaborators. `2fa_disabled` means that only outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled will be returned. */ + filter?: "2fa_disabled" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Convert an organization member to outside collaborator + * @description When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://docs.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". Converting an organization member to an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + */ + "orgs/convert-member-to-outside-collaborator": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description When set to `true`, the request will be performed asynchronously. Returns a 202 status code when the job is successfully queued. + * @default false + */ + async?: boolean; + }; + }; + }; + responses: { + /** @description User is getting converted asynchronously */ + 202: { + content: { + "application/json": Record; + }; + }; + /** @description User was converted */ + 204: { + content: never; + }; + /** @description Forbidden if user is the last owner of the organization, not a member of the organization, or if the enterprise enforces a policy for inviting outside collaborators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." */ + 403: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove outside collaborator from an organization + * @description Removing a user from this list will remove them from all the organization's repositories. + */ + "orgs/remove-outside-collaborator": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Unprocessable Entity if user is a member of the organization */ + 422: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + }; + }; + /** + * List packages for an organization + * @description Lists packages in an organization readable by the user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/list-packages-for-organization": { + parameters: { + query: { + /** @description The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + visibility?: components["parameters"]["package-visibility"]; + /** @description The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + page?: number; + /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 400: components["responses"]["package_es_list_error"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a package for an organization + * @description Gets a specific package in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-for-organization": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"]; + }; + }; + }; + }; + /** + * Delete a package for an organization + * @description Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-for-org": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore a package for an organization + * @description Restores an entire package in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-for-org": { + parameters: { + query?: { + /** @description package token */ + token?: string; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List package versions for a package owned by an organization + * @description Lists package versions for a package owned by an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-all-package-versions-for-package-owned-by-org": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + /** @description The state of the package, either active or deleted. */ + state?: "active" | "deleted"; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a package version for an organization + * @description Gets a specific package version in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-version-for-organization": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"]; + }; + }; + }; + }; + /** + * Delete package version for an organization + * @description Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-version-for-org": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore package version for an organization + * @description Restores a specific package version in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-version-for-org": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List requests to access organization resources with fine-grained personal access tokens + * @description Lists requests from organization members to access organization resources with a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/list-pat-grant-requests": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + sort?: components["parameters"]["personal-access-token-sort"]; + direction?: components["parameters"]["direction"]; + owner?: components["parameters"]["personal-access-token-owner"]; + repository?: components["parameters"]["personal-access-token-repository"]; + permission?: components["parameters"]["personal-access-token-permission"]; + last_used_before?: components["parameters"]["personal-access-token-before"]; + last_used_after?: components["parameters"]["personal-access-token-after"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-programmatic-access-grant-request"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Review requests to access organization resources with fine-grained personal access tokens + * @description Approves or denies multiple pending requests to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/review-pat-grant-requests-in-bulk": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Unique identifiers of the requests for access via fine-grained personal access token. Must be formed of between 1 and 100 `pat_request_id` values. */ + pat_request_ids?: number[]; + /** + * @description Action to apply to the requests. + * @enum {string} + */ + action: "approve" | "deny"; + /** @description Reason for approving or denying the requests. Max 1024 characters. */ + reason?: string | null; + }; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Review a request to access organization resources with a fine-grained personal access token + * @description Approves or denies a pending request to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/review-pat-grant-request": { + parameters: { + path: { + org: components["parameters"]["org"]; + /** @description Unique identifier of the request for access via fine-grained personal access token. */ + pat_request_id: number; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Action to apply to the request. + * @enum {string} + */ + action: "approve" | "deny"; + /** @description Reason for approving or denying the request. Max 1024 characters. */ + reason?: string | null; + }; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List repositories requested to be accessed by a fine-grained personal access token + * @description Lists the repositories a fine-grained personal access token request is requesting access to. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/list-pat-grant-request-repositories": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + /** @description Unique identifier of the request for access via fine-grained personal access token. */ + pat_request_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List fine-grained personal access tokens with access to organization resources + * @description Lists approved fine-grained personal access tokens owned by organization members that can access organization resources. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/list-pat-grants": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + sort?: components["parameters"]["personal-access-token-sort"]; + direction?: components["parameters"]["direction"]; + owner?: components["parameters"]["personal-access-token-owner"]; + repository?: components["parameters"]["personal-access-token-repository"]; + permission?: components["parameters"]["personal-access-token-permission"]; + last_used_before?: components["parameters"]["personal-access-token-before"]; + last_used_after?: components["parameters"]["personal-access-token-after"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-programmatic-access-grant"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update the access to organization resources via fine-grained personal access tokens + * @description Updates the access organization members have to organization resources via fine-grained personal access tokens. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/update-pat-accesses": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Action to apply to the fine-grained personal access token. + * @enum {string} + */ + action: "revoke"; + /** @description The IDs of the fine-grained personal access tokens. */ + pat_ids: number[]; + }; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update the access a fine-grained personal access token has to organization resources + * @description Updates the access an organization member has to organization resources via a fine-grained personal access token. Limited to revoking the token's existing access. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/update-pat-access": { + parameters: { + path: { + org: components["parameters"]["org"]; + pat_id: components["parameters"]["fine-grained-personal-access-token-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Action to apply to the fine-grained personal access token. + * @enum {string} + */ + action: "revoke"; + }; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List repositories a fine-grained personal access token has access to + * @description Lists the repositories a fine-grained personal access token has access to. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/list-pat-grant-repositories": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + /** @description Unique identifier of the fine-grained personal access token. */ + pat_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List organization projects + * @description Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/list-for-org": { + parameters: { + query?: { + /** @description Indicates the state of the projects to return. */ + state?: "open" | "closed" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project"][]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Create an organization project + * @description Creates an organization project board. Returns a `410 Gone` status if projects are disabled in the organization or if the organization does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/create-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the project. */ + name: string; + /** @description The description of the project. */ + body?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get all custom properties for an organization + * @description Gets all custom properties defined for an organization. + * Organization members can read these properties. + */ + "orgs/get-all-custom-properties": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-custom-property"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update custom properties for an organization + * @description Creates new or updates existing custom properties defined for an organization in a batch. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + "orgs/create-or-update-custom-properties": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The array of custom properties to create or update. */ + properties: components["schemas"]["org-custom-property"][]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-custom-property"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a custom property for an organization + * @description Gets a custom property that is defined for an organization. + * Organization members can read these properties. + */ + "orgs/get-custom-property": { + parameters: { + path: { + org: components["parameters"]["org"]; + custom_property_name: components["parameters"]["custom-property-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-custom-property"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update a custom property for an organization + * @description Creates a new or updates an existing custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + "orgs/create-or-update-custom-property": { + parameters: { + path: { + org: components["parameters"]["org"]; + custom_property_name: components["parameters"]["custom-property-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The type of the value for the property + * @example single_select + * @enum {string} + */ + value_type: "string" | "single_select"; + /** @description Whether the property is required. */ + required?: boolean; + /** @description Default value of the property */ + default_value?: string | string[] | null; + /** @description Short description of the property */ + description?: string | null; + /** + * @description An ordered list of the allowed values of the property. + * The property can have up to 200 allowed values. + */ + allowed_values?: string[] | null; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-custom-property"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a custom property for an organization + * @description Removes a custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + "orgs/remove-custom-property": { + parameters: { + path: { + org: components["parameters"]["org"]; + custom_property_name: components["parameters"]["custom-property-name"]; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List custom property values for organization repositories + * @description Lists organization repositories with all of their custom property values. + * Organization members can read these properties. + */ + "orgs/list-custom-properties-values-for-repos": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Finds repositories in the organization with a query containing one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching for repositories](https://docs.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. */ + repository_query?: string; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["org-repo-custom-property-values"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update custom property values for organization repositories + * @description Create new or update existing custom property values for repositories in a batch that belong to an organization. + * Each target repository will have its custom property values updated to match the values provided in the request. + * + * A maximum of 30 repositories can be updated in a single request. + * + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_values_editor` in the organization. + */ + "orgs/create-or-update-custom-properties-values-for-repos": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of repositories that the custom property values will be applied to. */ + repository_names: string[]; + /** @description List of custom property names and associated values to apply to the repositories. */ + properties: components["schemas"]["custom-property-value"][]; + }; + }; + }; + responses: { + /** @description No Content when custom property values are successfully created or updated */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List public organization members + * @description Members of an organization can choose to have their membership publicized or not. + */ + "orgs/list-public-members": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Check public organization membership for a user + * @description Check if the provided user is a public member of the organization. + */ + "orgs/check-public-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response if user is a public member */ + 204: { + content: never; + }; + /** @description Not Found if user is not a public member */ + 404: { + content: never; + }; + }; + }; + /** + * Set public organization membership for the authenticated user + * @description The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "orgs/set-public-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Remove public organization membership for the authenticated user + * @description Removes the public membership for the authenticated user from the specified organization, unless public visibility is enforced by default. + */ + "orgs/remove-public-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List organization repositories + * @description Lists repositories for the specified organization. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + "repos/list-for-org": { + parameters: { + query?: { + /** @description Specifies the types of repositories you want returned. */ + type?: "all" | "public" | "private" | "forks" | "sources" | "member"; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** @description The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Create an organization repository + * @description Creates a new repository in the specified organization. The authenticated user must be a member of the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + "repos/create-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the repository. */ + name: string; + /** @description A short description of the repository. */ + description?: string; + /** @description A URL with more information about the repository. */ + homepage?: string; + /** + * @description Whether the repository is private. + * @default false + */ + private?: boolean; + /** + * @description The visibility of the repository. + * @enum {string} + */ + visibility?: "public" | "private"; + /** + * @description Either `true` to enable issues for this repository or `false` to disable them. + * @default true + */ + has_issues?: boolean; + /** + * @description Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + * @default true + */ + has_projects?: boolean; + /** + * @description Either `true` to enable the wiki for this repository or `false` to disable it. + * @default true + */ + has_wiki?: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads?: boolean; + /** + * @description Either `true` to make this repo available as a template repository or `false` to prevent it. + * @default false + */ + is_template?: boolean; + /** @description The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. */ + team_id?: number; + /** + * @description Pass `true` to create an initial commit with empty README. + * @default false + */ + auto_init?: boolean; + /** @description Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell". */ + gitignore_template?: string; + /** @description Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://docs.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0". */ + license_template?: string; + /** + * @description Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + * @default true + */ + allow_squash_merge?: boolean; + /** + * @description Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge. + * @default false + */ + allow_auto_merge?: boolean; + /** + * @description Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. **The authenticated user must be an organization owner to set this property to `true`.** + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @deprecated + * @description Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** @description The custom properties for the new repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all organization repository rulesets + * @description Get all the repository rulesets for an organization. + */ + "repos/get-org-rulesets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"][]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create an organization repository ruleset + * @description Create a repository ruleset for an organization. + */ + "repos/create-org-ruleset": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + /** @description Request body */ + requestBody: { + content: { + "application/json": { + /** @description The name of the ruleset. */ + name: string; + /** + * @description The target of the ruleset + * + * **Note**: The `push` target is in beta and is subject to change. + * @enum {string} + */ + target?: "branch" | "tag" | "push"; + enforcement: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + conditions?: components["schemas"]["org-ruleset-conditions"]; + /** @description An array of rules within the ruleset. */ + rules?: components["schemas"]["repository-rule"][]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List organization rule suites + * @description Lists suites of rule evaluations at the organization level. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + "repos/get-org-rule-suites": { + parameters: { + query?: { + repository_name?: components["parameters"]["repository-name-in-query"]; + time_period?: components["parameters"]["time-period"]; + actor_name?: components["parameters"]["actor-name-in-query"]; + rule_suite_result?: components["parameters"]["rule-suite-result"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["rule-suites"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get an organization rule suite + * @description Gets information about a suite of rule evaluations from within an organization. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + "repos/get-org-rule-suite": { + parameters: { + path: { + org: components["parameters"]["org"]; + rule_suite_id: components["parameters"]["rule-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["rule-suite"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get an organization repository ruleset + * @description Get a repository ruleset for an organization. + */ + "repos/get-org-ruleset": { + parameters: { + path: { + org: components["parameters"]["org"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update an organization repository ruleset + * @description Update a ruleset for an organization. + */ + "repos/update-org-ruleset": { + parameters: { + path: { + org: components["parameters"]["org"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + /** @description Request body */ + requestBody?: { + content: { + "application/json": { + /** @description The name of the ruleset. */ + name?: string; + /** + * @description The target of the ruleset + * + * **Note**: The `push` target is in beta and is subject to change. + * @enum {string} + */ + target?: "branch" | "tag" | "push"; + enforcement?: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + conditions?: components["schemas"]["org-ruleset-conditions"]; + /** @description An array of rules within the ruleset. */ + rules?: components["schemas"]["repository-rule"][]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Delete an organization repository ruleset + * @description Delete a ruleset for an organization. + */ + "repos/delete-org-ruleset": { + parameters: { + path: { + org: components["parameters"]["org"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List secret scanning alerts for an organization + * @description Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/list-alerts-for-org": { + parameters: { + query?: { + state?: components["parameters"]["secret-scanning-alert-state"]; + secret_type?: components["parameters"]["secret-scanning-alert-secret-type"]; + resolution?: components["parameters"]["secret-scanning-alert-resolution"]; + sort?: components["parameters"]["secret-scanning-alert-sort"]; + direction?: components["parameters"]["direction"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + before?: components["parameters"]["secret-scanning-pagination-before-org-repo"]; + after?: components["parameters"]["secret-scanning-pagination-after-org-repo"]; + validity?: components["parameters"]["secret-scanning-alert-validity"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-secret-scanning-alert"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List repository security advisories for an organization + * @description Lists repository security advisories for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + "security-advisories/list-org-repository-advisories": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "published"; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + /** @description The number of advisories to return per page. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + /** @description Filter by the state of the repository advisories. Only advisories of this state will be returned. */ + state?: "triage" | "draft" | "published" | "closed"; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-advisory"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List security manager teams + * @description Lists teams that are security managers for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + "orgs/list-security-manager-teams": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-simple"][]; + }; + }; + }; + }; + /** + * Add a security manager team + * @description Adds a team as a security manager for an organization. For more information, see "[Managing security for an organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) for an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + "orgs/add-security-manager-team": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description The organization has reached the maximum number of security manager teams. */ + 409: { + content: never; + }; + }; + }; + /** + * Remove a security manager team + * @description Removes the security manager role from a team for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) team from an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/remove-security-manager-team": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get GitHub Actions billing for an organization + * @description Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + "billing/get-github-actions-billing-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-billing-usage"]; + }; + }; + }; + }; + /** + * Get GitHub Packages billing for an organization + * @description Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + "billing/get-github-packages-billing-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["packages-billing-usage"]; + }; + }; + }; + }; + /** + * Get shared storage billing for an organization + * @description Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + "billing/get-shared-storage-billing-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["combined-billing-usage"]; + }; + }; + }; + }; + /** + * Get a summary of Copilot usage for a team + * @description **Note**: This endpoint is in beta and is subject to change. + * + * You can use this endpoint to see a daily breakdown of aggregated usage metrics for Copilot completions and Copilot Chat in the IDE + * for users within a team, with a further breakdown of suggestions, acceptances, and number of active users by editor and language for each day. + * See the response schema tab for detailed metrics definitions. + * + * The response contains metrics for the prior 28 days. Usage metrics are processed once per day for the previous day, + * and the response will only include data up until yesterday. In order for an end user to be counted towards these metrics, + * they must have telemetry enabled in their IDE. + * + * **Note**: This endpoint will only return results for a given day if the team had five or more members on that day. + * + * Copilot Business or Copilot Enterprise organization owners for the organization that contains this team, + * and owners and billing managers of their parent enterprises, can view Copilot usage metrics for a team. + * + * OAuth app tokens and personal access tokens (classic) need the `copilot`, `manage_billing:copilot`, `admin:org`, `admin:enterprise`, or `manage_billing:enterprise` scope to use this endpoint. + */ + "copilot/usage-metrics-for-team": { + parameters: { + query?: { + /** @description Show usage metrics since this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`). Maximum value is 28 days ago. */ + since?: string; + /** @description Show usage metrics until this date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:MM:SSZ`) and should not preceed the `since` date if it is passed. */ + until?: string; + page?: components["parameters"]["page"]; + /** @description The number of days of metrics to display per page (max 28). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["copilot-usage-metrics"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List teams + * @description Lists all teams in an organization that are visible to the authenticated user. + */ + "teams/list": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Create a team + * @description To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://docs.github.com/articles/setting-team-creation-permissions-in-your-organization)." + * + * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/about-teams)". + */ + "teams/create": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the team. */ + name: string; + /** @description The description of the team. */ + description?: string; + /** @description List GitHub IDs for organization members who will become team maintainers. */ + maintainers?: string[]; + /** @description The full name (e.g., "organization-name/repository-name") of repositories to add the team to. */ + repo_names?: string[]; + /** + * @description The level of privacy this team should have. The options are: + * **For a non-nested team:** + * * `secret` - only visible to organization owners and members of this team. + * * `closed` - visible to all members of this organization. + * Default: `secret` + * **For a parent or child team:** + * * `closed` - visible to all members of this organization. + * Default for child team: `closed` + * @enum {string} + */ + privacy?: "secret" | "closed"; + /** + * @description The notification setting the team has chosen. The options are: + * * `notifications_enabled` - team members receive notifications when the team is @mentioned. + * * `notifications_disabled` - no one receives notifications. + * Default: `notifications_enabled` + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** + * @description **Deprecated**. The permission that new repositories will be added to the team with when none is specified. + * @default pull + * @enum {string} + */ + permission?: "pull" | "push"; + /** @description The ID of a team to set as the parent team. */ + parent_team_id?: number; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a team by name + * @description Gets a team using the team's `slug`. To create the `slug`, GitHub replaces special characters in the `name` string, changes all words to lowercase, and replaces spaces with a `-` separator. For example, `"My TEam Näme"` would become `my-team-name`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + */ + "teams/get-by-name": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a team + * @description To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + */ + "teams/delete-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a team + * @description To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + */ + "teams/update-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the team. */ + name?: string; + /** @description The description of the team. */ + description?: string; + /** + * @description The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. When a team is nested, the `privacy` for parent teams cannot be `secret`. The options are: + * **For a non-nested team:** + * * `secret` - only visible to organization owners and members of this team. + * * `closed` - visible to all members of this organization. + * **For a parent or child team:** + * * `closed` - visible to all members of this organization. + * @enum {string} + */ + privacy?: "secret" | "closed"; + /** + * @description The notification setting the team has chosen. Editing teams without specifying this parameter leaves `notification_setting` intact. The options are: + * * `notifications_enabled` - team members receive notifications when the team is @mentioned. + * * `notifications_disabled` - no one receives notifications. + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** + * @description **Deprecated**. The permission that new repositories will be added to the team with when none is specified. + * @default pull + * @enum {string} + */ + permission?: "pull" | "push" | "admin"; + /** @description The ID of a team to set as the parent team. */ + parent_team_id?: number | null; + }; + }; + }; + responses: { + /** @description Response when the updated information already exists */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List discussions + * @description List all discussions on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/list-discussions-in-org": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Pinned discussions only filter */ + pinned?: string; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-discussion"][]; + }; + }; + }; + }; + /** + * Create a discussion + * @description Creates a new discussion post on a team's page. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/create-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title: string; + /** @description The discussion post's body text. */ + body: string; + /** + * @description Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + * @default false + */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * Get a discussion + * @description Get a specific discussion on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/get-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * Delete a discussion + * @description Delete a discussion from a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/delete-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a discussion + * @description Edits the title and body text of a discussion post. Only the parameters you provide are updated. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/update-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title?: string; + /** @description The discussion post's body text. */ + body?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * List discussion comments + * @description List all comments on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/list-discussion-comments-in-org": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-discussion-comment"][]; + }; + }; + }; + }; + /** + * Create a discussion comment + * @description Creates a new comment on a team discussion. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/create-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * Get a discussion comment + * @description Get a specific comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/get-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * Delete a discussion comment + * @description Deletes a comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/delete-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a discussion comment + * @description Edits the body text of a discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/update-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * List reactions for a team discussion comment + * @description List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "reactions/list-for-team-discussion-comment-in-org": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create reaction for a team discussion comment + * @description Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/create-for-team-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the team discussion comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response when the reaction type has already been added to this team discussion comment */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + }; + /** + * Delete team discussion comment reaction + * @description **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/delete-for-team-discussion-comment": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List reactions for a team discussion + * @description List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "reactions/list-for-team-discussion-in-org": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create reaction for a team discussion + * @description Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/create-for-team-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the team discussion. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + }; + /** + * Delete team discussion reaction + * @description **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/delete-for-team-discussion": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List pending team invitations + * @description The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + */ + "teams/list-pending-invitations-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + }; + }; + /** + * List team members + * @description Team members will include the members of child teams. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + "teams/list-members-in-org": { + parameters: { + query?: { + /** @description Filters members returned by their role in the team. */ + role?: "member" | "maintainer" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Get team membership for a user + * @description Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + */ + "teams/get-membership-for-user-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + /** @description if user has no team membership */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team membership for a user + * @description Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + "teams/add-or-update-membership-for-user-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The role that this user should have in the team. + * @default member + * @enum {string} + */ + role?: "member" | "maintainer"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + /** @description Forbidden if team synchronization is set up */ + 403: { + content: never; + }; + /** @description Unprocessable Entity if you attempt to add an organization to a team */ + 422: { + content: never; + }; + }; + }; + /** + * Remove team membership for a user + * @description To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + "teams/remove-membership-for-user-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Forbidden if team synchronization is set up */ + 403: { + content: never; + }; + }; + }; + /** + * List team projects + * @description Lists the organization projects for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. + */ + "teams/list-projects-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-project"][]; + }; + }; + }; + }; + /** + * Check team permissions for a project + * @description Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/check-permissions-for-project-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-project"]; + }; + }; + /** @description Not Found if project is not managed by this team */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team project permissions + * @description Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/add-or-update-project-permissions-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant to the team for this project. Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * @enum {string} + */ + permission?: "read" | "write" | "admin"; + } | null; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Forbidden if the project is not owned by the organization */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + }; + }; + /** + * Remove a project from a team + * @description Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/remove-project-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List team repositories + * @description Lists a team's repositories visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. + */ + "teams/list-repos-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Check team permissions for a repository + * @description Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header. + * + * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. + * + * If the repository is private, you must have at least `read` permission for that repository, and your token must have the `repo` or `admin:org` scope. Otherwise, you will receive a `404 Not Found` response status. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + "teams/check-permissions-for-repo-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Alternative response with repository permissions */ + 200: { + content: { + "application/json": components["schemas"]["team-repository"]; + }; + }; + /** @description Response if team has permission for the repository. This is the response when the repository media type hasn't been provded in the Accept header. */ + 204: { + content: never; + }; + /** @description Not Found if team does not have permission for the repository */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team repository permissions + * @description To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + * + * For more information about the permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + */ + "teams/add-or-update-repo-permissions-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant the team on this repository. We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + * @default push + */ + permission?: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Remove a repository from a team + * @description If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + "teams/remove-repo-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List child teams + * @description Lists the child teams of the team specified by `{team_slug}`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. + */ + "teams/list-child-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description if child teams exist */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + }; + }; + /** + * Enable or disable a security feature for an organization + * @description Enables or disables the specified security feature for all eligible repositories in an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an organization owner or be member of a team with the security manager role to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + "orgs/enable-or-disable-security-product-on-all-org-repos": { + parameters: { + path: { + org: components["parameters"]["org"]; + security_product: components["parameters"]["security-product"]; + enablement: components["parameters"]["org-security-product-enablement"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description CodeQL query suite to be used. If you specify the `query_suite` parameter, the default setup will be configured with this query suite only on all repositories that didn't have default setup already configured. It will not change the query suite on repositories that already have default setup configured. + * If you don't specify any `query_suite` in your request, the preferred query suite of the organization will be applied. + * @enum {string} + */ + query_suite?: "default" | "extended"; + }; + }; + }; + responses: { + /** @description Action started */ + 204: { + content: never; + }; + /** @description The action could not be taken due to an in progress enablement, or a policy is preventing enablement */ + 422: { + content: never; + }; + }; + }; + /** + * Get a project card + * @description Gets information about a project card. + */ + "projects/get-card": { + parameters: { + path: { + card_id: components["parameters"]["card-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-card"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a project card + * @description Deletes a project card + */ + "projects/delete-card": { + parameters: { + path: { + card_id: components["parameters"]["card-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** @description Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Update an existing project card */ + "projects/update-card": { + parameters: { + path: { + card_id: components["parameters"]["card-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The project card's note + * @example Update all gems + */ + note?: string | null; + /** + * @description Whether or not the card is archived + * @example false + */ + archived?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-card"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** Move a project card */ + "projects/move-card": { + parameters: { + path: { + card_id: components["parameters"]["card-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The position of the card in a column. Can be one of: `top`, `bottom`, or `after:` to place after the specified card. + * @example bottom + */ + position: string; + /** + * @description The unique identifier of the column the card should be moved to + * @example 42 + */ + column_id?: number; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": Record; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** @description Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: { + code?: string; + message?: string; + resource?: string; + field?: string; + }[]; + }; + }; + }; + 422: components["responses"]["validation_failed"]; + /** @description Response */ + 503: { + content: { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + errors?: { + code?: string; + message?: string; + }[]; + }; + }; + }; + }; + }; + /** + * Get a project column + * @description Gets information about a project column. + */ + "projects/get-column": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-column"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a project column + * @description Deletes a project column. + */ + "projects/delete-column": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Update an existing project column */ + "projects/update-column": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Name of the project column + * @example Remaining tasks + */ + name: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-column"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List project cards + * @description Lists the project cards in a project. + */ + "projects/list-cards": { + parameters: { + query?: { + /** @description Filters the project cards that are returned by the card's state. */ + archived_state?: "all" | "archived" | "not_archived"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project-card"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Create a project card */ + "projects/create-card": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + requestBody: { + content: { + "application/json": OneOf< + [ + { + /** + * @description The project card's note + * @example Update all gems + */ + note: string | null; + }, + { + /** + * @description The unique identifier of the content associated with the card + * @example 42 + */ + content_id: number; + /** + * @description The piece of content associated with the card + * @example PullRequest + */ + content_type: string; + }, + ] + >; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project-card"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** @description Validation failed */ + 422: { + content: { + "application/json": + | components["schemas"]["validation-error"] + | components["schemas"]["validation-error-simple"]; + }; + }; + /** @description Response */ + 503: { + content: { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + errors?: { + code?: string; + message?: string; + }[]; + }; + }; + }; + }; + }; + /** Move a project column */ + "projects/move-column": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The position of the column in a project. Can be one of: `first`, `last`, or `after:` to place after the specified column. + * @example last + */ + position: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": Record; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get a project + * @description Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/get": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Delete a project + * @description Deletes a project board. Returns a `404 Not Found` status if projects are disabled. + */ + "projects/delete": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Delete Success */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** @description Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Update a project + * @description Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/update": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Name of the project + * @example Week One Sprint + */ + name?: string; + /** + * @description Body of the project + * @example This project represents the sprint of the first week in January + */ + body?: string | null; + /** + * @description State of the project; either 'open' or 'closed' + * @example open + */ + state?: string; + /** + * @description The baseline permission that all organization members have on this project + * @enum {string} + */ + organization_permission?: "read" | "write" | "admin" | "none"; + /** @description Whether or not this project can be seen by everyone. */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** @description Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + }; + /** @description Not Found if the authenticated user does not have access to the project */ + 404: { + content: never; + }; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List project collaborators + * @description Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. + */ + "projects/list-collaborators": { + parameters: { + query?: { + /** @description Filters the collaborators by their affiliation. `outside` means outside collaborators of a project that are not a member of the project's organization. `direct` means collaborators with permissions to a project, regardless of organization membership status. `all` means all collaborators the authenticated user can see. */ + affiliation?: "outside" | "direct" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add project collaborator + * @description Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. + */ + "projects/add-collaborator": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant the collaborator. + * @default write + * @example write + * @enum {string} + */ + permission?: "read" | "write" | "admin"; + } | null; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove user as a collaborator + * @description Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. + */ + "projects/remove-collaborator": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get project permission for a user + * @description Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. + */ + "projects/get-permission-for-user": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-collaborator-permission"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List project columns + * @description Lists the project columns in a project. + */ + "projects/list-columns": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project-column"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Create a project column + * @description Creates a new project column. + */ + "projects/create-column": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Name of the project column + * @example Remaining tasks + */ + name: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project-column"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get rate limit status for the authenticated user + * @description **Note:** Accessing this endpoint does not count against your REST API rate limit. + * + * Some categories of endpoints have custom rate limits that are separate from the rate limit governing the other REST API endpoints. For this reason, the API response categorizes your rate limit. Under `resources`, you'll see objects relating to different categories: + * * The `core` object provides your rate limit status for all non-search-related resources in the REST API. + * * The `search` object provides your rate limit status for the REST API for searching (excluding code searches). For more information, see "[Search](https://docs.github.com/rest/search/search)." + * * The `code_search` object provides your rate limit status for the REST API for searching code. For more information, see "[Search code](https://docs.github.com/rest/search/search#search-code)." + * * The `graphql` object provides your rate limit status for the GraphQL API. For more information, see "[Resource limitations](https://docs.github.com/graphql/overview/resource-limitations#rate-limit)." + * * The `integration_manifest` object provides your rate limit status for the `POST /app-manifests/{code}/conversions` operation. For more information, see "[Creating a GitHub App from a manifest](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app-from-a-manifest#3-you-exchange-the-temporary-code-to-retrieve-the-app-configuration)." + * * The `dependency_snapshots` object provides your rate limit status for submitting snapshots to the dependency graph. For more information, see "[Dependency graph](https://docs.github.com/rest/dependency-graph)." + * * The `code_scanning_upload` object provides your rate limit status for uploading SARIF results to code scanning. For more information, see "[Uploading a SARIF file to GitHub](https://docs.github.com/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github)." + * * The `actions_runner_registration` object provides your rate limit status for registering self-hosted runners in GitHub Actions. For more information, see "[Self-hosted runners](https://docs.github.com/rest/actions/self-hosted-runners)." + * * The `source_import` object is no longer in use for any API endpoints, and it will be removed in the next API version. For more information about API versions, see "[API Versions](https://docs.github.com/rest/overview/api-versions)." + * + * **Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + */ + "rate-limit/get": { + responses: { + /** @description Response */ + 200: { + headers: { + "X-RateLimit-Limit": components["headers"]["x-rate-limit-limit"]; + "X-RateLimit-Remaining": components["headers"]["x-rate-limit-remaining"]; + "X-RateLimit-Reset": components["headers"]["x-rate-limit-reset"]; + }; + content: { + "application/json": components["schemas"]["rate-limit-overview"]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a repository + * @description The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + "repos/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a repository + * @description Deleting a repository requires admin access. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned + * repositories, you will get a `403 Forbidden` response. + * + * OAuth app tokens and personal access tokens (classic) need the `delete_repo` scope to use this endpoint. + */ + "repos/delete": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 307: components["responses"]["temporary_redirect"]; + /** @description If an organization owner has configured the organization to prevent members from deleting organization-owned repositories, a member will get this response: */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a repository + * @description **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/repos/repos#replace-all-repository-topics) endpoint. + */ + "repos/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the repository. */ + name?: string; + /** @description A short description of the repository. */ + description?: string; + /** @description A URL with more information about the repository. */ + homepage?: string; + /** + * @description Either `true` to make the repository private or `false` to make it public. Default: `false`. + * **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://docs.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. + * @default false + */ + private?: boolean; + /** + * @description The visibility of the repository. + * @enum {string} + */ + visibility?: "public" | "private"; + /** + * @description Specify which security and analysis features to enable or disable for the repository. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * For example, to enable GitHub Advanced Security, use this data in the body of the `PATCH` request: + * `{ "security_and_analysis": {"advanced_security": { "status": "enabled" } } }`. + * + * You can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request. + */ + security_and_analysis?: { + /** @description Use the `status` property to enable or disable GitHub Advanced Security for this repository. For more information, see "[About GitHub Advanced Security](/github/getting-started-with-github/learning-about-github/about-github-advanced-security)." */ + advanced_security?: { + /** @description Can be `enabled` or `disabled`. */ + status?: string; + }; + /** @description Use the `status` property to enable or disable secret scanning for this repository. For more information, see "[About secret scanning](/code-security/secret-security/about-secret-scanning)." */ + secret_scanning?: { + /** @description Can be `enabled` or `disabled`. */ + status?: string; + }; + /** @description Use the `status` property to enable or disable secret scanning push protection for this repository. For more information, see "[Protecting pushes with secret scanning](/code-security/secret-scanning/protecting-pushes-with-secret-scanning)." */ + secret_scanning_push_protection?: { + /** @description Can be `enabled` or `disabled`. */ + status?: string; + }; + } | null; + /** + * @description Either `true` to enable issues for this repository or `false` to disable them. + * @default true + */ + has_issues?: boolean; + /** + * @description Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + * @default true + */ + has_projects?: boolean; + /** + * @description Either `true` to enable the wiki for this repository or `false` to disable it. + * @default true + */ + has_wiki?: boolean; + /** + * @description Either `true` to make this repo available as a template repository or `false` to prevent it. + * @default false + */ + is_template?: boolean; + /** @description Updates the default branch for this repository. */ + default_branch?: string; + /** + * @description Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + * @default true + */ + allow_squash_merge?: boolean; + /** + * @description Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge. + * @default false + */ + allow_auto_merge?: boolean; + /** + * @description Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description Either `true` to always allow a pull request head branch that is behind its base branch to be updated even if it is not required to be up to date before merging, or false otherwise. + * @default false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to archive this repository. `false` will unarchive a previously archived repository. + * @default false + */ + archived?: boolean; + /** + * @description Either `true` to allow private forks, or `false` to prevent private forks. + * @default false + */ + allow_forking?: boolean; + /** + * @description Either `true` to require contributors to sign off on web-based commits, or `false` to not require contributors to sign off on web-based commits. + * @default false + */ + web_commit_signoff_required?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 307: components["responses"]["temporary_redirect"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List artifacts for a repository + * @description Lists all artifacts for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-artifacts-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + name?: components["parameters"]["artifact-name"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + artifacts: components["schemas"]["artifact"][]; + }; + }; + }; + }; + }; + /** + * Get an artifact + * @description Gets a specific artifact for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-artifact": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + artifact_id: components["parameters"]["artifact-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["artifact"]; + }; + }; + }; + }; + /** + * Delete an artifact + * @description Deletes an artifact for a workflow run. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-artifact": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + artifact_id: components["parameters"]["artifact-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Download an artifact + * @description Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + * the response header to find the URL for the download. The `:archive_format` must be `zip`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/download-artifact": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + artifact_id: components["parameters"]["artifact-id"]; + archive_format: string; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + Location: components["headers"]["location"]; + }; + content: never; + }; + 410: components["responses"]["gone"]; + }; + }; + /** + * Get GitHub Actions cache usage for a repository + * @description Gets GitHub Actions cache usage for a repository. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-actions-cache-usage": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-cache-usage-by-repository"]; + }; + }; + }; + }; + /** + * List GitHub Actions caches for a repository + * @description Lists the GitHub Actions caches for a repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-actions-cache-list": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + ref?: components["parameters"]["actions-cache-git-ref-full"]; + key?: components["parameters"]["actions-cache-key"]; + sort?: components["parameters"]["actions-cache-list-sort"]; + direction?: components["parameters"]["direction"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["actions-cache-list"]; + }; + }; + }; + }; + /** + * Delete GitHub Actions caches for a repository (using a cache key) + * @description Deletes one or more GitHub Actions caches for a repository, using a complete cache key. By default, all caches that match the provided key are deleted, but you can optionally provide a Git ref to restrict deletions to caches that match both the provided key and the Git ref. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-actions-cache-by-key": { + parameters: { + query: { + key: components["parameters"]["actions-cache-key-required"]; + ref?: components["parameters"]["actions-cache-git-ref-full"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-cache-list"]; + }; + }; + }; + }; + /** + * Delete a GitHub Actions cache for a repository (using a cache ID) + * @description Deletes a GitHub Actions cache for a repository, using a cache ID. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-actions-cache-by-id": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + cache_id: components["parameters"]["cache-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get a job for a workflow run + * @description Gets a specific job in a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-job-for-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + job_id: components["parameters"]["job-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["job"]; + }; + }; + }; + }; + /** + * Download job logs for a workflow run + * @description Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + * for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/download-job-logs-for-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + job_id: components["parameters"]["job-id"]; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/jobs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * Re-run a job from a workflow run + * @description Re-run a job and its dependent jobs in a workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/re-run-job-for-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + job_id: components["parameters"]["job-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Whether to enable debug logging for the re-run. + * @default false + */ + enable_debug_logging?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get the customization template for an OIDC subject claim for a repository + * @description Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-custom-oidc-sub-claim-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Status response */ + 200: { + content: { + "application/json": components["schemas"]["oidc-custom-sub-repo"]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set the customization template for an OIDC subject claim for a repository + * @description Sets the customization template and `opt-in` or `opt-out` flag for an OpenID Connect (OIDC) subject claim for a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-custom-oidc-sub-claim-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored. */ + use_default: boolean; + /** @description Array of unique strings. Each claim key can only contain alphanumeric characters and underscores. */ + include_claim_keys?: string[]; + }; + }; + }; + responses: { + /** @description Empty response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List repository organization secrets + * @description Lists all organization secrets shared with a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-repo-organization-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["actions-secret"][]; + }; + }; + }; + }; + }; + /** + * List repository organization variables + * @description Lists all organization variables shared with a repository. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-repo-organization-variables": { + parameters: { + query?: { + per_page?: components["parameters"]["variables-per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + variables: components["schemas"]["actions-variable"][]; + }; + }; + }; + }; + }; + /** + * Get GitHub Actions permissions for a repository + * @description Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-github-actions-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-repository-permissions"]; + }; + }; + }; + }; + /** + * Set GitHub Actions permissions for a repository + * @description Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-github-actions-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + enabled: components["schemas"]["actions-enabled"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get the level of access for workflows outside of the repository + * @description Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-workflow-access-to-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-workflow-access-to-repository"]; + }; + }; + }; + }; + /** + * Set the level of access for workflows outside of the repository + * @description Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-workflow-access-to-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["actions-workflow-access-to-repository"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get allowed actions and reusable workflows for a repository + * @description Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-allowed-actions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + }; + /** + * Set allowed actions and reusable workflows for a repository + * @description Sets the actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-allowed-actions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get default workflow permissions for a repository + * @description Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, + * as well as if GitHub Actions can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-github-actions-default-workflow-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-get-default-workflow-permissions"]; + }; + }; + }; + }; + /** + * Set default workflow permissions for a repository + * @description Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, and sets if GitHub Actions + * can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-github-actions-default-workflow-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["actions-set-default-workflow-permissions"]; + }; + }; + responses: { + /** @description Success response */ + 204: { + content: never; + }; + /** @description Conflict response when changing a setting is prevented by the owning organization */ + 409: { + content: never; + }; + }; + }; + /** + * List self-hosted runners for a repository + * @description Lists all self-hosted runners configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-self-hosted-runners-for-repo": { + parameters: { + query?: { + /** @description The name of a self-hosted runner. */ + name?: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + runners: components["schemas"]["runner"][]; + }; + }; + }; + }; + }; + /** + * List runner applications for a repository + * @description Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-runner-applications-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["runner-application"][]; + }; + }; + }; + }; + /** + * Create configuration for a just-in-time runner for a repository + * @description Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the repository. + * + * OAuth tokens and personal access tokens (classic) need the`repo` scope to use this endpoint. + */ + "actions/generate-runner-jitconfig-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the new runner. */ + name: string; + /** @description The ID of the runner group to register the runner to. */ + runner_group_id: number; + /** @description The names of the custom labels to add to the runner. **Minimum items**: 1. **Maximum items**: 100. */ + labels: string[]; + /** + * @description The working directory to be used for job execution, relative to the runner install directory. + * @default _work + */ + work_folder?: string; + }; + }; + }; + responses: { + 201: components["responses"]["actions_runner_jitconfig"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Create a registration token for a repository + * @description Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-registration-token-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Create a remove token for a repository + * @description Returns a token that you can pass to the `config` script to remove a self-hosted runner from an repository. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-remove-token-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Get a self-hosted runner for a repository + * @description Gets a specific self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["runner"]; + }; + }; + }; + }; + /** + * Delete a self-hosted runner from a repository + * @description Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-self-hosted-runner-from-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List labels for a self-hosted runner for a repository + * @description Lists all labels for a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-labels-for-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set custom labels for a self-hosted runner for a repository + * @description Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-custom-labels-for-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to set for the runner. You can pass an empty array to remove all custom labels. */ + labels: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Add custom labels to a self-hosted runner for a repository + * @description Adds custom labels to a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/add-custom-labels-to-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to add to the runner. */ + labels: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Remove all custom labels from a self-hosted runner for a repository + * @description Remove all custom labels from a self-hosted runner configured in a + * repository. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/remove-all-custom-labels-from-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels_readonly"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a custom label from a self-hosted runner for a repository + * @description Remove a custom label from a self-hosted runner configured + * in a repository. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/remove-custom-label-from-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + name: components["parameters"]["runner-label-name"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List workflow runs for a repository + * @description Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + * + * This API will return up to 1,000 results for each search when using the following parameters: `actor`, `branch`, `check_suite_id`, `created`, `event`, `head_sha`, `status`. + */ + "actions/list-workflow-runs-for-repo": { + parameters: { + query?: { + actor?: components["parameters"]["actor"]; + branch?: components["parameters"]["workflow-run-branch"]; + event?: components["parameters"]["event"]; + status?: components["parameters"]["workflow-run-status"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + created?: components["parameters"]["created"]; + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + check_suite_id?: components["parameters"]["workflow-run-check-suite-id"]; + head_sha?: components["parameters"]["workflow-run-head-sha"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + workflow_runs: components["schemas"]["workflow-run"][]; + }; + }; + }; + }; + }; + /** + * Get a workflow run + * @description Gets a specific workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow-run": { + parameters: { + query?: { + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-run"]; + }; + }; + }; + }; + /** + * Delete a workflow run + * @description Deletes a specific workflow run. + * + * Anyone with write access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get the review history for a workflow run + * @description Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-reviews-for-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["environment-approvals"][]; + }; + }; + }; + }; + /** + * Approve a workflow run for a fork pull request + * @description Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see ["Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/approve-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List workflow run artifacts + * @description Lists artifacts for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-workflow-run-artifacts": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + name?: components["parameters"]["artifact-name"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + artifacts: components["schemas"]["artifact"][]; + }; + }; + }; + }; + }; + /** + * Get a workflow run attempt + * @description Gets a specific workflow run attempt. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow-run-attempt": { + parameters: { + query?: { + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + attempt_number: components["parameters"]["attempt-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-run"]; + }; + }; + }; + }; + /** + * List jobs for a workflow run attempt + * @description Lists jobs for a specific workflow run attempt. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-jobs-for-workflow-run-attempt": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + attempt_number: components["parameters"]["attempt-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + jobs: components["schemas"]["job"][]; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Download workflow run attempt logs + * @description Gets a redirect URL to download an archive of log files for a specific workflow run attempt. This link expires after + * 1 minute. Look for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/download-workflow-run-attempt-logs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + attempt_number: components["parameters"]["attempt-number"]; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/runs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * Cancel a workflow run + * @description Cancels a workflow run using its `id`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/cancel-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 409: components["responses"]["conflict"]; + }; + }; + /** + * Review custom deployment protection rules for a workflow run + * @description Approve or reject custom deployment protection rules provided by a GitHub App for a workflow run. For more information, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * **Note:** GitHub Apps can only review their own custom deployment protection rules. + * To approve or reject pending deployments that are waiting for review from a specific person or team, see [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/review-custom-gates-for-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + requestBody: { + content: { + "application/json": + | components["schemas"]["review-custom-gates-comment-required"] + | components["schemas"]["review-custom-gates-state-required"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Force cancel a workflow run + * @description Cancels a workflow run and bypasses conditions that would otherwise cause a workflow execution to continue, such as an `always()` condition on a job. + * You should only use this endpoint to cancel a workflow run when the workflow run is not responding to [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel`](/rest/actions/workflow-runs#cancel-a-workflow-run). + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/force-cancel-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 409: components["responses"]["conflict"]; + }; + }; + /** + * List jobs for a workflow run + * @description Lists jobs for a workflow run. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-jobs-for-workflow-run": { + parameters: { + query?: { + /** @description Filters jobs by their `completed_at` timestamp. `latest` returns jobs from the most recent execution of the workflow run. `all` returns all jobs for a workflow run, including from old executions of the workflow run. */ + filter?: "latest" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + jobs: components["schemas"]["job"][]; + }; + }; + }; + }; + }; + /** + * Download workflow run logs + * @description Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for + * `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/download-workflow-run-logs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/runs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * Delete workflow run logs + * @description Deletes all logs for a workflow run. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-workflow-run-logs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get pending deployments for a workflow run + * @description Get all deployment environments for a workflow run that are waiting for protection rules to pass. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-pending-deployments-for-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pending-deployment"][]; + }; + }; + }; + }; + /** + * Review pending deployments for a workflow run + * @description Approve or reject pending deployments that are waiting on approval by a required reviewer. + * + * Required reviewers with read access to the repository contents and deployments can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/review-pending-deployments-for-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The list of environment ids to approve or reject + * @example [ + * 161171787, + * 161171795 + * ] + */ + environment_ids: number[]; + /** + * @description Whether to approve or reject deployment to the specified environments. + * @example approved + * @enum {string} + */ + state: "approved" | "rejected"; + /** + * @description A comment to accompany the deployment review + * @example Ship it! + */ + comment: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment"][]; + }; + }; + }; + }; + /** + * Re-run a workflow + * @description Re-runs your workflow run using its `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/re-run-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Whether to enable debug logging for the re-run. + * @default false + */ + enable_debug_logging?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Re-run failed jobs from a workflow run + * @description Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/re-run-workflow-failed-jobs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Whether to enable debug logging for the re-run. + * @default false + */ + enable_debug_logging?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Get workflow run usage + * @description Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow-run-usage": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-run-usage"]; + }; + }; + }; + }; + /** + * List repository secrets + * @description Lists all secrets available in a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-repo-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["actions-secret"][]; + }; + }; + }; + }; + }; + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-repo-public-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + }; + /** + * Get a repository secret + * @description Gets a single repository secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-secret"]; + }; + }; + }; + }; + /** + * Create or update a repository secret + * @description Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-or-update-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/actions/secrets#get-a-repository-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete a repository secret + * @description Deletes a secret in a repository using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List repository variables + * @description Lists all repository variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-repo-variables": { + parameters: { + query?: { + per_page?: components["parameters"]["variables-per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + variables: components["schemas"]["actions-variable"][]; + }; + }; + }; + }; + }; + /** + * Create a repository variable + * @description Creates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-repo-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name: string; + /** @description The value of the variable. */ + value: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Get a repository variable + * @description Gets a specific variable in a repository. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-repo-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-variable"]; + }; + }; + }; + }; + /** + * Delete a repository variable + * @description Deletes a repository variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-repo-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a repository variable + * @description Updates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/update-repo-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: components["parameters"]["variable-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name?: string; + /** @description The value of the variable. */ + value?: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List repository workflows + * @description Lists the workflows in a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-repo-workflows": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + workflows: components["schemas"]["workflow"][]; + }; + }; + }; + }; + }; + /** + * Get a workflow + * @description Gets a specific workflow. You can replace `workflow_id` with the workflow + * file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow"]; + }; + }; + }; + }; + /** + * Disable a workflow + * @description Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/disable-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Create a workflow dispatch event + * @description You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-workflow-dispatch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The git reference for the workflow. The reference can be a branch or tag name. */ + ref: string; + /** @description Input keys and values configured in the workflow file. The maximum number of properties is 10. Any default properties configured in the workflow file will be used when `inputs` are omitted. */ + inputs?: { + [key: string]: unknown; + }; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Enable a workflow + * @description Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/enable-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List workflow runs for a workflow + * @description List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-workflow-runs": { + parameters: { + query?: { + actor?: components["parameters"]["actor"]; + branch?: components["parameters"]["workflow-run-branch"]; + event?: components["parameters"]["event"]; + status?: components["parameters"]["workflow-run-status"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + created?: components["parameters"]["created"]; + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + check_suite_id?: components["parameters"]["workflow-run-check-suite-id"]; + head_sha?: components["parameters"]["workflow-run-head-sha"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + workflow_runs: components["schemas"]["workflow-run"][]; + }; + }; + }; + }; + }; + /** + * Get workflow usage + * @description Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow-usage": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-usage"]; + }; + }; + }; + }; + /** + * List repository activities + * @description Lists a detailed history of changes to a repository, such as pushes, merges, force pushes, and branch changes, and associates these changes with commits and users. + * + * For more information about viewing repository activity, + * see "[Viewing activity and data for your repository](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository)." + */ + "repos/list-activities": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + /** + * @description The Git reference for the activities you want to list. + * + * The `ref` for a branch can be formatted either as `refs/heads/BRANCH_NAME` or `BRANCH_NAME`, where `BRANCH_NAME` is the name of your branch. + */ + ref?: string; + /** @description The GitHub username to use to filter by the actor who performed the activity. */ + actor?: string; + /** + * @description The time period to filter by. + * + * For example, `day` will filter for activity that occurred in the past 24 hours, and `week` will filter for activity that occurred in the past 7 days (168 hours). + */ + time_period?: "day" | "week" | "month" | "quarter" | "year"; + /** + * @description The activity type to filter by. + * + * For example, you can choose to filter by "force_push", to see all force pushes to the repository. + */ + activity_type?: + | "push" + | "force_push" + | "branch_creation" + | "branch_deletion" + | "pr_merge" + | "merge_queue_merge"; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["activity"][]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List assignees + * @description Lists the [available assignees](https://docs.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. + */ + "issues/list-assignees": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if a user can be assigned + * @description Checks if a user has permission to be assigned to an issue in this repository. + * + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + "issues/check-user-can-be-assigned": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + assignee: string; + }; + }; + responses: { + /** @description If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. */ + 204: { + content: never; + }; + /** @description Otherwise a `404` status code is returned. */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Get all autolinks of a repository + * @description Gets all autolinks that are configured for a repository. + * + * Information about autolinks are only available to repository administrators. + */ + "repos/list-autolinks": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["autolink"][]; + }; + }; + }; + }; + /** + * Create an autolink reference for a repository + * @description Users with admin access to the repository can create an autolink. + */ + "repos/create-autolink": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description This prefix appended by certain characters will generate a link any time it is found in an issue, pull request, or commit. */ + key_prefix: string; + /** @description The URL must contain `` for the reference number. `` matches different characters depending on the value of `is_alphanumeric`. */ + url_template: string; + /** + * @description Whether this autolink reference matches alphanumeric characters. If true, the `` parameter of the `url_template` matches alphanumeric characters `A-Z` (case insensitive), `0-9`, and `-`. If false, this autolink reference only matches numeric characters. + * @default true + */ + is_alphanumeric?: boolean; + }; + }; + }; + responses: { + /** @description response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/autolinks/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["autolink"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an autolink reference of a repository + * @description This returns a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + "repos/get-autolink": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + autolink_id: components["parameters"]["autolink-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["autolink"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an autolink reference from a repository + * @description This deletes a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + "repos/delete-autolink": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + autolink_id: components["parameters"]["autolink-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if automated security fixes are enabled for a repository + * @description Shows whether automated security fixes are enabled, disabled or paused for a repository. The authenticated user must have admin read access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + "repos/check-automated-security-fixes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response if dependabot is enabled */ + 200: { + content: { + "application/json": components["schemas"]["check-automated-security-fixes"]; + }; + }; + /** @description Not Found if dependabot is not enabled for the repository */ + 404: { + content: never; + }; + }; + }; + /** + * Enable automated security fixes + * @description Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + "repos/enable-automated-security-fixes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Disable automated security fixes + * @description Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + "repos/disable-automated-security-fixes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** List branches */ + "repos/list-branches": { + parameters: { + query?: { + /** @description Setting to `true` returns only protected branches. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches. */ + protected?: boolean; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["short-branch"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Get a branch */ + "repos/get-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-with-protection"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-protection"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * + * **Note**: The list of users, apps, and teams in total is limited to 100 items. + */ + "repos/update-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Require status checks to pass before merging. Set to `null` to disable. */ + required_status_checks: { + /** @description Require branches to be up to date before merging. */ + strict: boolean; + /** + * @deprecated + * @description **Deprecated**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control. + */ + contexts: string[]; + /** @description The list of status checks to require in order to merge into this branch. */ + checks?: { + /** @description The name of the required check */ + context: string; + /** @description The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status. */ + app_id?: number; + }[]; + } | null; + /** @description Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable. */ + enforce_admins: boolean | null; + /** @description Require at least one approving review on a pull request, before merging. Set to `null` to disable. */ + required_pull_request_reviews: { + /** @description Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. */ + dismissal_restrictions?: { + /** @description The list of user `login`s with dismissal access */ + users?: string[]; + /** @description The list of team `slug`s with dismissal access */ + teams?: string[]; + /** @description The list of app `slug`s with dismissal access */ + apps?: string[]; + }; + /** @description Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. */ + dismiss_stale_reviews?: boolean; + /** @description Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) review them. */ + require_code_owner_reviews?: boolean; + /** @description Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers. */ + required_approving_review_count?: number; + /** + * @description Whether the most recent push must be approved by someone other than the person who pushed it. Default: `false`. + * @default false + */ + require_last_push_approval?: boolean; + /** @description Allow specific users, teams, or apps to bypass pull request requirements. */ + bypass_pull_request_allowances?: { + /** @description The list of user `login`s allowed to bypass pull request requirements. */ + users?: string[]; + /** @description The list of team `slug`s allowed to bypass pull request requirements. */ + teams?: string[]; + /** @description The list of app `slug`s allowed to bypass pull request requirements. */ + apps?: string[]; + }; + } | null; + /** @description Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable. */ + restrictions: { + /** @description The list of user `login`s with push access */ + users: string[]; + /** @description The list of team `slug`s with push access */ + teams: string[]; + /** @description The list of app `slug`s with push access */ + apps?: string[]; + } | null; + /** @description Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see "[Requiring a linear commit history](https://docs.github.com/github/administering-a-repository/requiring-a-linear-commit-history)" in the GitHub Help documentation. */ + required_linear_history?: boolean; + /** @description Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation." */ + allow_force_pushes?: boolean | null; + /** @description Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation. */ + allow_deletions?: boolean; + /** @description If set to `true`, the `restrictions` branch protection settings which limits who can push will also block pushes which create new branches, unless the push is initiated by a user, team, or app which has the ability to push. Set to `true` to restrict new branch creation. Default: `false`. */ + block_creations?: boolean; + /** @description Requires all conversations on code to be resolved before a pull request can be merged into a branch that matches this rule. Set to `false` to disable. Default: `false`. */ + required_conversation_resolution?: boolean; + /** + * @description Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. Default: `false`. + * @default false + */ + lock_branch?: boolean; + /** + * @description Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. Default: `false`. + * @default false + */ + allow_fork_syncing?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Delete branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/delete-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-admin-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + }; + }; + /** + * Set admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/set-admin-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + }; + }; + /** + * Delete admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/delete-admin-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-pull-request-review-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-pull-request-review"]; + }; + }; + }; + }; + /** + * Delete pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/delete-pull-request-review-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + */ + "repos/update-pull-request-review-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. */ + dismissal_restrictions?: { + /** @description The list of user `login`s with dismissal access */ + users?: string[]; + /** @description The list of team `slug`s with dismissal access */ + teams?: string[]; + /** @description The list of app `slug`s with dismissal access */ + apps?: string[]; + }; + /** @description Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. */ + dismiss_stale_reviews?: boolean; + /** @description Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) have reviewed. */ + require_code_owner_reviews?: boolean; + /** @description Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers. */ + required_approving_review_count?: number; + /** + * @description Whether the most recent push must be approved by someone other than the person who pushed it. Default: `false` + * @default false + */ + require_last_push_approval?: boolean; + /** @description Allow specific users, teams, or apps to bypass pull request requirements. */ + bypass_pull_request_allowances?: { + /** @description The list of user `login`s allowed to bypass pull request requirements. */ + users?: string[]; + /** @description The list of team `slug`s allowed to bypass pull request requirements. */ + teams?: string[]; + /** @description The list of app `slug`s allowed to bypass pull request requirements. */ + apps?: string[]; + }; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-pull-request-review"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://docs.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * + * **Note**: You must enable branch protection to require signed commits. + */ + "repos/get-commit-signature-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + */ + "repos/create-commit-signature-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + */ + "repos/delete-commit-signature-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get status checks protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-status-checks-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["status-check-policy"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove status check protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/remove-status-check-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update status check protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/update-status-check-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Require branches to be up to date before merging. */ + strict?: boolean; + /** + * @deprecated + * @description **Deprecated**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control. + */ + contexts?: string[]; + /** @description The list of status checks to require in order to merge into this branch. */ + checks?: { + /** @description The name of the required check */ + context: string; + /** @description The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status. */ + app_id?: number; + }[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["status-check-policy"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-all-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/set-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the status checks */ + contexts: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/add-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the status checks */ + contexts: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/remove-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the status checks */ + contexts: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists who has access to this protected branch. + * + * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + */ + "repos/get-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-restriction-policy"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Disables the ability to restrict who can push to this branch. + */ + "repos/delete-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get apps with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + "repos/get-apps-with-access-to-protected-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + "repos/set-app-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The GitHub Apps that have push access to this branch. Use the slugified version of the app name. **Note**: The list of users, apps, and teams in total is limited to 100 items. */ + apps: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified apps push access for this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + "repos/add-app-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The GitHub Apps that have push access to this branch. Use the slugified version of the app name. **Note**: The list of users, apps, and teams in total is limited to 100 items. */ + apps: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of an app to push to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + "repos/remove-app-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The GitHub Apps that have push access to this branch. Use the slugified version of the app name. **Note**: The list of users, apps, and teams in total is limited to 100 items. */ + apps: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get teams with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. The list includes child teams. + */ + "repos/get-teams-with-access-to-protected-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + */ + "repos/set-team-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The slug values for teams */ + teams: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified teams push access for this branch. You can also give push access to child teams. + */ + "repos/add-team-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The slug values for teams */ + teams: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + */ + "repos/remove-team-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The slug values for teams */ + teams: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get users with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + */ + "repos/get-users-with-access-to-protected-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/set-user-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The username for users */ + users: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified people push access for this branch. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/add-user-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The username for users */ + users: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a user to push to this branch. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/remove-user-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The username for users */ + users: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Rename a branch + * @description Renames a branch in a repository. + * + * **Note:** Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)". + * + * The authenticated user must have push access to the branch. If the branch is the default branch, the authenticated user must also have admin or owner permissions. + * + * In order to rename the default branch, fine-grained access tokens also need the `administration:write` repository permission. + */ + "repos/rename-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The new name of the branch. */ + new_name: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["branch-with-protection"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a check run + * @description **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + * + * In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. + */ + "checks/create": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the check. For example, "code-coverage". */ + name: string; + /** @description The SHA of the commit. */ + head_sha: string; + /** @description The URL of the integrator's site that has the full details of the check. If the integrator does not provide this, then the homepage of the GitHub app is used. */ + details_url?: string; + /** @description A reference for the run on the integrator's system. */ + external_id?: string; + /** + * @description The current status. + * @default queued + * @enum {string} + */ + status?: "queued" | "in_progress" | "completed"; + /** + * Format: date-time + * @description The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * @description **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. You cannot change a check run conclusion to `stale`, only GitHub can set this. + * @enum {string} + */ + conclusion?: + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "success" + | "skipped" + | "stale" + | "timed_out"; + /** + * Format: date-time + * @description The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** @description Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. */ + output?: { + /** @description The title of the check run. */ + title: string; + /** @description The summary of the check run. This parameter supports Markdown. **Maximum length**: 65535 characters. */ + summary: string; + /** @description The details of the check run. This parameter supports Markdown. **Maximum length**: 65535 characters. */ + text?: string; + /** @description Adds information from your analysis to specific lines of code. Annotations are visible on GitHub in the **Checks** and **Files changed** tab of the pull request. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/reference/checks#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. GitHub Actions are limited to 10 warning annotations and 10 error annotations per step. For details about how you can view annotations on GitHub, see "[About status checks](https://docs.github.com/articles/about-status-checks#checks)". */ + annotations?: { + /** @description The path of the file to add an annotation to. For example, `assets/css/main.css`. */ + path: string; + /** @description The start line of the annotation. Line numbers start at 1. */ + start_line: number; + /** @description The end line of the annotation. */ + end_line: number; + /** @description The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. Column numbers start at 1. */ + start_column?: number; + /** @description The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. */ + end_column?: number; + /** + * @description The level of the annotation. + * @enum {string} + */ + annotation_level: "notice" | "warning" | "failure"; + /** @description A short description of the feedback for these lines of code. The maximum size is 64 KB. */ + message: string; + /** @description The title that represents the annotation. The maximum size is 255 characters. */ + title?: string; + /** @description Details about this annotation. The maximum size is 64 KB. */ + raw_details?: string; + }[]; + /** @description Adds images to the output displayed in the GitHub pull request UI. */ + images?: { + /** @description The alternative text for the image. */ + alt: string; + /** @description The full URL of the image. */ + image_url: string; + /** @description A short image description. */ + caption?: string; + }[]; + }; + /** @description Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions)." */ + actions?: { + /** @description The text to be displayed on a button in the web UI. The maximum size is 20 characters. */ + label: string; + /** @description A short explanation of what this action would do. The maximum size is 40 characters. */ + description: string; + /** @description A reference for the action on the integrator's system. The maximum size is 20 characters. */ + identifier: string; + }[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + }; + /** + * Get a check run + * @description Gets a single check run using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + }; + /** + * Update a check run + * @description Updates a check run for a specific commit in a repository. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + "checks/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the check. For example, "code-coverage". */ + name?: string; + /** @description The URL of the integrator's site that has the full details of the check. */ + details_url?: string; + /** @description A reference for the run on the integrator's system. */ + external_id?: string; + /** + * Format: date-time + * @description This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * @description The current status of the check run. Only GitHub Actions can set a status of `waiting`, `pending`, or `requested`. + * @enum {string} + */ + status?: + | "queued" + | "in_progress" + | "completed" + | "waiting" + | "requested" + | "pending"; + /** + * @description **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. You cannot change a check run conclusion to `stale`, only GitHub can set this. + * @enum {string} + */ + conclusion?: + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "success" + | "skipped" + | "stale" + | "timed_out"; + /** + * Format: date-time + * @description The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** @description Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. */ + output?: { + /** @description **Required**. */ + title?: string; + /** @description Can contain Markdown. */ + summary: string; + /** @description Can contain Markdown. */ + text?: string; + /** @description Adds information from your analysis to specific lines of code. Annotations are visible in GitHub's pull request UI. Annotations are visible in GitHub's pull request UI. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/checks/runs#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. GitHub Actions are limited to 10 warning annotations and 10 error annotations per step. For details about annotations in the UI, see "[About status checks](https://docs.github.com/articles/about-status-checks#checks)". */ + annotations?: { + /** @description The path of the file to add an annotation to. For example, `assets/css/main.css`. */ + path: string; + /** @description The start line of the annotation. Line numbers start at 1. */ + start_line: number; + /** @description The end line of the annotation. */ + end_line: number; + /** @description The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. Column numbers start at 1. */ + start_column?: number; + /** @description The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. */ + end_column?: number; + /** + * @description The level of the annotation. + * @enum {string} + */ + annotation_level: "notice" | "warning" | "failure"; + /** @description A short description of the feedback for these lines of code. The maximum size is 64 KB. */ + message: string; + /** @description The title that represents the annotation. The maximum size is 255 characters. */ + title?: string; + /** @description Details about this annotation. The maximum size is 64 KB. */ + raw_details?: string; + }[]; + /** @description Adds images to the output displayed in the GitHub pull request UI. */ + images?: { + /** @description The alternative text for the image. */ + alt: string; + /** @description The full URL of the image. */ + image_url: string; + /** @description A short image description. */ + caption?: string; + }[]; + }; + /** @description Possible further actions the integrator can perform, which a user may trigger. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://docs.github.com/rest/guides/using-the-rest-api-to-interact-with-checks#check-runs-and-requested-actions)." */ + actions?: { + /** @description The text to be displayed on a button in the web UI. The maximum size is 20 characters. */ + label: string; + /** @description A short explanation of what this action would do. The maximum size is 40 characters. */ + description: string; + /** @description A reference for the action on the integrator's system. The maximum size is 20 characters. */ + identifier: string; + }[]; + } & ( + | { + /** @enum {unknown} */ + status?: "completed"; + [key: string]: unknown; + } + | { + /** @enum {unknown} */ + status?: "queued" | "in_progress"; + [key: string]: unknown; + } + ); + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + }; + /** + * List check run annotations + * @description Lists annotations for a check run using the annotation `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/list-annotations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["check-annotation"][]; + }; + }; + }; + }; + /** + * Rerequest a check run + * @description Triggers GitHub to rerequest an existing check run, without pushing new code to a repository. This endpoint will trigger the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) event with the action `rerequested`. When a check run is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * For more information about how to re-run GitHub Actions jobs, see "[Re-run a job from a workflow run](https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run)". + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + "checks/rerequest-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Forbidden if the check run is not rerequestable or doesn't belong to the authenticated GitHub App */ + 403: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + 404: components["responses"]["not_found"]; + /** @description Validation error if the check run is not rerequestable */ + 422: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Create a check suite + * @description Creates a check suite manually. By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/checks/runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites)". + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + "checks/create-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The sha of the head commit. */ + head_sha: string; + }; + }; + }; + responses: { + /** @description Response when the suite already exists */ + 200: { + content: { + "application/json": components["schemas"]["check-suite"]; + }; + }; + /** @description Response when the suite was created */ + 201: { + content: { + "application/json": components["schemas"]["check-suite"]; + }; + }; + }; + }; + /** + * Update repository preferences for check suites + * @description Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/checks/suites#create-a-check-suite). + * You must have admin permissions in the repository to set preferences for check suites. + */ + "checks/set-suites-preferences": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default. */ + auto_trigger_checks?: { + /** @description The `id` of the GitHub App. */ + app_id: number; + /** + * @description Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository, or `false` to disable them. + * @default true + */ + setting: boolean; + }[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["check-suite-preference"]; + }; + }; + }; + }; + /** + * Get a check suite + * @description Gets a single check suite using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/get-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_suite_id: components["parameters"]["check-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["check-suite"]; + }; + }; + }; + }; + /** + * List check runs in a check suite + * @description Lists check runs for a check suite using its `id`. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/list-for-suite": { + parameters: { + query?: { + check_name?: components["parameters"]["check-name"]; + status?: components["parameters"]["status"]; + /** @description Filters check runs by their `completed_at` timestamp. `latest` returns the most recent check runs. */ + filter?: "latest" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_suite_id: components["parameters"]["check-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + check_runs: components["schemas"]["check-run"][]; + }; + }; + }; + }; + }; + /** + * Rerequest a check suite + * @description Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + "checks/rerequest-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_suite_id: components["parameters"]["check-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * List code scanning alerts for a repository + * @description Lists all open code scanning alerts for the default branch (usually `main` + * or `master`). You must use an access token with the `security_events` scope to use + * this endpoint with private repos, the `public_repo` scope also grants permission to read + * security events on public repos only. GitHub Apps must have the `security_events` read + * permission to use this endpoint. + * + * The response includes a `most_recent_instance` object. + * This provides details of the most recent instance of this alert + * for the default branch or for the specified Git reference + * (if you used `ref` in the request). + */ + "code-scanning/list-alerts-for-repo": { + parameters: { + query?: { + tool_name?: components["parameters"]["tool-name"]; + tool_guid?: components["parameters"]["tool-guid"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + ref?: components["parameters"]["git-ref"]; + direction?: components["parameters"]["direction"]; + /** @description The property by which to sort the results. . `number` is deprecated - we recommend that you use `created` instead. */ + sort?: "created" | "number" | "updated"; + /** @description Set to `open`, `closed, `fixed`, or `dismissed` to list code scanning alerts in a specific state. */ + state?: components["schemas"]["code-scanning-alert-state"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert-items"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a code scanning alert + * @description Gets a single code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Update a code scanning alert + * @description Updates the status of a single code scanning alert. + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/update-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + state: components["schemas"]["code-scanning-alert-set-state"]; + dismissed_reason?: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List instances of a code scanning alert + * @description Lists all instances of the specified code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/list-alert-instances": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + ref?: components["parameters"]["git-ref"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert-instance"][]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List code scanning analyses for a repository + * @description Lists the details of all code scanning analyses for a repository, + * starting with the most recent. + * The response is paginated and you can use the `page` and `per_page` parameters + * to list the analyses you're interested in. + * By default 30 analyses are listed per page. + * + * The `rules_count` field in the response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * **Deprecation notice**: + * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/list-recent-analyses": { + parameters: { + query?: { + tool_name?: components["parameters"]["tool-name"]; + tool_guid?: components["parameters"]["tool-guid"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + /** @description The Git reference for the analyses you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. */ + ref?: components["schemas"]["code-scanning-ref"]; + /** @description Filter analyses belonging to the same SARIF upload. */ + sarif_id?: components["schemas"]["code-scanning-analysis-sarif-id"]; + direction?: components["parameters"]["direction"]; + /** @description The property by which to sort the results. */ + sort?: "created"; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-analysis"][]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a code scanning analysis for a repository + * @description Gets a specified code scanning analysis for a repository. + * + * The default JSON response contains fields that describe the analysis. + * This includes the Git reference and commit SHA to which the analysis relates, + * the datetime of the analysis, the name of the code scanning tool, + * and the number of alerts. + * + * The `rules_count` field in the default response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/sarif+json`**: Instead of returning a summary of the analysis, this endpoint returns a subset of the analysis data that was uploaded. The data is formatted as [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). It also returns additional data such as the `github/alertNumber` and `github/alertUrl` properties. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-analysis": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation. */ + analysis_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-analysis"]; + "application/json+sarif": { + [key: string]: unknown; + }; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Delete a code scanning analysis from a repository + * @description Deletes a specified code scanning analysis from a repository. + * + * You can delete one analysis at a time. + * To delete a series of analyses, start with the most recent analysis and work backwards. + * Conceptually, the process is similar to the undo function in a text editor. + * + * When you list the analyses for a repository, + * one or more will be identified as deletable in the response: + * + * ``` + * "deletable": true + * ``` + * + * An analysis is deletable when it's the most recent in a set of analyses. + * Typically, a repository will have multiple sets of analyses + * for each enabled code scanning tool, + * where a set is determined by a unique combination of analysis values: + * + * * `ref` + * * `tool` + * * `category` + * + * If you attempt to delete an analysis that is not the most recent in a set, + * you'll get a 400 response with the message: + * + * ``` + * Analysis specified is not deletable. + * ``` + * + * The response from a successful `DELETE` operation provides you with + * two alternative URLs for deleting the next analysis in the set: + * `next_analysis_url` and `confirm_delete_url`. + * Use the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis + * in a set. This is a useful option if you want to preserve at least one analysis + * for the specified tool in your repository. + * Use the `confirm_delete_url` URL if you are content to remove all analyses for a tool. + * When you delete the last analysis in a set, the value of `next_analysis_url` and `confirm_delete_url` + * in the 200 response is `null`. + * + * As an example of the deletion process, + * let's imagine that you added a workflow that configured a particular code scanning tool + * to analyze the code in a repository. This tool has added 15 analyses: + * 10 on the default branch, and another 5 on a topic branch. + * You therefore have two separate sets of analyses for this tool. + * You've now decided that you want to remove all of the analyses for the tool. + * To do this you must make 15 separate deletion requests. + * To start, you must find an analysis that's identified as deletable. + * Each set of analyses always has one that's identified as deletable. + * Having found the deletable analysis for one of the two sets, + * delete this analysis and then continue deleting the next analysis in the set until they're all deleted. + * Then repeat the process for the second set. + * The procedure therefore consists of a nested loop: + * + * **Outer loop**: + * * List the analyses for the repository, filtered by tool. + * * Parse this list to find a deletable analysis. If found: + * + * **Inner loop**: + * * Delete the identified analysis. + * * Parse the response for the value of `confirm_delete_url` and, if found, use this in the next iteration. + * + * The above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/delete-analysis": { + parameters: { + query?: { + /** @description Allow deletion if the specified analysis is the last in a set. If you attempt to delete the final analysis in a set without setting this parameter to `true`, you'll get a 400 response with the message: `Analysis is last of its type and deletion may result in the loss of historical alert data. Please specify confirm_delete.` */ + confirm_delete?: string | null; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation. */ + analysis_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-analysis-deletion"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List CodeQL databases for a repository + * @description Lists the CodeQL databases that are available in a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/list-codeql-databases": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-codeql-database"][]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a CodeQL database for a repository + * @description Gets a CodeQL database for a language in a repository. + * + * By default this endpoint returns JSON metadata about the CodeQL database. To + * download the CodeQL database binary content, set the `Accept` header of the request + * to [`application/zip`](https://docs.github.com/rest/overview/media-types), and make sure + * your HTTP client is configured to follow redirects or use the `Location` header + * to make a second request to get the redirect URL. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-codeql-database": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The language of the CodeQL database. */ + language: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-codeql-database"]; + }; + }; + 302: components["responses"]["found"]; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a code scanning default setup configuration + * @description Gets a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-default-setup": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-default-setup"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Update a code scanning default setup configuration + * @description Updates a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/update-default-setup": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["code-scanning-default-setup-update"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["code-scanning-default-setup-update-response"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["code_scanning_conflict"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Upload an analysis as SARIF data + * @description Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. For troubleshooting information, see "[Troubleshooting SARIF uploads](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif)." + * + * There are two places where you can upload code scanning results. + * - If you upload to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)." + * - If you upload to a branch, for example `--ref refs/heads/my-branch`, then the results appear in the **Security** tab for your repository. For more information, see "[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)." + * + * You must compress the SARIF-formatted analysis data that you want to upload, using `gzip`, and then encode it as a Base64 format string. For example: + * + * ``` + * gzip -c analysis-data.sarif | base64 -w0 + * ``` + * + * SARIF upload supports a maximum number of entries per the following data objects, and an analysis will be rejected if any of these objects is above its maximum value. For some objects, there are additional values over which the entries will be ignored while keeping the most important entries whenever applicable. + * To get the most out of your analysis when it includes data above the supported limits, try to optimize the analysis configuration. For example, for the CodeQL tool, identify and remove the most noisy queries. For more information, see "[SARIF results exceed one or more limits](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif/results-exceed-limit)." + * + * + * | **SARIF data** | **Maximum values** | **Additional limits** | + * |----------------------------------|:------------------:|----------------------------------------------------------------------------------| + * | Runs per file | 20 | | + * | Results per run | 25,000 | Only the top 5,000 results will be included, prioritized by severity. | + * | Rules per run | 25,000 | | + * | Tool extensions per run | 100 | | + * | Thread Flow Locations per result | 10,000 | Only the top 1,000 Thread Flow Locations will be included, using prioritization. | + * | Location per result | 1,000 | Only 100 locations will be included. | + * | Tags per rule | 20 | Only 10 tags will be included. | + * + * + * The `202 Accepted` response includes an `id` value. + * You can use this ID to check the status of the upload by using it in the `/sarifs/{sarif_id}` endpoint. + * For more information, see "[Get information about a SARIF upload](/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/upload-sarif": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + commit_sha: components["schemas"]["code-scanning-analysis-commit-sha"]; + ref: components["schemas"]["code-scanning-ref-full"]; + sarif: components["schemas"]["code-scanning-analysis-sarif-file"]; + /** + * Format: uri + * @description The base directory used in the analysis, as it appears in the SARIF file. + * This property is used to convert file paths from absolute to relative, so that alerts can be mapped to their correct location in the repository. + * @example file:///github/workspace/ + */ + checkout_uri?: string; + /** + * Format: date-time + * @description The time that the analysis run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** @description The name of the tool used to generate the code scanning analysis. If this parameter is not used, the tool name defaults to "API". If the uploaded SARIF contains a tool GUID, this will be available for filtering using the `tool_guid` parameter of operations such as `GET /repos/{owner}/{repo}/code-scanning/alerts`. */ + tool_name?: string; + /** + * @description Whether the SARIF file will be validated according to the code scanning specifications. + * This parameter is intended to help integrators ensure that the uploaded SARIF files are correctly rendered by code scanning. + */ + validate?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["code-scanning-sarifs-receipt"]; + }; + }; + /** @description Bad Request if the sarif field is invalid */ + 400: { + content: never; + }; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + /** @description Payload Too Large if the sarif field is too large */ + 413: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get information about a SARIF upload + * @description Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see "[Get a code scanning analysis for a repository](/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository)." + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-sarif": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The SARIF ID obtained after uploading. */ + sarif_id: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-sarifs-status"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + /** @description Not Found if the sarif id does not match any upload */ + 404: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List CODEOWNERS errors + * @description List any syntax errors that are detected in the CODEOWNERS + * file. + * + * For more information about the correct CODEOWNERS syntax, + * see "[About code owners](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)." + */ + "repos/codeowners-errors": { + parameters: { + query?: { + /** @description A branch, tag or commit name used to determine which version of the CODEOWNERS file to use. Default: the repository's default branch (e.g. `main`) */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codeowners-errors"]; + }; + }; + /** @description Resource not found */ + 404: { + content: never; + }; + }; + }; + /** + * List codespaces in a repository for the authenticated user + * @description Lists the codespaces associated to a specified repository and the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/list-in-repository-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create a codespace in a repository + * @description Creates a codespace owned by the authenticated user in the specified repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/create-with-repo-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Git ref (typically a branch name) for this codespace */ + ref?: string; + /** @description The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided. */ + location?: string; + /** + * @description The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is being deprecated. + * @enum {string} + */ + geo?: "EuropeWest" | "SoutheastAsia" | "UsEast" | "UsWest"; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Whether to authorize requested permissions from devcontainer.json */ + multi_repo_permissions_opt_out?: boolean; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). */ + retention_period_minutes?: number; + } | null; + }; + }; + responses: { + /** @description Response when the codespace was successfully created */ + 201: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + /** @description Response when the codespace creation partially failed but is being retried in the background */ + 202: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List devcontainer configurations in a repository for the authenticated user + * @description Lists the devcontainer.json files associated with a specified repository and the authenticated user. These files + * specify launchpoint configurations for codespaces created within the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/list-devcontainers-in-repository-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + devcontainers: { + path: string; + name?: string; + display_name?: string; + }[]; + }; + }; + }; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List available machine types for a repository + * @description List the machine types available for a given repository based on its configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/repo-machines-for-authenticated-user": { + parameters: { + query?: { + /** @description The location to check for available machines. Assigned by IP if not provided. */ + location?: string; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description The branch or commit to check for prebuild availability and devcontainer restrictions. */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + machines: components["schemas"]["codespace-machine"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get default attributes for a codespace + * @description Gets the default attributes for codespaces created by the user with the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/pre-flight-with-repo-for-authenticated-user": { + parameters: { + query?: { + /** @description The branch or commit to check for a default devcontainer path. If not specified, the default branch will be checked. */ + ref?: string; + /** @description An alternative IP for default location auto-detection, such as when proxying a request. */ + client_ip?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response when a user is able to create codespaces from the repository. */ + 200: { + content: { + "application/json": { + billable_owner?: components["schemas"]["simple-user"]; + defaults?: { + location: string; + devcontainer_path: string | null; + }; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if permissions defined by a devcontainer have been accepted by the authenticated user + * @description Checks whether the permissions defined by a given devcontainer configuration have been accepted by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/check-permissions-for-devcontainer": { + parameters: { + query: { + /** @description The git reference that points to the location of the devcontainer configuration to use for the permission check. The value of `ref` will typically be a branch name (`heads/BRANCH_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. */ + ref: string; + /** @description Path to the devcontainer.json configuration to use for the permission check. */ + devcontainer_path: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response when the permission check is successful */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-permissions-check-for-devcontainer"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List repository secrets + * @description Lists all development environment secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/list-repo-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["repo-codespaces-secret"][]; + }; + }; + }; + }; + }; + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/get-repo-public-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-public-key"]; + }; + }; + }; + }; + /** + * Get a repository secret + * @description Gets a single repository development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/get-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repo-codespaces-secret"]; + }; + }; + }; + }; + /** + * Create or update a repository secret + * @description Creates or updates a repository development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/create-or-update-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete a repository secret + * @description Deletes a development environment secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/delete-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List repository collaborators + * @description For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * Organization members with write, maintain, or admin privileges on the organization-owned repository can use this endpoint. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + "repos/list-collaborators": { + parameters: { + query?: { + /** @description Filter collaborators returned by their affiliation. `outside` means all outside collaborators of an organization-owned repository. `direct` means all collaborators with permissions to an organization-owned repository, regardless of organization membership status. `all` means all collaborators the authenticated user can see. */ + affiliation?: "outside" | "direct" | "all"; + /** @description Filter collaborators by the permissions they have on the repository. If not specified, all collaborators will be returned. */ + permission?: "pull" | "triage" | "push" | "maintain" | "admin"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["collaborator"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if a user is a repository collaborator + * @description For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + "repos/check-collaborator": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response if user is a collaborator */ + 204: { + content: never; + }; + /** @description Not Found if user is not a collaborator */ + 404: { + content: never; + }; + }; + }; + /** + * Add a repository collaborator + * @description This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Adding an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + * + * For more information on permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with: + * + * ``` + * Cannot assign {member} permission of {role name} + * ``` + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [API](https://docs.github.com/rest/collaborators/invitations). + * + * **Updating an existing collaborator's permission level** + * + * The endpoint can also be used to change the permissions of an existing collaborator without first removing and re-adding the collaborator. To change the permissions, use the same endpoint and pass a different `permission` parameter. The response will be a `204`, with no other indication that the permission level changed. + * + * **Rate limits** + * + * You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + */ + "repos/add-collaborator": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant the collaborator. **Only valid on organization-owned repositories.** We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any. + * @default push + */ + permission?: string; + }; + }; + }; + responses: { + /** @description Response when a new invitation is created */ + 201: { + content: { + "application/json": components["schemas"]["repository-invitation"]; + }; + }; + /** + * @description Response when: + * - an existing collaborator is added as a collaborator + * - an organization member is added as an individual collaborator + * - an existing team member (whose team is also a repository collaborator) is added as an individual collaborator + */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove a repository collaborator + * @description Removes a collaborator from a repository. + * + * To use this endpoint, the authenticated user must either be an administrator of the repository or target themselves for removal. + * + * This endpoint also: + * - Cancels any outstanding invitations + * - Unasigns the user from any issues + * - Removes access to organization projects if the user is not an organization member and is not a collaborator on any other organization repositories. + * - Unstars the repository + * - Updates access permissions to packages + * + * Removing a user as a collaborator has the following effects on forks: + * - If the user had access to a fork through their membership to this repository, the user will also be removed from the fork. + * - If the user had their own fork of the repository, the fork will be deleted. + * - If the user still has read access to the repository, open pull requests by this user from a fork will be denied. + * + * **Note**: A user can still have access to the repository through organization permissions like base repository permissions. + * + * Although the API responds immediately, the additional permission updates might take some extra time to complete in the background. + * + * For more information on fork permissions, see "[About permissions and visibility of forks](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks)". + */ + "repos/remove-collaborator": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description No Content when collaborator was removed from the repository. */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get repository permissions for a user + * @description Checks the repository permission of a collaborator. The possible repository + * permissions are `admin`, `write`, `read`, and `none`. + * + * *Note*: The `permission` attribute provides the legacy base roles of `admin`, `write`, `read`, and `none`, where the + * `maintain` role is mapped to `write` and the `triage` role is mapped to `read`. To determine the role assigned to the + * collaborator, see the `role_name` attribute, which will provide the full role name, including custom roles. The + * `permissions` hash can also be used to determine which base level of access the collaborator has to the repository. + */ + "repos/get-collaborator-permission-level": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description if user has admin permissions */ + 200: { + content: { + "application/json": components["schemas"]["repository-collaborator-permission"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List commit comments for a repository + * @description Lists the commit comments for a specified repository. Comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/list-commit-comments-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["commit-comment"][]; + }; + }; + }; + }; + /** + * Get a commit comment + * @description Gets a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/get-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a commit comment */ + "repos/delete-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a commit comment + * @description Updates the contents of a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/update-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List reactions for a commit comment + * @description List the reactions to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + "reactions/list-for-commit-comment": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a commit comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create reaction for a commit comment + * @description Create a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). A response with an HTTP `200` status means that you already added the reaction type to this commit comment. + */ + "reactions/create-for-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the commit comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a commit comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + "reactions/delete-for-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List commits + * @description **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/list-commits": { + parameters: { + query?: { + /** @description SHA or branch to start listing commits from. Default: the repository’s default branch (usually `main`). */ + sha?: string; + /** @description Only commits containing this file path will be returned. */ + path?: string; + /** @description GitHub username or email address to use to filter by commit author. */ + author?: string; + /** @description GitHub username or email address to use to filter by commit committer. */ + committer?: string; + since?: components["parameters"]["since"]; + /** @description Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + until?: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["commit"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List branches for HEAD commit + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + */ + "repos/list-branches-for-head-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-short"][]; + }; + }; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List commit comments + * @description Lists the comments for a specified commit. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/list-comments-for-commit": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["commit-comment"][]; + }; + }; + }; + }; + /** + * Create a commit comment + * @description Create a comment for a commit using its `:commit_sha`. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/create-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment. */ + body: string; + /** @description Relative path of the file to comment on. */ + path?: string; + /** @description Line index in the diff to comment on. */ + position?: number; + /** @description **Deprecated**. Use **position** parameter instead. Line number in the file to comment on. */ + line?: number; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["commit-comment"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List pull requests associated with a commit + * @description Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, will only return open pull requests associated with the commit. + * + * To list the open or merged pull requests associated with a branch, you can set the `commit_sha` parameter to the branch name. + */ + "repos/list-pull-requests-associated-with-commit": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-simple"][]; + }; + }; + 409: components["responses"]["conflict"]; + }; + }; + /** + * Get a commit + * @description Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * **Note:** If there are more than 300 files in the commit diff and the default JSON media type is requested, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." Pagination query parameters are not supported for these media types. + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.sha`**: Returns the commit's SHA-1 hash. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/get-commit": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List check runs for a Git reference + * @description Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * If there are more than 1000 check suites on a single git reference, this endpoint will limit check runs to the 1000 most recent check suites. To iterate over all possible check runs, use the [List check suites for a Git reference](https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference) endpoint and provide the `check_suite_id` parameter to the [List check runs in a check suite](https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite) endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/list-for-ref": { + parameters: { + query?: { + check_name?: components["parameters"]["check-name"]; + status?: components["parameters"]["status"]; + /** @description Filters check runs by their `completed_at` timestamp. `latest` returns the most recent check runs. */ + filter?: "latest" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + app_id?: number; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + check_runs: components["schemas"]["check-run"][]; + }; + }; + }; + }; + }; + /** + * List check suites for a Git reference + * @description Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/list-suites-for-ref": { + parameters: { + query?: { + /** + * @description Filters check suites by GitHub App `id`. + * @example 1 + */ + app_id?: number; + check_name?: components["parameters"]["check-name"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + check_suites: components["schemas"]["check-suite"][]; + }; + }; + }; + }; + }; + /** + * Get the combined status for a specific reference + * @description Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + */ + "repos/get-combined-status-for-ref": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["combined-commit-status"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List commit statuses for a reference + * @description Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + */ + "repos/list-commit-statuses-for-ref": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["status"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + }; + }; + /** + * Get community profile metrics + * @description Returns all community profile metrics for a repository. The repository cannot be a fork. + * + * The returned metrics include an overall health score, the repository description, the presence of documentation, the + * detected code of conduct, the detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + * README, and CONTRIBUTING files. + * + * The `health_percentage` score is defined as a percentage of how many of + * the recommended community health files are present. For more information, see + * "[About community profiles for public repositories](https://docs.github.com/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories)." + * + * `content_reports_enabled` is only returned for organization-owned repositories. + */ + "repos/get-community-profile-metrics": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["community-profile"]; + }; + }; + }; + }; + /** + * Compare two commits + * @description Compares two commits against one another. You can compare refs (branches or tags) and commit SHAs in the same repository, or you can compare refs and commit SHAs that exist in different repositories within the same repository network, including fork branches. For more information about how to view a repository's network, see "[Understanding connections between repositories](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository/understanding-connections-between-repositories)." + * + * This endpoint is equivalent to running the `git log BASE..HEAD` command, but it returns commits in a different order. The `git log BASE..HEAD` command returns commits in reverse chronological order, whereas the API returns commits in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. + * + * The API response includes details about the files that were changed between the two commits. This includes the status of the change (if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * When calling this endpoint without any paging parameter (`per_page` or `page`), the returned list is limited to 250 commits, and the last commit in the list is the most recent of the entire comparison. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, use a query parameter (`per_page` or `page`) to paginate the results. When using pagination: + * + * - The list of changed files is only shown on the first page of results, but it includes all changed files for the entire comparison. + * - The results are returned in chronological order, but the last commit in the returned list may not be the most recent one in the entire set if there are more pages of results. + * + * For more information on working with pagination, see "[Using pagination in the REST API](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The `verification` object includes the following fields: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/compare-commits-with-basehead": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The base branch and head branch to compare. This parameter expects the format `BASE...HEAD`. Both must be branch names in `repo`. To compare with a branch that exists in a different repository in the same network as `repo`, the `basehead` parameter expects the format `USERNAME:BASE...USERNAME:HEAD`. */ + basehead: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comparison"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get repository content + * @description Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks. + * - **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * - **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects. + * + * If the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + * + * If the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself. + * + * If the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + * + * **Notes**: + * + * - To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree). + * - This API has an upper limit of 1,000 files for a directory. If you need to retrieve + * more files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree). + * - Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. + * - If the requested file's size is: + * - 1 MB or smaller: All features of this endpoint are supported. + * - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty + * string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * - Greater than 100 MB: This endpoint is not supported. + */ + "repos/get-content": { + parameters: { + query?: { + /** @description The name of the commit/branch/tag. Default: the repository’s default branch. */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description path parameter */ + path: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/vnd.github.object": components["schemas"]["content-tree"]; + "application/json": + | components["schemas"]["content-directory"] + | components["schemas"]["content-file"] + | components["schemas"]["content-symlink"] + | components["schemas"]["content-submodule"]; + }; + }; + 302: components["responses"]["found"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update file contents + * @description Creates a new file or replaces an existing file in a repository. + * + * **Note:** If you use this endpoint and the "[Delete a file](https://docs.github.com/rest/repos/contents/#delete-a-file)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The `workflow` scope is also required in order to modify files in the `.github/workflows` directory. + */ + "repos/create-or-update-file-contents": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description path parameter */ + path: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The commit message. */ + message: string; + /** @description The new file content, using Base64 encoding. */ + content: string; + /** @description **Required if you are updating a file**. The blob SHA of the file being replaced. */ + sha?: string; + /** @description The branch name. Default: the repository’s default branch. */ + branch?: string; + /** @description The person that committed the file. Default: the authenticated user. */ + committer?: { + /** @description The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted. */ + name: string; + /** @description The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted. */ + email: string; + /** @example "2013-01-05T13:13:22+05:00" */ + date?: string; + }; + /** @description The author of the file. Default: The `committer` or the authenticated user if you omit `committer`. */ + author?: { + /** @description The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted. */ + name: string; + /** @description The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted. */ + email: string; + /** @example "2013-01-15T17:13:22+05:00" */ + date?: string; + }; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["file-commit"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["file-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a file + * @description Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + * + * **Note:** If you use this endpoint and the "[Create or update file contents](https://docs.github.com/rest/repos/contents/#create-or-update-file-contents)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + */ + "repos/delete-file": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description path parameter */ + path: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The commit message. */ + message: string; + /** @description The blob SHA of the file being deleted. */ + sha: string; + /** @description The branch name. Default: the repository’s default branch */ + branch?: string; + /** @description object containing information about the committer. */ + committer?: { + /** @description The name of the author (or committer) of the commit */ + name?: string; + /** @description The email of the author (or committer) of the commit */ + email?: string; + }; + /** @description object containing information about the author. */ + author?: { + /** @description The name of the author (or committer) of the commit */ + name?: string; + /** @description The email of the author (or committer) of the commit */ + email?: string; + }; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["file-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List repository contributors + * @description Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + */ + "repos/list-contributors": { + parameters: { + query?: { + /** @description Set to `1` or `true` to include anonymous contributors in results. */ + anon?: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description If repository contains content */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["contributor"][]; + }; + }; + /** @description Response if repository is empty */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List Dependabot alerts for a repository + * @description OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "dependabot/list-alerts-for-repo": { + parameters: { + query?: { + state?: components["parameters"]["dependabot-alert-comma-separated-states"]; + severity?: components["parameters"]["dependabot-alert-comma-separated-severities"]; + ecosystem?: components["parameters"]["dependabot-alert-comma-separated-ecosystems"]; + package?: components["parameters"]["dependabot-alert-comma-separated-packages"]; + manifest?: components["parameters"]["dependabot-alert-comma-separated-manifests"]; + scope?: components["parameters"]["dependabot-alert-scope"]; + sort?: components["parameters"]["dependabot-alert-sort"]; + direction?: components["parameters"]["direction"]; + /** + * @deprecated + * @description **Deprecated**. Page number of the results to fetch. Use cursor-based pagination with `before` or `after` instead. + */ + page?: number; + /** + * @deprecated + * @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + */ + per_page?: number; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + first?: components["parameters"]["pagination-first"]; + last?: components["parameters"]["pagination-last"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get a Dependabot alert + * @description OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "dependabot/get-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["dependabot-alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a Dependabot alert + * @description The authenticated user must have access to security alerts for the repository to use this endpoint. For more information, see "[Granting access to security alerts](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "dependabot/update-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["dependabot-alert-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state of the Dependabot alert. + * A `dismissed_reason` must be provided when setting the state to `dismissed`. + * @enum {string} + */ + state: "dismissed" | "open"; + /** + * @description **Required when `state` is `dismissed`.** A reason for dismissing the alert. + * @enum {string} + */ + dismissed_reason?: + | "fix_started" + | "inaccurate" + | "no_bandwidth" + | "not_used" + | "tolerable_risk"; + /** @description An optional comment associated with dismissing the alert. */ + dismissed_comment?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List repository secrets + * @description Lists all secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependabot/list-repo-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["dependabot-secret"][]; + }; + }; + }; + }; + }; + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. Anyone with read access + * to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the repository is private. + */ + "dependabot/get-repo-public-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-public-key"]; + }; + }; + }; + }; + /** + * Get a repository secret + * @description Gets a single repository secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependabot/get-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-secret"]; + }; + }; + }; + }; + /** + * Create or update a repository secret + * @description Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependabot/create-or-update-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/dependabot/secrets#get-a-repository-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete a repository secret + * @description Deletes a secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependabot/delete-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get a diff of the dependencies between commits + * @description Gets the diff of the dependency changes between two commits of a repository, based on the changes to the dependency manifests made in those commits. + */ + "dependency-graph/diff-range": { + parameters: { + query?: { + name?: components["parameters"]["manifest-path"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The base and head Git revisions to compare. The Git revisions will be resolved to commit SHAs. Named revisions will be resolved to their corresponding HEAD commits, and an appropriate merge base will be determined. This parameter expects the format `{base}...{head}`. */ + basehead: string; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["dependency-graph-diff"]; + }; + }; + 403: components["responses"]["dependency_review_forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Export a software bill of materials (SBOM) for a repository. + * @description Exports the software bill of materials (SBOM) for a repository in SPDX JSON format. + */ + "dependency-graph/export-sbom": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["dependency-graph-spdx-sbom"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a snapshot of dependencies for a repository + * @description Create a new snapshot of a repository's dependencies. + * + * The authenticated user must have access to the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependency-graph/create-repository-snapshot": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["snapshot"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": { + /** @description ID of the created snapshot. */ + id: number; + /** @description The time at which the snapshot was created. */ + created_at: string; + /** @description Either "SUCCESS", "ACCEPTED", or "INVALID". "SUCCESS" indicates that the snapshot was successfully created and the repository's dependencies were updated. "ACCEPTED" indicates that the snapshot was successfully created, but the repository's dependencies were not updated. "INVALID" indicates that the snapshot was malformed. */ + result: string; + /** @description A message providing further details about the result, such as why the dependencies were not updated. */ + message: string; + }; + }; + }; + }; + }; + /** + * List deployments + * @description Simple filtering of deployments is available via query parameters: + */ + "repos/list-deployments": { + parameters: { + query?: { + /** @description The SHA recorded at creation time. */ + sha?: string; + /** @description The name of the ref. This can be a branch, tag, or SHA. */ + ref?: string; + /** @description The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). */ + task?: string; + /** @description The name of the environment that was deployed to (e.g., `staging` or `production`). */ + environment?: string | null; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["deployment"][]; + }; + }; + }; + }; + /** + * Create a deployment + * @description Deployments offer a few configurable parameters with certain defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + * before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + * makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + * return a failure response. + * + * By default, [commit statuses](https://docs.github.com/rest/commits/statuses) for every submitted context must be in a `success` + * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + * not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + * field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + * application with debugging enabled. + * + * Merged branch response: + * + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + * a deployment. This auto-merge happens when: + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful + * response. + * + * Merge conflict response: + * + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * Failed commit status checks: + * + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + "repos/create-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The ref to deploy. This can be a branch, tag, or SHA. */ + ref: string; + /** + * @description Specifies a task to execute (e.g., `deploy` or `deploy:migrations`). + * @default deploy + */ + task?: string; + /** + * @description Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch. + * @default true + */ + auto_merge?: boolean; + /** @description The [status](https://docs.github.com/rest/commits/statuses) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts. */ + required_contexts?: string[]; + payload?: OneOf< + [ + { + [key: string]: unknown; + }, + string, + ] + >; + /** + * @description Name for the target deployment environment (e.g., `production`, `staging`, `qa`). + * @default production + */ + environment?: string; + /** + * @description Short description of the deployment. + * @default + */ + description?: string | null; + /** + * @description Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false` + * @default false + */ + transient_environment?: boolean; + /** @description Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise. */ + production_environment?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["deployment"]; + }; + }; + /** @description Merged branch response */ + 202: { + content: { + "application/json": { + message?: string; + }; + }; + }; + /** @description Conflict when there is a merge conflict or the commit's status checks failed */ + 409: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Get a deployment */ + "repos/get-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a deployment + * @description If the repository only has one deployment, you can delete the deployment regardless of its status. If the repository has more than one deployment, you can only delete inactive deployments. This ensures that repositories with multiple deployments will always have an active deployment. + * + * To set a deployment as inactive, you must: + * + * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * * Mark the active deployment as inactive by adding any non-successful deployment status. + * + * For more information, see "[Create a deployment](https://docs.github.com/rest/deployments/deployments/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/deployments/statuses#create-a-deployment-status)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + "repos/delete-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List deployment statuses + * @description Users with pull access can view deployment statuses for a deployment: + */ + "repos/list-deployment-statuses": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["deployment-status"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a deployment status + * @description Users with `push` access can create deployment statuses for a given deployment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo_deployment` scope to use this endpoint. + */ + "repos/create-deployment-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state of the status. When you set a transient deployment to `inactive`, the deployment will be shown as `destroyed` in GitHub. + * @enum {string} + */ + state: + | "error" + | "failure" + | "inactive" + | "in_progress" + | "queued" + | "pending" + | "success"; + /** + * @description The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. **Note:** It's recommended to use the `log_url` parameter, which replaces `target_url`. + * @default + */ + target_url?: string; + /** + * @description The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `""` + * @default + */ + log_url?: string; + /** + * @description A short description of the status. The maximum description length is 140 characters. + * @default + */ + description?: string; + /** @description Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. If not defined, the environment of the previous status on the deployment will be used, if it exists. Otherwise, the environment of the deployment will be used. */ + environment?: string; + /** + * @description Sets the URL for accessing your environment. Default: `""` + * @default + */ + environment_url?: string; + /** @description Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true` */ + auto_inactive?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/example/deployments/42/statuses/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["deployment-status"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a deployment status + * @description Users with pull access can view a deployment status for a deployment: + */ + "repos/get-deployment-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + status_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-status"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a repository dispatch event + * @description You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-dispatch-event": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A custom webhook event name. Must be 100 characters or fewer. */ + event_type: string; + /** @description JSON payload with extra information about the webhook event that your action or workflow may use. The maximum number of top-level properties is 10. */ + client_payload?: { + [key: string]: unknown; + }; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List environments + * @description Lists the environments for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-all-environments": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + /** + * @description The number of environments in this repository + * @example 5 + */ + total_count?: number; + environments?: components["schemas"]["environment"][]; + }; + }; + }; + }; + }; + /** + * Get an environment + * @description **Note:** To get information about name patterns that branches must match in order to deploy to this environment, see "[Get a deployment branch policy](/rest/deployments/branch-policies#get-a-deployment-branch-policy)." + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-environment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["environment"]; + }; + }; + }; + }; + /** + * Create or update an environment + * @description Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "[Environments](/actions/reference/environments#environment-protection-rules)." + * + * **Note:** To create or update name patterns that branches must match in order to deploy to this environment, see "[Deployment branch policies](/rest/deployments/branch-policies)." + * + * **Note:** To create or update secrets for an environment, see "[GitHub Actions secrets](/rest/actions/secrets)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-or-update-environment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + requestBody?: { + content: { + "application/json": { + wait_timer?: components["schemas"]["wait-timer"]; + prevent_self_review?: components["schemas"]["prevent-self-review"]; + /** @description The people or teams that may review jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ + reviewers?: + | { + type?: components["schemas"]["deployment-reviewer-type"]; + /** + * @description The id of the user or team who can review the deployment + * @example 4532992 + */ + id?: number; + }[] + | null; + deployment_branch_policy?: components["schemas"]["deployment-branch-policy-settings"]; + } | null; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["environment"]; + }; + }; + /** @description Validation error when the environment name is invalid or when `protected_branches` and `custom_branch_policies` in `deployment_branch_policy` are set to the same value */ + 422: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Delete an environment + * @description OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/delete-an-environment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Default response */ + 204: { + content: never; + }; + }; + }; + /** + * List deployment branch policies + * @description Lists the deployment branch policies for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/list-deployment-branch-policies": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + /** + * @description The number of deployment branch policies for the environment. + * @example 2 + */ + total_count: number; + branch_policies: components["schemas"]["deployment-branch-policy"][]; + }; + }; + }; + }; + }; + /** + * Create a deployment branch policy + * @description Creates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-deployment-branch-policy": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["deployment-branch-policy-name-pattern-with-type"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-branch-policy"]; + }; + }; + /** @description Response if the same branch name pattern already exists */ + 303: { + content: never; + }; + /** @description Not Found or `deployment_branch_policy.custom_branch_policies` property for the environment is set to false */ + 404: { + content: never; + }; + }; + }; + /** + * Get a deployment branch policy + * @description Gets a deployment branch or tag policy for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-deployment-branch-policy": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + branch_policy_id: components["parameters"]["branch-policy-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-branch-policy"]; + }; + }; + }; + }; + /** + * Update a deployment branch policy + * @description Updates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/update-deployment-branch-policy": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + branch_policy_id: components["parameters"]["branch-policy-id"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["deployment-branch-policy-name-pattern"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-branch-policy"]; + }; + }; + }; + }; + /** + * Delete a deployment branch policy + * @description Deletes a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/delete-deployment-branch-policy": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + branch_policy_id: components["parameters"]["branch-policy-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get all deployment protection rules for an environment + * @description Gets all custom deployment protection rules that are enabled for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-all-deployment-protection-rules": { + parameters: { + path: { + environment_name: components["parameters"]["environment-name"]; + repo: components["parameters"]["repo"]; + owner: components["parameters"]["owner"]; + }; + }; + responses: { + /** @description List of deployment protection rules */ + 200: { + content: { + "application/json": { + /** + * @description The number of enabled custom deployment protection rules for this environment + * @example 10 + */ + total_count?: number; + custom_deployment_protection_rules?: components["schemas"]["deployment-protection-rule"][]; + }; + }; + }; + }; + }; + /** + * Create a custom deployment protection rule on an environment + * @description Enable a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-deployment-protection-rule": { + parameters: { + path: { + environment_name: components["parameters"]["environment-name"]; + repo: components["parameters"]["repo"]; + owner: components["parameters"]["owner"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The ID of the custom app that will be enabled on the environment. */ + integration_id?: number; + }; + }; + }; + responses: { + /** @description The enabled custom deployment protection rule */ + 201: { + content: { + "application/json": components["schemas"]["deployment-protection-rule"]; + }; + }; + }; + }; + /** + * List custom deployment rule integrations available for an environment + * @description Gets all custom deployment protection rule integrations that are available for an environment. Anyone with read access to the repository can use this endpoint. + * + * For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see "[GET an app](https://docs.github.com/rest/apps/apps#get-an-app)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/list-custom-deployment-rule-integrations": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + environment_name: components["parameters"]["environment-name"]; + repo: components["parameters"]["repo"]; + owner: components["parameters"]["owner"]; + }; + }; + responses: { + /** @description A list of custom deployment rule integrations available for this environment. */ + 200: { + content: { + "application/json": { + /** + * @description The total number of custom deployment protection rule integrations available for this environment. + * @example 35 + */ + total_count?: number; + available_custom_deployment_protection_rule_integrations?: components["schemas"]["custom-deployment-rule-app"][]; + }; + }; + }; + }; + }; + /** + * Get a custom deployment protection rule + * @description Gets an enabled custom deployment protection rule for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see [`GET /apps/{app_slug}`](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-custom-deployment-protection-rule": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + protection_rule_id: components["parameters"]["protection-rule-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-protection-rule"]; + }; + }; + }; + }; + /** + * Disable a custom protection rule for an environment + * @description Disables a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/disable-deployment-protection-rule": { + parameters: { + path: { + environment_name: components["parameters"]["environment-name"]; + repo: components["parameters"]["repo"]; + owner: components["parameters"]["owner"]; + protection_rule_id: components["parameters"]["protection-rule-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List environment secrets + * @description Lists all secrets available in an environment without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-environment-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["actions-secret"][]; + }; + }; + }; + }; + }; + /** + * Get an environment public key + * @description Get the public key for an environment, which you need to encrypt environment + * secrets. You need to encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-environment-public-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + }; + /** + * Get an environment secret + * @description Gets a single environment secret without revealing its encrypted value. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-environment-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-secret"]; + }; + }; + }; + }; + /** + * Create or update an environment secret + * @description Creates or updates an environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-or-update-environment-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an environment public key](https://docs.github.com/rest/actions/secrets#get-an-environment-public-key) endpoint. */ + encrypted_value: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id: string; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete an environment secret + * @description Deletes a secret in an environment using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-environment-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Default response */ + 204: { + content: never; + }; + }; + }; + /** + * List environment variables + * @description Lists all environment variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-environment-variables": { + parameters: { + query?: { + per_page?: components["parameters"]["variables-per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + variables: components["schemas"]["actions-variable"][]; + }; + }; + }; + }; + }; + /** + * Create an environment variable + * @description Create an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-environment-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name: string; + /** @description The value of the variable. */ + value: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Get an environment variable + * @description Gets a specific variable in an environment. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-environment-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-variable"]; + }; + }; + }; + }; + /** + * Delete an environment variable + * @description Deletes an environment variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-environment-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: components["parameters"]["variable-name"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update an environment variable + * @description Updates an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/update-environment-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: components["parameters"]["variable-name"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name?: string; + /** @description The value of the variable. */ + value?: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List repository events + * @description **Note**: This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + */ + "activity/list-repo-events": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** List forks */ + "repos/list-forks": { + parameters: { + query?: { + /** @description The sort order. `stargazers` will sort by star count. */ + sort?: "newest" | "oldest" | "stargazers" | "watchers"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 400: components["responses"]["bad_request"]; + }; + }; + /** + * Create a fork + * @description Create a fork for the authenticated user. + * + * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * + * **Note**: Although this endpoint works with GitHub Apps, the GitHub App must be installed on the destination account with access to all repositories and on the source account with access to the source repository. + */ + "repos/create-fork": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Optional parameter to specify the organization name if forking into an organization. */ + organization?: string; + /** @description When forking from an existing repository, a new name for the fork. */ + name?: string; + /** @description When forking from an existing repository, fork with only the default branch. */ + default_branch_only?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Create a blob */ + "git/create-blob": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The new blob's content. */ + content: string; + /** + * @description The encoding used for `content`. Currently, `"utf-8"` and `"base64"` are supported. + * @default utf-8 + */ + encoding?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["short-blob"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a blob + * @description The `content` in the response will always be Base64 encoded. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw blob data. + * - **`application/vnd.github+json`**: Returns a JSON representation of the blob with `content` as a base64 encoded string. This is the default if no media type is specified. + * + * **Note** This endpoint supports blobs up to 100 megabytes in size. + */ + "git/get-blob": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + file_sha: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["blob"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a commit + * @description Creates a new Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/create-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The commit message */ + message: string; + /** @description The SHA of the tree object this commit points to */ + tree: string; + /** @description The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided. */ + parents?: string[]; + /** @description Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details. */ + author?: { + /** @description The name of the author (or committer) of the commit */ + name: string; + /** @description The email of the author (or committer) of the commit */ + email: string; + /** + * Format: date-time + * @description Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + /** @description Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details. */ + committer?: { + /** @description The name of the author (or committer) of the commit */ + name?: string; + /** @description The email of the author (or committer) of the commit */ + email?: string; + /** + * Format: date-time + * @description Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + /** @description The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits. */ + signature?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a commit object + * @description Gets a Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * To get the contents of a commit, see "[Get a commit](/rest/commits/commits#get-a-commit)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/get-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + }; + }; + /** + * List matching references + * @description Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + * + * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + */ + "git/list-matching-refs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["git-ref-only"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["git-ref"][]; + }; + }; + 409: components["responses"]["conflict"]; + }; + }; + /** + * Get a reference + * @description Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + */ + "git/get-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["git-ref-only"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-ref"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + }; + }; + /** + * Create a reference + * @description Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. + */ + "git/create-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the fully qualified reference (ie: `refs/heads/master`). If it doesn't start with 'refs' and have at least two slashes, it will be rejected. */ + ref: string; + /** @description The SHA1 value for this reference. */ + sha: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-ref"]; + }; + }; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a reference + * @description Deletes the provided reference. + */ + "git/delete-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["git-ref-only"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Update a reference + * @description Updates the provided reference to point to a new SHA. For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. + */ + "git/update-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["git-ref-only"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The SHA1 value to set this reference to */ + sha: string; + /** + * @description Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to `false` will make sure you're not overwriting work. + * @default false + */ + force?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-ref"]; + }; + }; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a tag object + * @description Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/git/refs#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/git/refs#create-a-reference) the tag reference - this call would be unnecessary. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/create-tag": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The tag's name. This is typically a version (e.g., "v0.0.1"). */ + tag: string; + /** @description The tag message. */ + message: string; + /** @description The SHA of the git object this is tagging. */ + object: string; + /** + * @description The type of the object we're tagging. Normally this is a `commit` but it can also be a `tree` or a `blob`. + * @enum {string} + */ + type: "commit" | "tree" | "blob"; + /** @description An object with information about the individual creating the tag. */ + tagger?: { + /** @description The name of the author of the tag */ + name: string; + /** @description The email of the author of the tag */ + email: string; + /** + * Format: date-time + * @description When this object was tagged. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-tag"]; + }; + }; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a tag + * @description **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/get-tag": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + tag_sha: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-tag"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + }; + }; + /** + * Create a tree + * @description The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + * + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/git/commits#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/git/refs#update-a-reference)." + * + * Returns an error if you try to delete a file that does not exist. + */ + "git/create-tree": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Objects (of `path`, `mode`, `type`, and `sha`) specifying a tree structure. */ + tree: { + /** @description The file referenced in the tree. */ + path?: string; + /** + * @description The file mode; one of `100644` for file (blob), `100755` for executable (blob), `040000` for subdirectory (tree), `160000` for submodule (commit), or `120000` for a blob that specifies the path of a symlink. + * @enum {string} + */ + mode?: "100644" | "100755" | "040000" | "160000" | "120000"; + /** + * @description Either `blob`, `tree`, or `commit`. + * @enum {string} + */ + type?: "blob" | "tree" | "commit"; + /** + * @description The SHA1 checksum ID of the object in the tree. Also called `tree.sha`. If the value is `null` then the file will be deleted. + * + * **Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error. + */ + sha?: string | null; + /** + * @description The content you want this file to have. GitHub will write this blob out and use that SHA for this entry. Use either this, or `tree.sha`. + * + * **Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error. + */ + content?: string; + }[]; + /** + * @description The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on. + * If not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit. + */ + base_tree?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/trees/cd8274d15fa3ae2ab983129fb037999f264ba9a7 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-tree"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a tree + * @description Returns a single tree using the SHA1 value or ref name for that tree. + * + * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. + * + * + * **Note**: The limit for the `tree` array is 100,000 entries with a maximum size of 7 MB when using the `recursive` parameter. + */ + "git/get-tree": { + parameters: { + query?: { + /** @description Setting this parameter to any value returns the objects or subtrees referenced by the tree specified in `:tree_sha`. For example, setting `recursive` to any of the following will enable returning objects or subtrees: `0`, `1`, `"true"`, and `"false"`. Omit this parameter to prevent recursively returning objects or subtrees. */ + recursive?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The SHA1 value or ref (branch or tag) name of the tree. */ + tree_sha: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-tree"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List repository webhooks + * @description Lists webhooks for a repository. `last response` may return null if there have not been any deliveries within 30 days. + */ + "repos/list-webhooks": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["hook"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a repository webhook + * @description Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + * share the same `config` as long as those webhooks do not have any `events` that overlap. + */ + "repos/create-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Use `web` to create a webhook. Default: `web`. This parameter only accepts the value `web`. */ + name?: string; + /** @description Key/value pairs to provide settings for this webhook. */ + config?: { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/hooks/12345678 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["hook"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a repository webhook + * @description Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository)." + */ + "repos/get-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a repository webhook */ + "repos/delete-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a repository webhook + * @description Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/webhooks/repo-config#update-a-webhook-configuration-for-a-repository)." + */ + "repos/update-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + config?: components["schemas"]["webhook-config"]; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. This replaces the entire array of events. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** @description Determines a list of events to be added to the list of events that the Hook triggers for. */ + add_events?: string[]; + /** @description Determines a list of events to be removed from the list of events that the Hook triggers for. */ + remove_events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a webhook configuration for a repository + * @description Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/webhooks/repos#get-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:repo_hook` or `repo` scope to use this endpoint. + */ + "repos/get-webhook-config-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * Update a webhook configuration for a repository + * @description Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/webhooks/repos#update-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:repo_hook` or `repo` scope to use this endpoint. + */ + "repos/update-webhook-config-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * List deliveries for a repository webhook + * @description Returns a list of webhook deliveries for a webhook configured in a repository. + */ + "repos/list-webhook-deliveries": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + cursor?: components["parameters"]["cursor"]; + redelivery?: boolean; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery-item"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a delivery for a repository webhook + * @description Returns a delivery for a webhook configured in a repository. + */ + "repos/get-webhook-delivery": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery"]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Redeliver a delivery for a repository webhook + * @description Redeliver a webhook delivery for a webhook configured in a repository. + */ + "repos/redeliver-webhook-delivery": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Ping a repository webhook + * @description This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + "repos/ping-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Test the push repository webhook + * @description This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * + * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + */ + "repos/test-push-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get an import status + * @deprecated + * @description View the progress of an import. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * **Import status** + * + * This section includes details about the possible values of the `status` field of the Import Progress response. + * + * An import that does not have errors will progress through these steps: + * + * * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * * `complete` - the import is complete, and the repository is ready on GitHub. + * + * If there are problems, you will see one of these in the `status` field: + * + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/migrations/source-imports#cancel-an-import) and [retry](https://docs.github.com/rest/migrations/source-imports#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * + * **The project_choices field** + * + * When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + * + * **Git LFS related fields** + * + * This section includes details about Git LFS related fields that may be present in the Import Progress response. + * + * * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + */ + "migrations/get-import-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Start an import + * @deprecated + * @description Start a source import to a GitHub repository using GitHub Importer. + * Importing into a GitHub repository with GitHub Actions enabled is not supported and will + * return a status `422 Unprocessable Entity` response. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/start-import": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The URL of the originating repository. */ + vcs_url: string; + /** + * @description The originating VCS type. Without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response. + * @enum {string} + */ + vcs?: "subversion" | "git" | "mercurial" | "tfvc"; + /** @description If authentication is required, the username to provide to `vcs_url`. */ + vcs_username?: string; + /** @description If authentication is required, the password to provide to `vcs_url`. */ + vcs_password?: string; + /** @description For a tfvc import, the name of the project that is being imported. */ + tfvc_project?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/spraints/socm/import */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Cancel an import + * @deprecated + * @description Stop an import for a repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/cancel-import": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Update an import + * @deprecated + * @description An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API + * request. If no parameters are provided, the import will be restarted. + * + * Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will + * have the status `detection_found_multiple` and the Import Progress response will include a `project_choices` array. + * You can select the project to import by providing one of the objects in the `project_choices` array in the update request. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/update-import": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The username to provide to the originating repository. */ + vcs_username?: string; + /** @description The password to provide to the originating repository. */ + vcs_password?: string; + /** + * @description The type of version control system you are migrating from. + * @example "git" + * @enum {string} + */ + vcs?: "subversion" | "tfvc" | "git" | "mercurial"; + /** + * @description For a tfvc import, the name of the project that is being imported. + * @example "project1" + */ + tfvc_project?: string; + } | null; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Get commit authors + * @deprecated + * @description Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + * + * This endpoint and the [Map a commit author](https://docs.github.com/rest/migrations/source-imports#map-a-commit-author) endpoint allow you to provide correct Git author information. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/get-commit-authors": { + parameters: { + query?: { + since?: components["parameters"]["since-user"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["porter-author"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Map a commit author + * @deprecated + * @description Update an author's identity for the import. Your application can continue updating authors any time before you push + * new commits to the repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/map-commit-author": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + author_id: number; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The new Git author email. */ + email?: string; + /** @description The new Git author name. */ + name?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["porter-author"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Get large files + * @deprecated + * @description List files larger than 100MB found during the import + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/get-large-files": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["porter-large-file"][]; + }; + }; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Update Git LFS preference + * @deprecated + * @description You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability + * is powered by [Git LFS](https://git-lfs.com). + * + * You can learn more about our LFS feature and working with large files [on our help + * site](https://docs.github.com/repositories/working-with-files/managing-large-files). + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/set-lfs-preference": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Whether to store large files during the import. `opt_in` means large files will be stored using Git LFS. `opt_out` means large files will be removed during the import. + * @enum {string} + */ + use_lfs: "opt_in" | "opt_out"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Get a repository installation for the authenticated app + * @description Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-repo-installation": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get interaction restrictions for a repository + * @description Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + "interactions/get-restrictions-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": + | components["schemas"]["interaction-limit-response"] + | Record; + }; + }; + }; + }; + /** + * Set interaction restrictions for a repository + * @description Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + "interactions/set-restrictions-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["interaction-limit"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + /** @description Response */ + 409: { + content: never; + }; + }; + }; + /** + * Remove interaction restrictions for a repository + * @description Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + "interactions/remove-restrictions-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response */ + 409: { + content: never; + }; + }; + }; + /** + * List repository invitations + * @description When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. + */ + "repos/list-invitations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["repository-invitation"][]; + }; + }; + }; + }; + /** Delete a repository invitation */ + "repos/delete-invitation": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** Update a repository invitation */ + "repos/update-invitation": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permissions that the associated user will have on the repository. Valid values are `read`, `write`, `maintain`, `triage`, and `admin`. + * @enum {string} + */ + permissions?: "read" | "write" | "maintain" | "triage" | "admin"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-invitation"]; + }; + }; + }; + }; + /** + * List repository issues + * @description List issues in a repository. Only open issues will be listed. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-for-repo": { + parameters: { + query?: { + /** @description If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned. */ + milestone?: string; + /** @description Indicates the state of the issues to return. */ + state?: "open" | "closed" | "all"; + /** @description Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user. */ + assignee?: string; + /** @description The user that created the issue. */ + creator?: string; + /** @description A user that's mentioned in the issue. */ + mentioned?: string; + labels?: components["parameters"]["labels"]; + /** @description What to sort results by. */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create an issue + * @description Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://docs.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/create": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the issue. */ + title: string | number; + /** @description The contents of the issue. */ + body?: string; + /** @description Login for the user that this issue should be assigned to. _NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. **This field is deprecated.**_ */ + assignee?: string | null; + milestone?: string | number | null; + /** @description Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._ */ + labels?: OneOf< + [ + string, + { + id?: number; + name?: string; + description?: string | null; + color?: string | null; + }, + ] + >[]; + /** @description Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ */ + assignees?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/issues/1347 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List issue comments for a repository + * @description You can use the REST API to list comments on issues and pull requests for a repository. Every pull request is an issue, but not every issue is a pull request. + * + * By default, issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-comments-for-repo": { + parameters: { + query?: { + sort?: components["parameters"]["sort"]; + /** @description Either `asc` or `desc`. Ignored without the `sort` parameter. */ + direction?: "asc" | "desc"; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue-comment"][]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an issue comment + * @description You can use the REST API to get comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/get-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an issue comment + * @description You can use the REST API to delete comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + */ + "issues/delete-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update an issue comment + * @description You can use the REST API to update comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/update-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue-comment"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List reactions for an issue comment + * @description List the reactions to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + "reactions/list-for-issue-comment": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to an issue comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create reaction for an issue comment + * @description Create a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). A response with an HTTP `200` status means that you already added the reaction type to this issue comment. + */ + "reactions/create-for-issue-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the issue comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an issue comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + "reactions/delete-for-issue-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List issue events for a repository + * @description Lists events for a repository. + */ + "issues/list-events-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue-event"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an issue event + * @description Gets a single event by the event id. + */ + "issues/get-event": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + event_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue-event"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Get an issue + * @description The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api#follow-redirects) if the issue was + * [transferred](https://docs.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API + * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read + * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe + * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Update an issue + * @description Issue owners and users with push access can edit an issue. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The title of the issue. */ + title?: string | number | null; + /** @description The contents of the issue. */ + body?: string | null; + /** @description Username to assign to this issue. **This field is deprecated.** */ + assignee?: string | null; + /** + * @description The open or closed state of the issue. + * @enum {string} + */ + state?: "open" | "closed"; + /** + * @description The reason for the state change. Ignored unless `state` is changed. + * @example not_planned + * @enum {string|null} + */ + state_reason?: "completed" | "not_planned" | "reopened" | null; + milestone?: string | number | null; + /** @description Labels to associate with this issue. Pass one or more labels to _replace_ the set of labels on this issue. Send an empty array (`[]`) to clear all labels from the issue. Only users with push access can set labels for issues. Without push access to the repository, label changes are silently dropped. */ + labels?: OneOf< + [ + string, + { + id?: number; + name?: string; + description?: string | null; + color?: string | null; + }, + ] + >[]; + /** @description Usernames to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this issue. Send an empty array (`[]`) to clear all assignees from the issue. Only users with push access can set assignees for new issues. Without push access to the repository, assignee changes are silently dropped. */ + assignees?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Add assignees to an issue + * @description Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. + */ + "issues/add-assignees": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._ */ + assignees?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + }; + }; + /** + * Remove assignees from an issue + * @description Removes one or more assignees from an issue. + */ + "issues/remove-assignees": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._ */ + assignees: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + }; + }; + /** + * Check if a user can be assigned to a issue + * @description Checks if a user has permission to be assigned to a specific issue. + * + * If the `assignee` can be assigned to this issue, a `204` status code with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + "issues/check-user-can-be-assigned-to-issue": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + assignee: string; + }; + }; + responses: { + /** @description Response if `assignee` can be assigned to `issue_number` */ + 204: { + content: never; + }; + /** @description Response if `assignee` can not be assigned to `issue_number` */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * List issue comments + * @description You can use the REST API to list comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * Issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-comments": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue-comment"][]; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Create an issue comment + * @description You can use the REST API to create comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + * Creating content too quickly using this endpoint may result in secondary rate limiting. + * For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/create-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/issues/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["issue-comment"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List issue events + * @description Lists all events for an issue. + */ + "issues/list-events": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue-event-for-issue"][]; + }; + }; + 410: components["responses"]["gone"]; + }; + }; + /** + * List labels for an issue + * @description Lists all labels for an issue. + */ + "issues/list-labels-on-issue": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Set labels for an issue + * @description Removes any previous labels and sets the new labels for an issue. + */ + "issues/set-labels": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": OneOf< + [ + { + /** @description The names of the labels to set for the issue. The labels you set replace any existing labels. You can pass an empty array to remove all labels. Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. You can also add labels to the existing labels for an issue. For more information, see "[Add labels to an issue](https://docs.github.com/rest/issues/labels#add-labels-to-an-issue)." */ + labels?: string[]; + }, + { + labels?: { + name: string; + }[]; + }, + ] + >; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add labels to an issue + * @description Adds labels to an issue. If you provide an empty array of labels, all labels are removed from the issue. + */ + "issues/add-labels": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": OneOf< + [ + { + /** @description The names of the labels to add to the issue's existing labels. You can pass an empty array to remove all labels. Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. You can also replace all of the labels for an issue. For more information, see "[Set labels for an issue](https://docs.github.com/rest/issues/labels#set-labels-for-an-issue)." */ + labels?: string[]; + }, + { + labels?: { + name: string; + }[]; + }, + ] + >; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove all labels from an issue + * @description Removes all labels from an issue. + */ + "issues/remove-all-labels": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Remove a label from an issue + * @description Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. + */ + "issues/remove-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + name: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Lock an issue + * @description Users with push access can lock an issue or pull request's conversation. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "issues/lock": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: + * * `off-topic` + * * `too heated` + * * `resolved` + * * `spam` + * @enum {string} + */ + lock_reason?: "off-topic" | "too heated" | "resolved" | "spam"; + } | null; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Unlock an issue + * @description Users with push access can unlock an issue's conversation. + */ + "issues/unlock": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List reactions for an issue + * @description List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + "reactions/list-for-issue": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to an issue. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Create reaction for an issue + * @description Create a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). A response with an HTTP `200` status means that you already added the reaction type to this issue. + */ + "reactions/create-for-issue": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the issue. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an issue reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + * + * Delete a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + "reactions/delete-for-issue": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List timeline events for an issue + * @description List all timeline events for an issue. + */ + "issues/list-events-for-timeline": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["timeline-issue-events"][]; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** List deploy keys */ + "repos/list-deploy-keys": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["deploy-key"][]; + }; + }; + }; + }; + /** + * Create a deploy key + * @description You can create a read-only deploy key. + */ + "repos/create-deploy-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A name for the key. */ + title?: string; + /** @description The contents of the key. */ + key: string; + /** + * @description If `true`, the key will only be able to read repository contents. Otherwise, the key will be able to read and write. + * + * Deploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see "[Repository permission levels for an organization](https://docs.github.com/articles/repository-permission-levels-for-an-organization/)" and "[Permission levels for a user account repository](https://docs.github.com/articles/permission-levels-for-a-user-account-repository/)." + */ + read_only?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/keys/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["deploy-key"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Get a deploy key */ + "repos/get-deploy-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deploy-key"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a deploy key + * @description Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. + */ + "repos/delete-deploy-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List labels for a repository + * @description Lists all labels for a repository. + */ + "issues/list-labels-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a label + * @description Creates a label for the specified repository with the given name and color. The name and color parameters are required. The color must be a valid [hexadecimal color code](http://www.color-hex.com/). + */ + "issues/create-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see "[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet)." */ + name: string; + /** @description The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. */ + color?: string; + /** @description A short description of the label. Must be 100 characters or fewer. */ + description?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/labels/bug */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["label"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a label + * @description Gets a label using the given name. + */ + "issues/get-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a label + * @description Deletes a label using the given label name. + */ + "issues/delete-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: string; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a label + * @description Updates a label using the given label name. + */ + "issues/update-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: string; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see "[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet)." */ + new_name?: string; + /** @description The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. */ + color?: string; + /** @description A short description of the label. Must be 100 characters or fewer. */ + description?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"]; + }; + }; + }; + }; + /** + * List repository languages + * @description Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. + */ + "repos/list-languages": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["language"]; + }; + }; + }; + }; + /** + * Get the license for a repository + * @description This method returns the contents of the repository's license file, if one is detected. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw contents of the license. + * - **`application/vnd.github.html+json`**: Returns the license contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + "licenses/get-for-repo": { + parameters: { + query?: { + ref?: components["parameters"]["git-ref"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["license-content"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Sync a fork branch with the upstream repository + * @description Sync a branch of a forked repository to keep it up-to-date with the upstream repository. + */ + "repos/merge-upstream": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the branch which should be updated to match upstream. */ + branch: string; + }; + }; + }; + responses: { + /** @description The branch has been successfully synced with the upstream repository */ + 200: { + content: { + "application/json": components["schemas"]["merged-upstream"]; + }; + }; + /** @description The branch could not be synced because of a merge conflict */ + 409: { + content: never; + }; + /** @description The branch could not be synced for some other reason */ + 422: { + content: never; + }; + }; + }; + /** Merge a branch */ + "repos/merge": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the base branch that the head will be merged into. */ + base: string; + /** @description The head to merge. This can be a branch name or a commit SHA1. */ + head: string; + /** @description Commit message to use for the merge commit. If omitted, a default message will be used. */ + commit_message?: string; + }; + }; + }; + responses: { + /** @description Successful Response (The resulting merge commit) */ + 201: { + content: { + "application/json": components["schemas"]["commit"]; + }; + }; + /** @description Response when already merged */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + /** @description Not Found when the base or head does not exist */ + 404: { + content: never; + }; + /** @description Conflict when there is a merge conflict */ + 409: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List milestones + * @description Lists milestones for a repository. + */ + "issues/list-milestones": { + parameters: { + query?: { + /** @description The state of the milestone. Either `open`, `closed`, or `all`. */ + state?: "open" | "closed" | "all"; + /** @description What to sort results by. Either `due_on` or `completeness`. */ + sort?: "due_on" | "completeness"; + /** @description The direction of the sort. Either `asc` or `desc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["milestone"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a milestone + * @description Creates a milestone. + */ + "issues/create-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the milestone. */ + title: string; + /** + * @description The state of the milestone. Either `open` or `closed`. + * @default open + * @enum {string} + */ + state?: "open" | "closed"; + /** @description A description of the milestone. */ + description?: string; + /** + * Format: date-time + * @description The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/milestones/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["milestone"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a milestone + * @description Gets a milestone using the given milestone number. + */ + "issues/get-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["milestone"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a milestone + * @description Deletes a milestone using the given milestone number. + */ + "issues/delete-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Update a milestone */ + "issues/update-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The title of the milestone. */ + title?: string; + /** + * @description The state of the milestone. Either `open` or `closed`. + * @default open + * @enum {string} + */ + state?: "open" | "closed"; + /** @description A description of the milestone. */ + description?: string; + /** + * Format: date-time + * @description The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["milestone"]; + }; + }; + }; + }; + /** + * List labels for issues in a milestone + * @description Lists labels for issues in a milestone. + */ + "issues/list-labels-for-milestone": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + }; + }; + /** + * List repository notifications for the authenticated user + * @description Lists all notifications for the current user in the specified repository. + */ + "activity/list-repo-notifications-for-authenticated-user": { + parameters: { + query?: { + all?: components["parameters"]["all"]; + participating?: components["parameters"]["participating"]; + since?: components["parameters"]["since"]; + before?: components["parameters"]["before"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["thread"][]; + }; + }; + }; + }; + /** + * Mark repository notifications as read + * @description Marks all notifications in a repository as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + "activity/mark-repo-notifications-as-read": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * Format: date-time + * @description Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; + }; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": { + message?: string; + url?: string; + }; + }; + }; + /** @description Reset Content */ + 205: { + content: never; + }; + }; + }; + /** + * Get a GitHub Pages site + * @description Gets information about a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/get-pages": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["page"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update information about a GitHub Pages site + * @description Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/update-information-about-pages-site": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Specify a custom domain for the repository. Sending a `null` value will remove the custom domain. For more about custom domains, see "[Using a custom domain with GitHub Pages](https://docs.github.com/articles/using-a-custom-domain-with-github-pages/)." */ + cname?: string | null; + /** @description Specify whether HTTPS should be enforced for the repository. */ + https_enforced?: boolean; + /** + * @description The process by which the GitHub Pages site will be built. `workflow` means that the site is built by a custom GitHub Actions workflow. `legacy` means that the site is built by GitHub when changes are pushed to a specific branch. + * @enum {string} + */ + build_type?: "legacy" | "workflow"; + source?: + | ("gh-pages" | "master" | "master /docs") + | { + /** @description The repository branch used to publish your site's source files. */ + branch: string; + /** + * @description The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. + * @enum {string} + */ + path: "/" | "/docs"; + }; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 400: components["responses"]["bad_request"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a GitHub Pages site + * @description Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-pages-site": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The process in which the Page will be built. Possible values are `"legacy"` and `"workflow"`. + * @enum {string} + */ + build_type?: "legacy" | "workflow"; + /** @description The source branch and directory used to publish your Pages site. */ + source?: { + /** @description The repository branch used to publish your site's source files. */ + branch: string; + /** + * @description The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. Default: `/` + * @default / + * @enum {string} + */ + path?: "/" | "/docs"; + }; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["page"]; + }; + }; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a GitHub Pages site + * @description Deletes a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/delete-pages-site": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List GitHub Pages builds + * @description Lists builts of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/list-pages-builds": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["page-build"][]; + }; + }; + }; + }; + /** + * Request a GitHub Pages build + * @description You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + */ + "repos/request-pages-build": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["page-build-status"]; + }; + }; + }; + }; + /** + * Get latest Pages build + * @description Gets information about the single most recent build of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/get-latest-pages-build": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["page-build"]; + }; + }; + }; + }; + /** + * Get GitHub Pages build + * @description Gets information about a GitHub Pages build. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/get-pages-build": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + build_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["page-build"]; + }; + }; + }; + }; + /** + * Create a GitHub Pages deployment + * @description Create a GitHub Pages deployment for a repository. + * + * The authenticated user must have write permission to the repository. + */ + "repos/create-pages-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The ID of an artifact that contains the .zip or .tar of static assets to deploy. The artifact belongs to the repository. Either `artifact_id` or `artifact_url` are required. */ + artifact_id?: number; + /** @description The URL of an artifact that contains the .zip or .tar of static assets to deploy. The artifact belongs to the repository. Either `artifact_id` or `artifact_url` are required. */ + artifact_url?: string; + /** + * @description The target environment for this GitHub Pages deployment. + * @default github-pages + */ + environment?: string; + /** + * @description A unique string that represents the version of the build for this deployment. + * @default GITHUB_SHA + */ + pages_build_version: string; + /** @description The OIDC token issued by GitHub Actions certifying the origin of the deployment. */ + oidc_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["page-deployment"]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get the status of a GitHub Pages deployment + * @description Gets the current status of a GitHub Pages deployment. + * + * The authenticated user must have read permission for the GitHub Pages site. + */ + "repos/get-pages-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pages_deployment_id: components["parameters"]["pages-deployment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pages-deployment-status"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Cancel a GitHub Pages deployment + * @description Cancels a GitHub Pages deployment. + * + * The authenticated user must have write permissions for the GitHub Pages site. + */ + "repos/cancel-pages-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pages_deployment_id: components["parameters"]["pages-deployment-id"]; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a DNS health check for GitHub Pages + * @description Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages. + * + * The first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response. + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/get-pages-health-check": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pages-health-check"]; + }; + }; + /** @description Empty response */ + 202: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Custom domains are not available for GitHub Pages */ + 400: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description There isn't a CNAME for this page */ + 422: { + content: never; + }; + }; + }; + /** + * Check if private vulnerability reporting is enabled for a repository + * @description Returns a boolean indicating whether or not private vulnerability reporting is enabled for the repository. For more information, see "[Evaluating the security settings of a repository](https://docs.github.com/code-security/security-advisories/working-with-repository-security-advisories/evaluating-the-security-settings-of-a-repository)". + */ + "repos/check-private-vulnerability-reporting": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Private vulnerability reporting status */ + 200: { + content: { + "application/json": { + /** @description Whether or not private vulnerability reporting is enabled for the repository. */ + enabled: boolean; + }; + }; + }; + 422: components["responses"]["bad_request"]; + }; + }; + /** + * Enable private vulnerability reporting for a repository + * @description Enables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)." + */ + "repos/enable-private-vulnerability-reporting": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 422: components["responses"]["bad_request"]; + }; + }; + /** + * Disable private vulnerability reporting for a repository + * @description Disables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)". + */ + "repos/disable-private-vulnerability-reporting": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 422: components["responses"]["bad_request"]; + }; + }; + /** + * List repository projects + * @description Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/list-for-repo": { + parameters: { + query?: { + /** @description Indicates the state of the projects to return. */ + state?: "open" | "closed" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Create a repository project + * @description Creates a repository project board. Returns a `410 Gone` status if projects are disabled in the repository or if the repository does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/create-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the project. */ + name: string; + /** @description The description of the project. */ + body?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get all custom property values for a repository + * @description Gets all custom property values that are set for a repository. + * Users with read access to the repository can use this endpoint. + */ + "repos/get-custom-properties-values": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["custom-property-value"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update custom property values for a repository + * @description Create new or update existing custom property values for a repository. + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * Repository admins and other users with the repository-level "edit custom property values" fine-grained permission can use this endpoint. + */ + "repos/create-or-update-custom-properties-values": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A list of custom property names and associated values to apply to the repositories. */ + properties: components["schemas"]["custom-property-value"][]; + }; + }; + }; + responses: { + /** @description No Content when custom property values are successfully created or updated */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List pull requests + * @description Lists pull requests in a specified repository. + * + * Draft pull requests are available in public repositories with GitHub + * Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing + * plans, and in public and private repositories with GitHub Team and GitHub Enterprise + * Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + * in the GitHub Help documentation. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list": { + parameters: { + query?: { + /** @description Either `open`, `closed`, or `all` to filter by state. */ + state?: "open" | "closed" | "all"; + /** @description Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`. */ + head?: string; + /** @description Filter pulls by base branch name. Example: `gh-pages`. */ + base?: string; + /** @description What to sort results by. `popularity` will sort by the number of comments. `long-running` will sort by date created and will limit the results to pull requests that have been open for more than a month and have had activity within the past month. */ + sort?: "created" | "updated" | "popularity" | "long-running"; + /** @description The direction of the sort. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/create": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the new pull request. Required unless `issue` is specified. */ + title?: string; + /** @description The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head` with a user like this: `username:branch`. */ + head: string; + /** + * Format: repo.nwo + * @description The name of the repository where the changes in the pull request were made. This field is required for cross-repository pull requests if both repositories are owned by the same organization. + * @example octo-org/octo-repo + */ + head_repo?: string; + /** @description The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. */ + base: string; + /** @description The contents of the pull request. */ + body?: string; + /** @description Indicates whether [maintainers can modify](https://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. */ + maintainer_can_modify?: boolean; + /** @description Indicates whether the pull request is a draft. See "[Draft Pull Requests](https://docs.github.com/articles/about-pull-requests#draft-pull-requests)" in the GitHub Help documentation to learn more. */ + draft?: boolean; + /** + * Format: int64 + * @description An issue in the repository to convert to a pull request. The issue title, body, and comments will become the title, body, and comments on the new pull request. Required unless `title` is specified. + * @example 1 + */ + issue?: number; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/1347 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["pull-request"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List review comments in a repository + * @description Lists review comments for all pull requests in a repository. By default, + * review comments are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-review-comments-for-repo": { + parameters: { + query?: { + sort?: "created" | "updated" | "created_at"; + /** @description The direction to sort results. Ignored without `sort` parameter. */ + direction?: "asc" | "desc"; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"][]; + }; + }; + }; + }; + /** + * Get a review comment for a pull request + * @description Provides details for a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/get-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a review comment for a pull request + * @description Deletes a review comment. + */ + "pulls/delete-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a review comment for a pull request + * @description Edits the content of a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/update-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The text of the reply to the review comment. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + }; + }; + /** + * List reactions for a pull request review comment + * @description List the reactions to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + "reactions/list-for-pull-request-review-comment": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a pull request review comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create reaction for a pull request review comment + * @description Create a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment. + */ + "reactions/create-for-pull-request-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the pull request review comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a pull request comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + * + * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + "reactions/delete-for-pull-request-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists details of a pull request by providing its number. + * + * When you get, [create](https://docs.github.com/rest/pulls/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/pulls/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + * + * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + * + * * If merged as a [merge commit](https://docs.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://docs.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://docs.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + "pulls/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. */ + 200: { + content: { + "application/json": components["schemas"]["pull-request"]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + 406: components["responses"]["unacceptable"]; + 500: components["responses"]["internal_error"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Update a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The title of the pull request. */ + title?: string; + /** @description The contents of the pull request. */ + body?: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state?: "open" | "closed"; + /** @description The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository. */ + base?: string; + /** @description Indicates whether [maintainers can modify](https://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. */ + maintainer_can_modify?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a codespace from a pull request + * @description Creates a codespace owned by the authenticated user for the specified pull request. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/create-with-pr-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided. */ + location?: string; + /** + * @description The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is being deprecated. + * @enum {string} + */ + geo?: "EuropeWest" | "SoutheastAsia" | "UsEast" | "UsWest"; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Whether to authorize requested permissions from devcontainer.json */ + multi_repo_permissions_opt_out?: boolean; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). */ + retention_period_minutes?: number; + } | null; + }; + }; + responses: { + /** @description Response when the codespace was successfully created */ + 201: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + /** @description Response when the codespace creation partially failed but is being retried in the background */ + 202: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List review comments on a pull request + * @description Lists all review comments for a specified pull request. By default, review comments + * are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-review-comments": { + parameters: { + query?: { + sort?: components["parameters"]["sort"]; + /** @description The direction to sort results. Ignored without `sort` parameter. */ + direction?: "asc" | "desc"; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"][]; + }; + }; + }; + }; + /** + * Create a review comment for a pull request + * @description Creates a review comment on the diff of a specified pull request. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/issues/comments#create-an-issue-comment)." + * + * If your comment applies to more than one line in the pull request diff, you should use the parameters `line`, `side`, and optionally `start_line` and `start_side` in your request. + * + * The `position` parameter is deprecated. If you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/create-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The text of the review comment. */ + body: string; + /** @description The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. */ + commit_id: string; + /** @description The relative path to the file that necessitates a comment. */ + path: string; + /** + * @deprecated + * @description **This parameter is deprecated. Use `line` instead**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + */ + position?: number; + /** + * @description In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://docs.github.com/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + * @enum {string} + */ + side?: "LEFT" | "RIGHT"; + /** @description **Required unless using `subject_type:file`**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. */ + line?: number; + /** @description **Required when using multi-line comments unless using `in_reply_to`**. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://docs.github.com/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. */ + start_line?: number; + /** + * @description **Required when using multi-line comments unless using `in_reply_to`**. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://docs.github.com/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + * @enum {string} + */ + start_side?: "LEFT" | "RIGHT" | "side"; + /** + * @description The ID of the review comment to reply to. To find the ID of a review comment with ["List review comments on a pull request"](#list-review-comments-on-a-pull-request). When specified, all parameters other than `body` in the request body are ignored. + * @example 2 + */ + in_reply_to?: number; + /** + * @description The level at which the comment is targeted. + * @enum {string} + */ + subject_type?: "line" | "file"; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a reply for a review comment + * @description Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/create-reply-for-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The text of the review comment. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List commits on a pull request + * @description Lists a maximum of 250 commits for a pull request. To receive a complete + * commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/commits/commits#list-commits) + * endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-commits": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["commit"][]; + }; + }; + }; + }; + /** + * List pull requests files + * @description Lists the files in a specified pull request. + * + * **Note:** Responses include a maximum of 3000 files. The paginated response + * returns 30 files per page by default. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-files": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["diff-entry"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Check if a pull request has been merged + * @description Checks if a pull request has been merged into the base branch. The HTTP status of the response indicates whether or not the pull request has been merged; the response body is empty. + */ + "pulls/check-if-merged": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response if pull request has been merged */ + 204: { + content: never; + }; + /** @description Not Found if pull request has not been merged */ + 404: { + content: never; + }; + }; + }; + /** + * Merge a pull request + * @description Merges a pull request into the base branch. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + "pulls/merge": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Title for the automatic commit message. */ + commit_title?: string; + /** @description Extra detail to append to automatic commit message. */ + commit_message?: string; + /** @description SHA that pull request head must match to allow merge. */ + sha?: string; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method?: "merge" | "squash" | "rebase"; + } | null; + }; + }; + responses: { + /** @description if merge was successful */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-merge-result"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Method Not Allowed if merge cannot be performed */ + 405: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + /** @description Conflict if sha was provided and pull request head did not match */ + 409: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all requested reviewers for a pull request + * @description Gets the users or teams whose review is requested for a pull request. Once a requested reviewer submits a review, they are no longer considered a requested reviewer. Their review will instead be returned by the [List reviews for a pull request](https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request) operation. + */ + "pulls/list-requested-reviewers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-review-request"]; + }; + }; + }; + }; + /** + * Request reviewers for a pull request + * @description This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + "pulls/request-reviewers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description An array of user `login`s that will be requested. */ + reviewers?: string[]; + /** @description An array of team `slug`s that will be requested. */ + team_reviewers?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["pull-request-simple"]; + }; + }; + 403: components["responses"]["forbidden"]; + /** @description Unprocessable Entity if user is not a collaborator */ + 422: { + content: never; + }; + }; + }; + /** + * Remove requested reviewers from a pull request + * @description Removes review requests from a pull request for a given set of users and/or teams. + */ + "pulls/remove-requested-reviewers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of user `login`s that will be removed. */ + reviewers: string[]; + /** @description An array of team `slug`s that will be removed. */ + team_reviewers?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-simple"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List reviews for a pull request + * @description Lists all reviews for a specified pull request. The list of reviews returns in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-reviews": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description The list of reviews returns in chronological order. */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-review"][]; + }; + }; + }; + }; + /** + * Create a review for a pull request + * @description Creates a review on a specified pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Pull request reviews created in the `PENDING` state are not submitted and therefore do not include the `submitted_at` property in the response. To create a pending review for a pull request, leave the `event` parameter blank. For more information about submitting a `PENDING` review, see "[Submit a review for a pull request](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request)." + * + * **Note:** To comment on a specific line in a file, you need to first determine the position of that line in the diff. To see a pull request diff, add the `application/vnd.github.v3.diff` media type to the `Accept` header of a call to the [Get a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) endpoint. + * + * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/create-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value. */ + commit_id?: string; + /** @description **Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review. */ + body?: string; + /** + * @description The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request) when you are ready. + * @enum {string} + */ + event?: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + /** @description Use the following table to specify the location, destination, and contents of the draft review comment. */ + comments?: { + /** @description The relative path to the file that necessitates a review comment. */ + path: string; + /** @description The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. */ + position?: number; + /** @description Text of the review comment. */ + body: string; + /** @example 28 */ + line?: number; + /** @example RIGHT */ + side?: string; + /** @example 26 */ + start_line?: number; + /** @example LEFT */ + start_side?: string; + }[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get a review for a pull request + * @description Retrieves a pull request review by its ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/get-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a review for a pull request + * @description Updates the contents of a specified review summary comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/update-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The body text of the pull request review. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Delete a pending review for a pull request + * @description Deletes a pull request review that has not been submitted. Submitted reviews cannot be deleted. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/delete-pending-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List comments for a pull request review + * @description Lists comments for a specific pull request review. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-comments-for-review": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["review-comment"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Dismiss a review for a pull request + * @description Dismisses a specified review on a pull request. + * + * **Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/branches/branch-protection), + * you must be a repository administrator or be included in the list of people or teams + * who can dismiss pull request reviews. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/dismiss-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The message for the pull request review dismissal */ + message: string; + /** + * @example "DISMISS" + * @enum {string} + */ + event?: "DISMISS"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Submit a review for a pull request + * @description Submits a pending review for a pull request. For more information about creating a pending review for a pull request, see "[Create a review for a pull request](https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/submit-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The body text of the pull request review */ + body?: string; + /** + * @description The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action. + * @enum {string} + */ + event: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Update a pull request branch + * @description Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. + */ + "pulls/update-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a `422 Unprocessable Entity` status. You can use the "[List commits](https://docs.github.com/rest/commits/commits#list-commits)" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref. */ + expected_head_sha?: string; + } | null; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": { + message?: string; + url?: string; + }; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a repository README + * @description Gets the preferred README for a repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + "repos/get-readme": { + parameters: { + query?: { + /** @description The name of the commit/branch/tag. Default: the repository’s default branch. */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["content-file"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a repository README for a directory + * @description Gets the README from a repository directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + "repos/get-readme-in-directory": { + parameters: { + query?: { + /** @description The name of the commit/branch/tag. Default: the repository’s default branch. */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The alternate path to look for a README file */ + dir: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["content-file"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List releases + * @description This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/repos/repos#list-repository-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + */ + "repos/list-releases": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["release"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a release + * @description Users with push access to the repository can create a release. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + "repos/create-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the tag. */ + tag_name: string; + /** @description Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch. */ + target_commitish?: string; + /** @description The name of the release. */ + name?: string; + /** @description Text describing the contents of the tag. */ + body?: string; + /** + * @description `true` to create a draft (unpublished) release, `false` to create a published one. + * @default false + */ + draft?: boolean; + /** + * @description `true` to identify the release as a prerelease. `false` to identify the release as a full release. + * @default false + */ + prerelease?: boolean; + /** @description If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see "[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository)." */ + discussion_category_name?: string; + /** + * @description Whether to automatically generate the name and body for this release. If `name` is specified, the specified name will be used; otherwise, a name will be automatically generated. If `body` is specified, the body will be pre-pended to the automatically generated notes. + * @default false + */ + generate_release_notes?: boolean; + /** + * @description Specifies whether this release should be set as the latest release for the repository. Drafts and prereleases cannot be set as latest. Defaults to `true` for newly published releases. `legacy` specifies that the latest release should be determined based on the release creation date and higher semantic version. + * @default true + * @enum {string} + */ + make_latest?: "true" | "false" | "legacy"; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/releases/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["release"]; + }; + }; + /** @description Not Found if the discussion category name is invalid */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a release asset + * @description To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. + */ + "repos/get-release-asset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + asset_id: components["parameters"]["asset-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release-asset"]; + }; + }; + 302: components["responses"]["found"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a release asset */ + "repos/delete-release-asset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + asset_id: components["parameters"]["asset-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a release asset + * @description Users with push access to the repository can edit a release asset. + */ + "repos/update-release-asset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + asset_id: components["parameters"]["asset-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The file name of the asset. */ + name?: string; + /** @description An alternate short description of the asset. Used in place of the filename. */ + label?: string; + /** @example "uploaded" */ + state?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release-asset"]; + }; + }; + }; + }; + /** + * Generate release notes content for a release + * @description Generate a name and body describing a [release](https://docs.github.com/rest/releases/releases#get-a-release). The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release. + */ + "repos/generate-release-notes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The tag name for the release. This can be an existing tag or a new one. */ + tag_name: string; + /** @description Specifies the commitish value that will be the target for the release's tag. Required if the supplied tag_name does not reference an existing tag. Ignored if the tag_name already exists. */ + target_commitish?: string; + /** @description The name of the previous tag to use as the starting point for the release notes. Use to manually specify the range for the set of changes considered as part this release. */ + previous_tag_name?: string; + /** @description Specifies a path to a file in the repository containing configuration settings used for generating the release notes. If unspecified, the configuration file located in the repository at '.github/release.yml' or '.github/release.yaml' will be used. If that is not present, the default configuration will be used. */ + configuration_file_path?: string; + }; + }; + }; + responses: { + /** @description Name and body of generated release notes */ + 200: { + content: { + "application/json": components["schemas"]["release-notes-content"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get the latest release + * @description View the latest published full release for the repository. + * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + */ + "repos/get-latest-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + }; + }; + /** + * Get a release by tag name + * @description Get a published release with the specified tag. + */ + "repos/get-release-by-tag": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description tag parameter */ + tag: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a release + * @description Gets a public release with the specified release ID. + * + * **Note:** This returns an `upload_url` key corresponding to the endpoint + * for uploading release assets. This key is a hypermedia resource. For more information, see + * "[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + */ + "repos/get-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** @description **Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource. For more information, see "[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: never; + }; + }; + }; + /** + * Delete a release + * @description Users with push access to the repository can delete a release. + */ + "repos/delete-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a release + * @description Users with push access to the repository can edit a release. + */ + "repos/update-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the tag. */ + tag_name?: string; + /** @description Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch. */ + target_commitish?: string; + /** @description The name of the release. */ + name?: string; + /** @description Text describing the contents of the tag. */ + body?: string; + /** @description `true` makes the release a draft, and `false` publishes the release. */ + draft?: boolean; + /** @description `true` to identify the release as a prerelease, `false` to identify the release as a full release. */ + prerelease?: boolean; + /** + * @description Specifies whether this release should be set as the latest release for the repository. Drafts and prereleases cannot be set as latest. Defaults to `true` for newly published releases. `legacy` specifies that the latest release should be determined based on the release creation date and higher semantic version. + * @default true + * @enum {string} + */ + make_latest?: "true" | "false" | "legacy"; + /** @description If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. If there is already a discussion linked to the release, this parameter is ignored. For more information, see "[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository)." */ + discussion_category_name?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + /** @description Not Found if the discussion category name is invalid */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** List release assets */ + "repos/list-release-assets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["release-asset"][]; + }; + }; + }; + }; + /** + * Upload a release asset + * @description This endpoint makes use of a [Hypermedia relation](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in + * the response of the [Create a release endpoint](https://docs.github.com/rest/releases/releases#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, + * you'll still need to pass your authentication to be able to upload an asset. + * + * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. + * + * **Notes:** + * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List release assets](https://docs.github.com/rest/releases/assets#list-release-assets)" + * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * * To find the `release_id` query the [`GET /repos/{owner}/{repo}/releases/latest` endpoint](https://docs.github.com/rest/releases/releases#get-the-latest-release). + * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. + */ + "repos/upload-release-asset": { + parameters: { + query: { + name: string; + label?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + requestBody?: { + content: { + "application/octet-stream": string; + }; + }; + responses: { + /** @description Response for successful upload */ + 201: { + content: { + "application/json": components["schemas"]["release-asset"]; + }; + }; + /** @description Response if you upload an asset with the same filename as another uploaded asset */ + 422: { + content: never; + }; + }; + }; + /** + * List reactions for a release + * @description List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + "reactions/list-for-release": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a release. */ + content?: "+1" | "laugh" | "heart" | "hooray" | "rocket" | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create reaction for a release + * @description Create a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). A response with a `Status: 200 OK` means that you already added the reaction type to this release. + */ + "reactions/create-for-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the release. + * @enum {string} + */ + content: "+1" | "laugh" | "heart" | "hooray" | "rocket" | "eyes"; + }; + }; + }; + responses: { + /** @description Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a release reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id`. + * + * Delete a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + "reactions/delete-for-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get rules for a branch + * @description Returns all active rules that apply to the specified branch. The branch does not need to exist; rules that would apply + * to a branch with that name will be returned. All active rules that apply will be returned, regardless of the level + * at which they are configured (e.g. repository or organization). Rules in rulesets with "evaluate" or "disabled" + * enforcement statuses are not returned. + */ + "repos/get-branch-rules": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-rule-detailed"][]; + }; + }; + }; + }; + /** + * Get all repository rulesets + * @description Get all the rulesets for a repository. + */ + "repos/get-repo-rulesets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Include rulesets configured at higher levels that apply to this repository */ + includes_parents?: boolean; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"][]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create a repository ruleset + * @description Create a ruleset for a repository. + */ + "repos/create-repo-ruleset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + /** @description Request body */ + requestBody: { + content: { + "application/json": { + /** @description The name of the ruleset. */ + name: string; + /** + * @description The target of the ruleset + * + * **Note**: The `push` target is in beta and is subject to change. + * @enum {string} + */ + target?: "branch" | "tag" | "push"; + enforcement: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + conditions?: components["schemas"]["repository-ruleset-conditions"]; + /** @description An array of rules within the ruleset. */ + rules?: components["schemas"]["repository-rule"][]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List repository rule suites + * @description Lists suites of rule evaluations at the repository level. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + "repos/get-repo-rule-suites": { + parameters: { + query?: { + ref?: components["parameters"]["ref-in-query"]; + time_period?: components["parameters"]["time-period"]; + actor_name?: components["parameters"]["actor-name-in-query"]; + rule_suite_result?: components["parameters"]["rule-suite-result"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["rule-suites"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get a repository rule suite + * @description Gets information about a suite of rule evaluations from within a repository. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + "repos/get-repo-rule-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + rule_suite_id: components["parameters"]["rule-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["rule-suite"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get a repository ruleset + * @description Get a ruleset for a repository. + */ + "repos/get-repo-ruleset": { + parameters: { + query?: { + /** @description Include rulesets configured at higher levels that apply to this repository */ + includes_parents?: boolean; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update a repository ruleset + * @description Update a ruleset for a repository. + */ + "repos/update-repo-ruleset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + /** @description Request body */ + requestBody?: { + content: { + "application/json": { + /** @description The name of the ruleset. */ + name?: string; + /** + * @description The target of the ruleset + * + * **Note**: The `push` target is in beta and is subject to change. + * @enum {string} + */ + target?: "branch" | "tag" | "push"; + enforcement?: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + conditions?: components["schemas"]["repository-ruleset-conditions"]; + /** @description An array of rules within the ruleset. */ + rules?: components["schemas"]["repository-rule"][]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Delete a repository ruleset + * @description Delete a ruleset for a repository. + */ + "repos/delete-repo-ruleset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List secret scanning alerts for a repository + * @description Lists secret scanning alerts for an eligible repository, from newest to oldest. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/list-alerts-for-repo": { + parameters: { + query?: { + state?: components["parameters"]["secret-scanning-alert-state"]; + secret_type?: components["parameters"]["secret-scanning-alert-secret-type"]; + resolution?: components["parameters"]["secret-scanning-alert-resolution"]; + sort?: components["parameters"]["secret-scanning-alert-sort"]; + direction?: components["parameters"]["direction"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + before?: components["parameters"]["secret-scanning-pagination-before-org-repo"]; + after?: components["parameters"]["secret-scanning-pagination-after-org-repo"]; + validity?: components["parameters"]["secret-scanning-alert-validity"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["secret-scanning-alert"][]; + }; + }; + /** @description Repository is public or secret scanning is disabled for the repository */ + 404: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a secret scanning alert + * @description Gets a single secret scanning alert detected in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/get-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["secret-scanning-alert"]; + }; + }; + 304: components["responses"]["not_modified"]; + /** @description Repository is public, or secret scanning is disabled for the repository, or the resource is not found */ + 404: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Update a secret scanning alert + * @description Updates the status of a secret scanning alert in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/update-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + state: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + resolution_comment?: components["schemas"]["secret-scanning-alert-resolution-comment"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["secret-scanning-alert"]; + }; + }; + /** @description Bad request, resolution comment is invalid or the resolution was not changed. */ + 400: { + content: never; + }; + /** @description Repository is public, or secret scanning is disabled for the repository, or the resource is not found */ + 404: { + content: never; + }; + /** @description State does not match the resolution or resolution comment */ + 422: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List locations for a secret scanning alert + * @description Lists all locations for a given secret scanning alert for an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/list-locations-for-alert": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["secret-scanning-location"][]; + }; + }; + /** @description Repository is public, or secret scanning is disabled for the repository, or the resource is not found */ + 404: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List repository security advisories + * @description Lists security advisories in a repository. + * + * The authenticated user can access unpublished security advisories from a repository if they are a security manager or administrator of that repository, or if they are a collaborator on any security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + "security-advisories/list-repository-advisories": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "published"; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + /** @description The number of advisories to return per page. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + /** @description Filter by state of the repository advisories. Only advisories of this state will be returned. */ + state?: "triage" | "draft" | "published" | "closed"; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-advisory"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a repository security advisory + * @description Creates a new repository security advisory. + * + * In order to create a draft repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + "security-advisories/create-repository-advisory": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["repository-advisory-create"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["repository-advisory"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Privately report a security vulnerability + * @description Report a security vulnerability to the maintainers of the repository. + * See "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)" for more information about private vulnerability reporting. + */ + "security-advisories/create-private-vulnerability-report": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["private-vulnerability-report-create"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["repository-advisory"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a repository security advisory + * @description Get a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * Anyone can access any published security advisory on a public repository. + * + * The authenticated user can access an unpublished security advisory from a repository if they are a security manager or administrator of that repository, or if they are a + * collaborator on the security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + "security-advisories/get-repository-advisory": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-advisory"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a repository security advisory + * @description Update a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * In order to update any security advisory, the authenticated user must be a security manager or administrator of that repository, + * or a collaborator on the repository security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + "security-advisories/update-repository-advisory": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["repository-advisory-update"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-advisory"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Validation failed, or the endpoint has been spammed. */ + 422: { + content: { + "application/json": components["schemas"]["validation-error"]; + }; + }; + }; + }; + /** + * Request a CVE for a repository security advisory + * @description If you want a CVE identification number for the security vulnerability in your project, and don't already have one, you can request a CVE identification number from GitHub. For more information see "[Requesting a CVE identification number](https://docs.github.com/code-security/security-advisories/repository-security-advisories/publishing-a-repository-security-advisory#requesting-a-cve-identification-number-optional)." + * + * You may request a CVE for public repositories, but cannot do so for private repositories. + * + * In order to request a CVE for a repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + "security-advisories/create-repository-advisory-cve-request": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a temporary private fork + * @description Create a temporary private fork to collaborate on fixing a security vulnerability in your repository. + * + * **Note**: Forking a repository happens asynchronously. You may have to wait up to 5 minutes before you can access the fork. + */ + "security-advisories/create-fork": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List stargazers + * @description Lists the people that have starred the repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + "activity/list-stargazers-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": + | components["schemas"]["simple-user"][] + | components["schemas"]["stargazer"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get the weekly commit activity + * @description + * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. + * + * **Note:** This endpoint can only be used for repositories with fewer than 10,000 commits. If the repository contains + * 10,000 or more commits, a 422 status code will be returned. + */ + "repos/get-code-frequency-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Returns a weekly aggregate of the number of additions and deletions pushed to a repository. */ + 200: { + content: { + "application/json": components["schemas"]["code-frequency-stat"][]; + }; + }; + 202: components["responses"]["accepted"]; + 204: components["responses"]["no_content"]; + /** @description Repository contains more than 10,000 commits */ + 422: { + content: never; + }; + }; + }; + /** + * Get the last year of commit activity + * @description Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. + */ + "repos/get-commit-activity-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-activity"][]; + }; + }; + 202: components["responses"]["accepted"]; + 204: components["responses"]["no_content"]; + }; + }; + /** + * Get all contributor commit activity + * @description + * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: + * + * * `w` - Start of the week, given as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + * + * **Note:** This endpoint will return `0` values for all addition and deletion counts in repositories with 10,000 or more commits. + */ + "repos/get-contributors-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["contributor-activity"][]; + }; + }; + 202: components["responses"]["accepted"]; + 204: components["responses"]["no_content"]; + }; + }; + /** + * Get the weekly commit count + * @description Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + * + * The array order is oldest week (index 0) to most recent week. + * + * The most recent week is seven days ago at UTC midnight to today at UTC midnight. + */ + "repos/get-participation-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description The array order is oldest week (index 0) to most recent week. */ + 200: { + content: { + "application/json": components["schemas"]["participation-stats"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get the hourly commit count for each day + * @description Each array contains the day number, hour number, and number of commits: + * + * * `0-6`: Sunday - Saturday + * * `0-23`: Hour of day + * * Number of commits + * + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + "repos/get-punch-card-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. */ + 200: { + content: { + "application/json": components["schemas"]["code-frequency-stat"][]; + }; + }; + 204: components["responses"]["no_content"]; + }; + }; + /** + * Create a commit status + * @description Users with push access in a repository can create commit statuses for a given SHA. + * + * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + */ + "repos/create-commit-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + sha: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state of the status. + * @enum {string} + */ + state: "error" | "failure" | "pending" | "success"; + /** + * @description The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status. + * For example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: + * `http://ci.example.com/user/repo/build/sha` + */ + target_url?: string | null; + /** @description A short description of the status. */ + description?: string | null; + /** + * @description A string label to differentiate this status from the status of other systems. This field is case-insensitive. + * @default default + */ + context?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["status"]; + }; + }; + }; + }; + /** + * List watchers + * @description Lists the people watching the specified repository. + */ + "activity/list-watchers-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Get a repository subscription + * @description Gets information about whether the authenticated user is subscribed to the repository. + */ + "activity/get-repo-subscription": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description if you subscribe to the repository */ + 200: { + content: { + "application/json": components["schemas"]["repository-subscription"]; + }; + }; + 403: components["responses"]["forbidden"]; + /** @description Not Found if you don't subscribe to the repository */ + 404: { + content: never; + }; + }; + }; + /** + * Set a repository subscription + * @description If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/activity/watching#delete-a-repository-subscription) completely. + */ + "activity/set-repo-subscription": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Determines if notifications should be received from this repository. */ + subscribed?: boolean; + /** @description Determines if all notifications should be blocked from this repository. */ + ignored?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-subscription"]; + }; + }; + }; + }; + /** + * Delete a repository subscription + * @description This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/activity/watching#set-a-repository-subscription). + */ + "activity/delete-repo-subscription": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** List repository tags */ + "repos/list-tags": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["tag"][]; + }; + }; + }; + }; + /** + * List tag protection states for a repository + * @description This returns the tag protection states of a repository. + * + * This information is only available to repository administrators. + */ + "repos/list-tag-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["tag-protection"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a tag protection state for a repository + * @description This creates a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + "repos/create-tag-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An optional glob pattern to match against when enforcing tag protection. */ + pattern: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["tag-protection"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a tag protection state for a repository + * @description This deletes a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + "repos/delete-tag-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + tag_protection_id: components["parameters"]["tag-protection-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Download a repository archive (tar) + * @description Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + "repos/download-tarball-archive": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: string; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * List repository teams + * @description Lists the teams that have access to the specified repository and that are also visible to the authenticated user. + * + * For a public repository, a team is listed only if that team added the public repository explicitly. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to use this endpoint with a public repository, and `repo` scope to use this endpoint with a private repository. + */ + "repos/list-teams": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Get all repository topics */ + "repos/get-all-topics": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["topic"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Replace all repository topics */ + "repos/replace-all-topics": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of topics to add to the repository. Pass one or more topics to _replace_ the set of existing topics. Send an empty array (`[]`) to clear all topics from the repository. **Note:** Topic `names` cannot contain uppercase letters. */ + names: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["topic"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get repository clones + * @description Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + "repos/get-clones": { + parameters: { + query?: { + per?: components["parameters"]["per"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["clone-traffic"]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get top referral paths + * @description Get the top 10 popular contents over the last 14 days. + */ + "repos/get-top-paths": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["content-traffic"][]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get top referral sources + * @description Get the top 10 referrers over the last 14 days. + */ + "repos/get-top-referrers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["referrer-traffic"][]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get page views + * @description Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + "repos/get-views": { + parameters: { + query?: { + per?: components["parameters"]["per"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["view-traffic"]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Transfer a repository + * @description A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://docs.github.com/articles/about-repository-transfers/). + */ + "repos/transfer": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The username or organization name the repository will be transferred to. */ + new_owner: string; + /** @description The new name to be given to the repository. */ + new_name?: string; + /** @description ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories. */ + team_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["minimal-repository"]; + }; + }; + }; + }; + /** + * Check if vulnerability alerts are enabled for a repository + * @description Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin read access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + "repos/check-vulnerability-alerts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response if repository is enabled with vulnerability alerts */ + 204: { + content: never; + }; + /** @description Not Found if repository is not enabled with vulnerability alerts */ + 404: { + content: never; + }; + }; + }; + /** + * Enable vulnerability alerts + * @description Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + "repos/enable-vulnerability-alerts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Disable vulnerability alerts + * @description Disables dependency alerts and the dependency graph for a repository. + * The authenticated user must have admin access to the repository. For more information, + * see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + "repos/disable-vulnerability-alerts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Download a repository archive (zip) + * @description Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * + * **Note**: For private repositories, these links are temporary and expire after five minutes. If the repository is empty, you will receive a 404 when you follow the redirect. + */ + "repos/download-zipball-archive": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: string; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * Create a repository using a template + * @description Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. If the repository is not public, the authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + "repos/create-using-template": { + parameters: { + path: { + /** @description The account owner of the template repository. The name is not case sensitive. */ + template_owner: string; + /** @description The name of the template repository without the `.git` extension. The name is not case sensitive. */ + template_repo: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization. */ + owner?: string; + /** @description The name of the new repository. */ + name: string; + /** @description A short description of the new repository. */ + description?: string; + /** + * @description Set to `true` to include the directory structure and files from all branches in the template repository, and not just the default branch. Default: `false`. + * @default false + */ + include_all_branches?: boolean; + /** + * @description Either `true` to create a new private repository or `false` to create a new public one. + * @default false + */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + }; + }; + /** + * List public repositories + * @description Lists all public repositories in the order that they were created. + * + * Note: + * - For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise. + * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of repositories. + */ + "repos/list-public": { + parameters: { + query?: { + since?: components["parameters"]["since-repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + /** @example ; rel="next" */ + Link?: string; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Search code + * @description Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: + * + * `q=addClass+in:file+language:js+repo:jquery/jquery` + * + * This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. + * + * Considerations for code search: + * + * Due to the complexity of searching code, there are a few restrictions on how searches are performed: + * + * * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * * Only files smaller than 384 KB are searchable. + * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing + * language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + * + * This endpoint requires you to authenticate and limits you to 10 requests per minute. + */ + "search/code": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching code](https://docs.github.com/search-github/searching-on-github/searching-code)" for a detailed list of qualifiers. */ + q: string; + /** + * @deprecated + * @description **This field is deprecated.** Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) + */ + sort?: "indexed"; + /** + * @deprecated + * @description **This field is deprecated.** Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["code-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Search commits + * @description Find commits via various criteria on the default branch (usually `main`). This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match + * metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + * + * `q=repo:octocat/Spoon-Knife+css` + */ + "search/commits": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching commits](https://docs.github.com/search-github/searching-on-github/searching-commits)" for a detailed list of qualifiers. */ + q: string; + /** @description Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: "author-date" | "committer-date"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["commit-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Search issues and pull requests + * @description Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted + * search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * `q=windows+label:bug+language:python+state:open&sort=created&order=asc` + * + * This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. + * + * **Note:** For requests made by GitHub Apps with a user access token, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + */ + "search/issues-and-pull-requests": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching issues and pull requests](https://docs.github.com/search-github/searching-on-github/searching-issues-and-pull-requests)" for a detailed list of qualifiers. */ + q: string; + /** @description Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: + | "comments" + | "reactions" + | "reactions-+1" + | "reactions--1" + | "reactions-smile" + | "reactions-thinking_face" + | "reactions-heart" + | "reactions-tada" + | "interactions" + | "created" + | "updated"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["issue-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Search labels + * @description Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + * + * `q=bug+defect+enhancement&repository_id=64778136` + * + * The labels that best match the query appear first in the search results. + */ + "search/labels": { + parameters: { + query: { + /** @description The id of the repository. */ + repository_id: number; + /** @description The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). */ + q: string; + /** @description Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: "created" | "updated"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["label-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Search repositories + * @description Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: + * + * `q=tetris+language:assembly&sort=stars&order=desc` + * + * This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. + */ + "search/repos": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching for repositories](https://docs.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. */ + q: string; + /** @description Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: "stars" | "forks" | "help-wanted-issues" | "updated"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["repo-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Search topics + * @description Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). See "[Searching topics](https://docs.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: + * + * `q=ruby+is:featured` + * + * This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + */ + "search/topics": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). */ + q: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["topic-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Search users + * @description Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for users, you can get text match metadata for the issue **login**, public **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you're looking for a list of popular users, you might try this query: + * + * `q=tom+repos:%3E42+followers:%3E1000` + * + * This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. + * + * This endpoint does not accept authentication and will only include publicly visible users. As an alternative, you can use the GraphQL API. The GraphQL API requires authentication and will return private users, including Enterprise Managed Users (EMUs), that you are authorized to view. For more information, see "[GraphQL Queries](https://docs.github.com/graphql/reference/queries#search)." + */ + "search/users": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching users](https://docs.github.com/search-github/searching-on-github/searching-users)" for a detailed list of qualifiers. */ + q: string; + /** @description Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: "followers" | "repositories" | "joined"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["user-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/teams/teams#get-a-team-by-name) endpoint. + */ + "teams/get-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/teams/teams#delete-a-team) endpoint. + * + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + */ + "teams/delete-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Update a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/teams/teams#update-a-team) endpoint. + * + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** With nested teams, the `privacy` for parent teams cannot be `secret`. + */ + "teams/update-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the team. */ + name: string; + /** @description The description of the team. */ + description?: string; + /** + * @description The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: + * **For a non-nested team:** + * * `secret` - only visible to organization owners and members of this team. + * * `closed` - visible to all members of this organization. + * **For a parent or child team:** + * * `closed` - visible to all members of this organization. + * @enum {string} + */ + privacy?: "secret" | "closed"; + /** + * @description The notification setting the team has chosen. Editing teams without specifying this parameter leaves `notification_setting` intact. The options are: + * * `notifications_enabled` - team members receive notifications when the team is @mentioned. + * * `notifications_disabled` - no one receives notifications. + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** + * @description **Deprecated**. The permission that new repositories will be added to the team with when none is specified. + * @default pull + * @enum {string} + */ + permission?: "pull" | "push" | "admin"; + /** @description The ID of a team to set as the parent team. */ + parent_team_id?: number | null; + }; + }; + }; + responses: { + /** @description Response when the updated information already exists */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List discussions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List discussions`](https://docs.github.com/rest/teams/discussions#list-discussions) endpoint. + * + * List all discussions on a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/list-discussions-legacy": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-discussion"][]; + }; + }; + }; + }; + /** + * Create a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create a discussion`](https://docs.github.com/rest/teams/discussions#create-a-discussion) endpoint. + * + * Creates a new discussion post on a team's page. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/create-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title: string; + /** @description The discussion post's body text. */ + body: string; + /** + * @description Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + * @default false + */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * Get a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion) endpoint. + * + * Get a specific discussion on a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/get-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * Delete a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Delete a discussion`](https://docs.github.com/rest/teams/discussions#delete-a-discussion) endpoint. + * + * Delete a discussion from a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/delete-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion](https://docs.github.com/rest/teams/discussions#update-a-discussion) endpoint. + * + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/update-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title?: string; + /** @description The discussion post's body text. */ + body?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * List discussion comments (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List discussion comments](https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments) endpoint. + * + * List all comments on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/list-discussion-comments-legacy": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-discussion-comment"][]; + }; + }; + }; + }; + /** + * Create a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Create a discussion comment](https://docs.github.com/rest/teams/discussion-comments#create-a-discussion-comment) endpoint. + * + * Creates a new comment on a team discussion. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/create-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * Get a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment) endpoint. + * + * Get a specific comment on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/get-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * Delete a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a discussion comment](https://docs.github.com/rest/teams/discussion-comments#delete-a-discussion-comment) endpoint. + * + * Deletes a comment on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/delete-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion comment](https://docs.github.com/rest/teams/discussion-comments#update-a-discussion-comment) endpoint. + * + * Edits the body text of a discussion comment. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/update-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * List reactions for a team discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment) endpoint. + * + * List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "reactions/list-for-team-discussion-comment-legacy": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create reaction for a team discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Create reaction for a team discussion comment](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment)" endpoint. + * + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/create-for-team-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the team discussion comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + }; + /** + * List reactions for a team discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion) endpoint. + * + * List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "reactions/list-for-team-discussion-legacy": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create reaction for a team discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion`](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion) endpoint. + * + * Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/create-for-team-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the team discussion. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + }; + /** + * List pending team invitations (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/teams/members#list-pending-team-invitations) endpoint. + * + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + "teams/list-pending-invitations-legacy": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + }; + }; + /** + * List team members (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/teams/members#list-team-members) endpoint. + * + * Team members will include the members of child teams. + */ + "teams/list-members-legacy": { + parameters: { + query?: { + /** @description Filters members returned by their role in the team. */ + role?: "member" | "maintainer" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get team member (Legacy) + * @deprecated + * @description The "Get team member" endpoint (described below) is deprecated. + * + * We recommend using the [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + "teams/get-member-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description if user is a member */ + 204: { + content: never; + }; + /** @description if user is not a member */ + 404: { + content: never; + }; + }; + }; + /** + * Add team member (Legacy) + * @deprecated + * @description The "Add team member" endpoint (described below) is deprecated. + * + * We recommend using the [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "teams/add-member-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + /** @description Not Found if team synchronization is set up */ + 404: { + content: never; + }; + /** @description Unprocessable Entity if you attempt to add an organization to a team or you attempt to add a user to a team when they are not a member of at least one other team in the same organization */ + 422: { + content: never; + }; + }; + }; + /** + * Remove team member (Legacy) + * @deprecated + * @description The "Remove team member" endpoint (described below) is deprecated. + * + * We recommend using the [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + "teams/remove-member-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Not Found if team synchronization is setup */ + 404: { + content: never; + }; + }; + }; + /** + * Get team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint. + * + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + */ + "teams/get-membership-for-user-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Add or update team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + */ + "teams/add-or-update-membership-for-user-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The role that this user should have in the team. + * @default member + * @enum {string} + */ + role?: "member" | "maintainer"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + /** @description Forbidden if team synchronization is set up */ + 403: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description Unprocessable Entity if you attempt to add an organization to a team */ + 422: { + content: never; + }; + }; + }; + /** + * Remove team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + "teams/remove-membership-for-user-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description if team synchronization is set up */ + 403: { + content: never; + }; + }; + }; + /** + * List team projects (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team projects`](https://docs.github.com/rest/teams/teams#list-team-projects) endpoint. + * + * Lists the organization projects for a team. + */ + "teams/list-projects-legacy": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-project"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check team permissions for a project (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a project](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-project) endpoint. + * + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + */ + "teams/check-permissions-for-project-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-project"]; + }; + }; + /** @description Not Found if project is not managed by this team */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team project permissions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team project permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-project-permissions) endpoint. + * + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + */ + "teams/add-or-update-project-permissions-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant to the team for this project. Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * @enum {string} + */ + permission?: "read" | "write" | "admin"; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Forbidden if the project is not owned by the organization */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove a project from a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a project from a team](https://docs.github.com/rest/teams/teams#remove-a-project-from-a-team) endpoint. + * + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. **Note:** This endpoint removes the project from the team, but does not delete it. + */ + "teams/remove-project-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List team repositories (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/teams/teams#list-team-repositories) endpoint. + */ + "teams/list-repos-legacy": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check team permissions for a repository (Legacy) + * @deprecated + * @description **Note**: Repositories inherited through a parent team will also be checked. + * + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository) endpoint. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + "teams/check-permissions-for-repo-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Alternative response with extra repository information */ + 200: { + content: { + "application/json": components["schemas"]["team-repository"]; + }; + }; + /** @description Response if repository is managed by this team */ + 204: { + content: never; + }; + /** @description Not Found if repository is not managed by this team */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team repository permissions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Add or update team repository permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions)" endpoint. + * + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "teams/add-or-update-repo-permissions-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant the team on this repository. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + * @enum {string} + */ + permission?: "pull" | "push" | "admin"; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove a repository from a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team) endpoint. + * + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team. + */ + "teams/remove-repo-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List child teams (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/teams/teams#list-child-teams) endpoint. + */ + "teams/list-child-legacy": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description if child teams exist */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information. + */ + "users/get-authenticated": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": + | components["schemas"]["private-user"] + | components["schemas"]["public-user"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Update the authenticated user + * @description **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API. + */ + "users/update-authenticated": { + requestBody?: { + content: { + "application/json": { + /** + * @description The new name of the user. + * @example Omar Jahandar + */ + name?: string; + /** + * @description The publicly visible email address of the user. + * @example omar@example.com + */ + email?: string; + /** + * @description The new blog URL of the user. + * @example blog.example.com + */ + blog?: string; + /** + * @description The new Twitter username of the user. + * @example therealomarj + */ + twitter_username?: string | null; + /** + * @description The new company of the user. + * @example Acme corporation + */ + company?: string; + /** + * @description The new location of the user. + * @example Berlin, Germany + */ + location?: string; + /** @description The new hiring availability of the user. */ + hireable?: boolean; + /** @description The new short biography of the user. */ + bio?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["private-user"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List users blocked by the authenticated user + * @description List the users you've blocked on your personal account. + */ + "users/list-blocked-by-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if a user is blocked by the authenticated user + * @description Returns a 204 if the given user is blocked by the authenticated user. Returns a 404 if the given user is not blocked by the authenticated user, or if the given user account has been identified as spam by GitHub. + */ + "users/check-blocked": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description If the user is blocked */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** @description If the user is not blocked */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Block a user + * @description Blocks the given user and returns a 204. If the authenticated user cannot block the given user a 422 is returned. + */ + "users/block": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Unblock a user + * @description Unblocks the given user and returns a 204. + */ + "users/unblock": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List codespaces for the authenticated user + * @description Lists the authenticated user's codespaces. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/list-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + repository_id?: components["parameters"]["repository-id-in-query"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create a codespace for the authenticated user + * @description Creates a new codespace, owned by the authenticated user. + * + * This endpoint requires either a `repository_id` OR a `pull_request` but not both. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/create-for-authenticated-user": { + requestBody: { + content: { + "application/json": OneOf< + [ + { + /** @description Repository id for this codespace */ + repository_id: number; + /** @description Git ref (typically a branch name) for this codespace */ + ref?: string; + /** @description The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided. */ + location?: string; + /** + * @description The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is being deprecated. + * @enum {string} + */ + geo?: "EuropeWest" | "SoutheastAsia" | "UsEast" | "UsWest"; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Whether to authorize requested permissions from devcontainer.json */ + multi_repo_permissions_opt_out?: boolean; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). */ + retention_period_minutes?: number; + }, + { + /** @description Pull request number for this codespace */ + pull_request: { + /** @description Pull request number */ + pull_request_number: number; + /** @description Repository id for this codespace */ + repository_id: number; + }; + /** @description The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided. */ + location?: string; + /** + * @description The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is being deprecated. + * @enum {string} + */ + geo?: "EuropeWest" | "SoutheastAsia" | "UsEast" | "UsWest"; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + }, + ] + >; + }; + }; + responses: { + /** @description Response when the codespace was successfully created */ + 201: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + /** @description Response when the codespace creation partially failed but is being retried in the background */ + 202: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List secrets for the authenticated user + * @description Lists all development environment secrets available for a user's codespaces without revealing their + * encrypted values. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/list-secrets-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["codespaces-secret"][]; + }; + }; + }; + }; + }; + /** + * Get public key for the authenticated user + * @description Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/get-public-key-for-authenticated-user": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-user-public-key"]; + }; + }; + }; + }; + /** + * Get a secret for the authenticated user + * @description Gets a development environment secret available to a user's codespaces without revealing its encrypted value. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/get-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-secret"]; + }; + }; + }; + }; + /** + * Create or update a secret for the authenticated user + * @description Creates or updates a development environment secret for a user's codespace with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/create-or-update-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get the public key for the authenticated user](https://docs.github.com/rest/codespaces/secrets#get-public-key-for-the-authenticated-user) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id: string; + /** @description An array of repository ids that can access the user secret. You can manage the list of selected repositories using the [List selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret), [Set selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#set-selected-repositories-for-a-user-secret), and [Remove a selected repository from a user secret](https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret) endpoints. */ + selected_repository_ids?: (number | string)[]; + }; + }; + }; + responses: { + /** @description Response after successfully creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response after successfully updating a secret */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a secret for the authenticated user + * @description Deletes a development environment secret from a user's codespaces using the secret name. Deleting the secret will remove access from all codespaces that were allowed to access the secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/delete-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories for a user secret + * @description List the repositories that have been granted the ability to use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/list-repositories-for-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Set selected repositories for a user secret + * @description Select the repositories that will use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/set-repositories-for-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids for which a codespace can access the secret. You can manage the list of selected repositories using the [List selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret), [Add a selected repository to a user secret](https://docs.github.com/rest/codespaces/secrets#add-a-selected-repository-to-a-user-secret), and [Remove a selected repository from a user secret](https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description No Content when repositories were added to the selected list */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Add a selected repository to a user secret + * @description Adds a repository to the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/add-repository-for-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was added to the selected list */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Remove a selected repository from a user secret + * @description Removes a repository from the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/remove-repository-for-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was removed from the selected list */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get a codespace for the authenticated user + * @description Gets information about a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/get-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Delete a codespace for the authenticated user + * @description Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/delete-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update a codespace for the authenticated user + * @description Updates a codespace owned by the authenticated user. Currently only the codespace's machine type and recent folders can be modified using this endpoint. + * + * If you specify a new machine type it will be applied the next time your codespace is started. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/update-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description A valid machine to transition this codespace to. */ + machine?: string; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Recently opened folders inside the codespace. It is currently used by the clients to determine the folder path to load the codespace in. */ + recent_folders?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Export a codespace for the authenticated user + * @description Triggers an export of the specified codespace and returns a URL and ID where the status of the export can be monitored. + * + * If changes cannot be pushed to the codespace's repository, they will be pushed to a new or previously-existing fork instead. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/export-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["codespace-export-details"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get details about a codespace export + * @description Gets information about an export of a codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/get-export-details-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + export_id: components["parameters"]["export-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace-export-details"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List machine types for a codespace + * @description List the machine types a codespace can transition to use. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/codespace-machines-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + machines: components["schemas"]["codespace-machine"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create a repository from an unpublished codespace + * @description Publishes an unpublished codespace, creating a new repository and assigning it to the codespace. + * + * The codespace's token is granted write permissions to the repository, allowing the user to push their changes. + * + * This will fail for a codespace that is already published, meaning it has an associated repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/publish-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A name for the new repository. */ + name?: string; + /** + * @description Whether the new repository should be private. + * @default false + */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["codespace-with-full-repository"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Start a codespace for the authenticated user + * @description Starts a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/start-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + /** @description Payment required */ + 402: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Stop a codespace for the authenticated user + * @description Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/stop-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get list of conflicting packages during Docker migration for authenticated-user + * @description Lists all packages that are owned by the authenticated user within the user's namespace, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + "packages/list-docker-migration-conflicting-packages-for-authenticated-user": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + }; + }; + /** + * Set primary email visibility for the authenticated user + * @description Sets the visibility for your primary email addresses. + */ + "users/set-primary-email-visibility-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Denotes whether an email is publicly visible. + * @enum {string} + */ + visibility: "public" | "private"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List email addresses for the authenticated user + * @description Lists all of your email addresses, and specifies which one is visible + * to the public. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + "users/list-emails-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Add an email address for the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "users/add-email-for-authenticated-user": { + requestBody?: { + content: { + "application/json": { + /** + * @description Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key. + * @example [] + */ + emails: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an email address for the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "users/delete-email-for-authenticated-user": { + requestBody?: { + content: { + "application/json": { + /** @description Email addresses associated with the GitHub user account. */ + emails: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List followers of the authenticated user + * @description Lists the people following the authenticated user. + */ + "users/list-followers-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List the people the authenticated user follows + * @description Lists the people who the authenticated user follows. + */ + "users/list-followed-by-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Check if a person is followed by the authenticated user */ + "users/check-person-is-followed-by-authenticated": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description if the person is followed by the authenticated user */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** @description if the person is not followed by the authenticated user */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Follow a user + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + "users/follow": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unfollow a user + * @description OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + "users/unfollow": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List GPG keys for the authenticated user + * @description Lists the current user's GPG keys. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + "users/list-gpg-keys-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["gpg-key"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a GPG key for the authenticated user + * @description Adds a GPG key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + "users/create-gpg-key-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** @description A descriptive name for the new key. */ + name?: string; + /** @description A GPG key in ASCII-armored format. */ + armored_public_key: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["gpg-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a GPG key for the authenticated user + * @description View extended details for a single GPG key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + "users/get-gpg-key-for-authenticated-user": { + parameters: { + path: { + gpg_key_id: components["parameters"]["gpg-key-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gpg-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a GPG key for the authenticated user + * @description Removes a GPG key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:gpg_key` scope to use this endpoint. + */ + "users/delete-gpg-key-for-authenticated-user": { + parameters: { + path: { + gpg_key_id: components["parameters"]["gpg-key-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List app installations accessible to the user access token + * @description Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You can find the permissions for the installation under the `permissions` key. + */ + "apps/list-installations-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description You can find the permissions for the installation under the `permissions` key. */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + installations: components["schemas"]["installation"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List repositories accessible to the user access token + * @description List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + "apps/list-installation-repos-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description The access the user has to each repository is included in the hash under the `permissions` key. */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + repository_selection?: string; + repositories: components["schemas"]["repository"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Add a repository to an app installation + * @description Add a single repository to an installation. The authenticated user must have admin access to the repository. + */ + "apps/add-repo-to-installation-for-authenticated-user": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a repository from an app installation + * @description Remove a single repository from an installation. The authenticated user must have admin access to the repository. The installation must have the `repository_selection` of `selected`. + */ + "apps/remove-repo-from-installation-for-authenticated-user": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Returned when the application is installed on `all` repositories in the organization, or if this request would remove the last repository that the application has access to in the organization. */ + 422: { + content: never; + }; + }; + }; + /** + * Get interaction restrictions for your public repositories + * @description Shows which type of GitHub user can interact with your public repositories and when the restriction expires. + */ + "interactions/get-restrictions-for-authenticated-user": { + responses: { + /** @description Default response */ + 200: { + content: { + "application/json": + | components["schemas"]["interaction-limit-response"] + | Record; + }; + }; + /** @description Response when there are no restrictions */ + 204: { + content: never; + }; + }; + }; + /** + * Set interaction restrictions for your public repositories + * @description Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. + */ + "interactions/set-restrictions-for-authenticated-user": { + requestBody: { + content: { + "application/json": components["schemas"]["interaction-limit"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove interaction restrictions from your public repositories + * @description Removes any interaction restrictions from your public repositories. + */ + "interactions/remove-restrictions-for-authenticated-user": { + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List user account issues assigned to the authenticated user + * @description List issues across owned and member repositories assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-for-authenticated-user": { + parameters: { + query?: { + /** @description Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. */ + filter?: + | "assigned" + | "created" + | "mentioned" + | "subscribed" + | "repos" + | "all"; + /** @description Indicates the state of the issues to return. */ + state?: "open" | "closed" | "all"; + labels?: components["parameters"]["labels"]; + /** @description What to sort results by. */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List public SSH keys for the authenticated user + * @description Lists the public SSH keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + "users/list-public-ssh-keys-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["key"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a public SSH key for the authenticated user + * @description Adds a public SSH key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + "users/create-public-ssh-key-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description A descriptive name for the new key. + * @example Personal MacBook Air + */ + title?: string; + /** @description The public SSH key to add to your GitHub account. */ + key: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a public SSH key for the authenticated user + * @description View extended details for a single public SSH key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + "users/get-public-ssh-key-for-authenticated-user": { + parameters: { + path: { + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a public SSH key for the authenticated user + * @description Removes a public SSH key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:public_key` scope to use this endpoint. + */ + "users/delete-public-ssh-key-for-authenticated-user": { + parameters: { + path: { + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List subscriptions for the authenticated user + * @description Lists the active subscriptions for the authenticated user. + */ + "apps/list-subscriptions-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["user-marketplace-purchase"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List subscriptions for the authenticated user (stubbed) + * @description Lists the active subscriptions for the authenticated user. + */ + "apps/list-subscriptions-for-authenticated-user-stubbed": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["user-marketplace-purchase"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * List organization memberships for the authenticated user + * @description Lists all of the authenticated user's organization memberships. + */ + "orgs/list-memberships-for-authenticated-user": { + parameters: { + query?: { + /** @description Indicates the state of the memberships to return. If not specified, the API returns both active and pending memberships. */ + state?: "active" | "pending"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["org-membership"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an organization membership for the authenticated user + * @description If the authenticated user is an active or pending member of the organization, this endpoint will return the user's membership. If the authenticated user is not affiliated with the organization, a `404` is returned. This endpoint will return a `403` if the request is made by a GitHub App that is blocked by the organization. + */ + "orgs/get-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update an organization membership for the authenticated user + * @description Converts the authenticated user to an active member of the organization, if that user has a pending invitation from the organization. + */ + "orgs/update-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state that the membership should be in. Only `"active"` will be accepted. + * @enum {string} + */ + state: "active"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List user migrations + * @description Lists all migrations a user has started. + */ + "migrations/list-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["migration"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Start a user migration + * @description Initiates the generation of a user migration archive. + */ + "migrations/start-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Lock the repositories being migrated at the start of the migration + * @example true + */ + lock_repositories?: boolean; + /** + * @description Indicates whether metadata should be excluded and only git source should be included for the migration. + * @example true + */ + exclude_metadata?: boolean; + /** + * @description Indicates whether the repository git data should be excluded from the migration. + * @example true + */ + exclude_git_data?: boolean; + /** + * @description Do not include attachments in the migration + * @example true + */ + exclude_attachments?: boolean; + /** + * @description Do not include releases in the migration + * @example true + */ + exclude_releases?: boolean; + /** + * @description Indicates whether projects owned by the organization or users should be excluded. + * @example true + */ + exclude_owner_projects?: boolean; + /** + * @description Indicates whether this should only include organization metadata (repositories array should be empty and will ignore other flags). + * @default false + * @example true + */ + org_metadata_only?: boolean; + /** + * @description Exclude attributes from the API response to improve performance + * @example [ + * "repositories" + * ] + */ + exclude?: "repositories"[]; + repositories: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a user migration status + * @description Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + * + * * `pending` - the migration hasn't started yet. + * * `exporting` - the migration is in progress. + * * `exported` - the migration finished successfully. + * * `failed` - the migration failed. + * + * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/migrations/users#download-a-user-migration-archive). + */ + "migrations/get-status-for-authenticated-user": { + parameters: { + query?: { + exclude?: string[]; + }; + path: { + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Download a user migration archive + * @description Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + * + * * attachments + * * bases + * * commit\_comments + * * issue\_comments + * * issue\_events + * * issues + * * milestones + * * organizations + * * projects + * * protected\_branches + * * pull\_request\_reviews + * * pull\_requests + * * releases + * * repositories + * * review\_comments + * * schema + * * users + * + * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + */ + "migrations/get-archive-for-authenticated-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 302: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Delete a user migration archive + * @description Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/migrations/users#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/migrations/users#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. + */ + "migrations/delete-archive-for-authenticated-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unlock a user repository + * @description Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/migrations/users#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/repos/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. + */ + "migrations/unlock-repo-for-authenticated-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration-id"]; + repo_name: components["parameters"]["repo-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories for a user migration + * @description Lists all the repositories for this user migration. + */ + "migrations/list-repos-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organizations for the authenticated user + * @description List organizations for the authenticated user. + * + * For OAuth app tokens and personal access tokens (classic), this endpoint only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope for OAuth app tokens and personal access tokens (classic). Requests with insufficient scope will receive a `403 Forbidden` response. + */ + "orgs/list-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List packages for the authenticated user's namespace + * @description Lists packages owned by the authenticated user within the user's namespace. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/list-packages-for-authenticated-user": { + parameters: { + query: { + /** @description The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + visibility?: components["parameters"]["package-visibility"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 400: components["responses"]["package_es_list_error"]; + }; + }; + /** + * Get a package for the authenticated user + * @description Gets a specific package for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"]; + }; + }; + }; + }; + /** + * Delete a package for the authenticated user + * @description Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, `repo` scope is also required. For the list these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore a package for the authenticated user + * @description Restores a package owned by the authenticated user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-for-authenticated-user": { + parameters: { + query?: { + /** @description package token */ + token?: string; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List package versions for a package owned by the authenticated user + * @description Lists package versions for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-all-package-versions-for-package-owned-by-authenticated-user": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + /** @description The state of the package, either active or deleted. */ + state?: "active" | "deleted"; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a package version for the authenticated user + * @description Gets a specific package version for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-version-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"]; + }; + }; + }; + }; + /** + * Delete a package version for the authenticated user + * @description Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-version-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore a package version for the authenticated user + * @description Restores a package version owned by the authenticated user. + * + * You can restore a deleted package version under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-version-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a user project + * @description Creates a user project board. Returns a `410 Gone` status if the user does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/create-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Name of the project + * @example Week One Sprint + */ + name: string; + /** + * @description Body of the project + * @example This project represents the sprint of the first week in January + */ + body?: string | null; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List public email addresses for the authenticated user + * @description Lists your publicly visible email address, which you can set with the + * [Set primary email visibility for the authenticated user](https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user) + * endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + "users/list-public-emails-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories for the authenticated user + * @description Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + */ + "repos/list-for-authenticated-user": { + parameters: { + query?: { + /** @description Limit results to repositories with the specified visibility. */ + visibility?: "all" | "public" | "private"; + /** + * @description Comma-separated list of values. Can include: + * * `owner`: Repositories that are owned by the authenticated user. + * * `collaborator`: Repositories that the user has been added to as a collaborator. + * * `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on. + */ + affiliation?: string; + /** @description Limit results to repositories of the specified type. Will cause a `422` error if used in the same request as **visibility** or **affiliation**. */ + type?: "all" | "owner" | "public" | "private" | "member"; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** @description The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + since?: components["parameters"]["since-repo-date"]; + before?: components["parameters"]["before-repo-date"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a repository for the authenticated user + * @description Creates a new repository for the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + "repos/create-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @description A short description of the repository. */ + description?: string; + /** @description A URL with more information about the repository. */ + homepage?: string; + /** + * @description Whether the repository is private. + * @default false + */ + private?: boolean; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues?: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects?: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki?: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** @description The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. */ + team_id?: number; + /** + * @description Whether the repository is initialized with a minimal README. + * @default false + */ + auto_init?: boolean; + /** + * @description The desired language or platform to apply to the .gitignore. + * @example Haskell + */ + gitignore_template?: string; + /** + * @description The license keyword of the open source license for this repository. + * @example mit + */ + license_template?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads?: boolean; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List repository invitations for the authenticated user + * @description When authenticating as a user, this endpoint will list all currently open repository invitations for that user. + */ + "repos/list-invitations-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["repository-invitation"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Decline a repository invitation */ + "repos/decline-invitation-for-authenticated-user": { + parameters: { + path: { + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + }; + }; + /** Accept a repository invitation */ + "repos/accept-invitation-for-authenticated-user": { + parameters: { + path: { + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + }; + }; + /** + * List social accounts for the authenticated user + * @description Lists all of your social accounts. + */ + "users/list-social-accounts-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["social-account"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Add social accounts for the authenticated user + * @description Add one or more social accounts to the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "users/add-social-account-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Full URLs for the social media profiles to add. + * @example [] + */ + account_urls: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["social-account"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete social accounts for the authenticated user + * @description Deletes one or more social accounts from the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "users/delete-social-account-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Full URLs for the social media profiles to delete. + * @example [] + */ + account_urls: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List SSH signing keys for the authenticated user + * @description Lists the SSH signing keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + "users/list-ssh-signing-keys-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["ssh-signing-key"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a SSH signing key for the authenticated user + * @description Creates an SSH signing key for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:ssh_signing_key` scope to use this endpoint. + */ + "users/create-ssh-signing-key-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description A descriptive name for the new key. + * @example Personal MacBook Air + */ + title?: string; + /** @description The public SSH key to add to your GitHub account. For more information, see "[Checking for existing SSH keys](https://docs.github.com/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys)." */ + key: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["ssh-signing-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an SSH signing key for the authenticated user + * @description Gets extended details for an SSH signing key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + "users/get-ssh-signing-key-for-authenticated-user": { + parameters: { + path: { + ssh_signing_key_id: components["parameters"]["ssh-signing-key-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["ssh-signing-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an SSH signing key for the authenticated user + * @description Deletes an SSH signing key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:ssh_signing_key` scope to use this endpoint. + */ + "users/delete-ssh-signing-key-for-authenticated-user": { + parameters: { + path: { + ssh_signing_key_id: components["parameters"]["ssh-signing-key-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories starred by the authenticated user + * @description Lists repositories the authenticated user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + "activity/list-repos-starred-by-authenticated-user": { + parameters: { + query?: { + sort?: components["parameters"]["sort-starred"]; + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["repository"][]; + "application/vnd.github.v3.star+json": components["schemas"]["starred-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Check if a repository is starred by the authenticated user + * @description Whether the authenticated user has starred the repository. + */ + "activity/check-repo-is-starred-by-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response if this repository is starred by you */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** @description Not Found if this repository is not starred by you */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Star a repository for the authenticated user + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "activity/star-repo-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unstar a repository for the authenticated user + * @description Unstar a repository that the authenticated user has previously starred. + */ + "activity/unstar-repo-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories watched by the authenticated user + * @description Lists repositories the authenticated user is watching. + */ + "activity/list-watched-repos-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List teams for the authenticated user + * @description List all of the teams across all of the organizations to which the authenticated + * user belongs. + * + * OAuth app tokens and personal access tokens (classic) need the `user`, `repo`, or `read:org` scope to use this endpoint. + * + * When using a fine-grained personal access token, the resource owner of the token must be a single organization, and the response will only include the teams from that organization. + */ + "teams/list-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-full"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List users + * @description Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of users. + */ + "users/list": { + parameters: { + query?: { + since?: components["parameters"]["since-user"]; + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + /** @example ; rel="next" */ + Link?: string; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a user + * @description Provides publicly available information about someone with a GitHub account. + * + * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#authentication). + * + * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://docs.github.com/rest/users/emails)". + */ + "users/get-by-username": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": + | components["schemas"]["private-user"] + | components["schemas"]["public-user"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get list of conflicting packages during Docker migration for user + * @description Lists all packages that are in a specific user's namespace, that the requesting user has access to, and that encountered a conflict during Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + "packages/list-docker-migration-conflicting-packages-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List events for the authenticated user + * @description If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. + */ + "activity/list-events-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** + * List organization events for the authenticated user + * @description This is the user's organization dashboard. You must be authenticated as the user to view this. + */ + "activity/list-org-events-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** List public events for a user */ + "activity/list-public-events-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** + * List followers of a user + * @description Lists the people following the specified user. + */ + "users/list-followers-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * List the people a user follows + * @description Lists the people who the specified user follows. + */ + "users/list-following-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** Check if a user follows another user */ + "users/check-following-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + target_user: string; + }; + }; + responses: { + /** @description if the user follows the target user */ + 204: { + content: never; + }; + /** @description if the user does not follow the target user */ + 404: { + content: never; + }; + }; + }; + /** + * List gists for a user + * @description Lists public gists for the specified user: + */ + "gists/list-for-user": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List GPG keys for a user + * @description Lists the GPG keys for a user. This information is accessible by anyone. + */ + "users/list-gpg-keys-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["gpg-key"][]; + }; + }; + }; + }; + /** + * Get contextual information for a user + * @description Provides hovercard information. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + * + * The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository, you would use a `subject_type` value of `repository` and a `subject_id` value of `1300192` (the ID of the `Spoon-Knife` repository). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "users/get-context-for-user": { + parameters: { + query?: { + /** @description Identifies which additional information you'd like to receive about the person's hovercard. Can be `organization`, `repository`, `issue`, `pull_request`. **Required** when using `subject_id`. */ + subject_type?: "organization" | "repository" | "issue" | "pull_request"; + /** @description Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`. */ + subject_id?: string; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hovercard"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a user installation for the authenticated app + * @description Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-user-installation": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + }; + }; + /** + * List public keys for a user + * @description Lists the _verified_ public SSH keys for a user. This is accessible by anyone. + */ + "users/list-public-keys-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["key-simple"][]; + }; + }; + }; + }; + /** + * List organizations for a user + * @description List [public organization memberships](https://docs.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user) API instead. + */ + "orgs/list-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-simple"][]; + }; + }; + }; + }; + /** + * List packages for a user + * @description Lists all packages in a user's namespace for which the requesting user has access. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/list-packages-for-user": { + parameters: { + query: { + /** @description The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + visibility?: components["parameters"]["package-visibility"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 400: components["responses"]["package_es_list_error"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a package for a user + * @description Gets a specific package metadata for a public package owned by a user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"]; + }; + }; + }; + }; + /** + * Delete a package for a user + * @description Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore a package for a user + * @description Restores an entire package for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-for-user": { + parameters: { + query?: { + /** @description package token */ + token?: string; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List package versions for a package owned by a user + * @description Lists package versions for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-all-package-versions-for-package-owned-by-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a package version for a user + * @description Gets a specific package version for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-version-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + package_version_id: components["parameters"]["package-version-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"]; + }; + }; + }; + }; + /** + * Delete package version for a user + * @description Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-version-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore package version for a user + * @description Restores a specific package version for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-version-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List user projects + * @description Lists projects for a user. + */ + "projects/list-for-user": { + parameters: { + query?: { + /** @description Indicates the state of the projects to return. */ + state?: "open" | "closed" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List events received by the authenticated user + * @description These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. + */ + "activity/list-received-events-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** List public events received by a user */ + "activity/list-received-public-events-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** + * List repositories for a user + * @description Lists public repositories for the specified user. + */ + "repos/list-for-user": { + parameters: { + query?: { + /** @description Limit results to repositories of the specified type. */ + type?: "all" | "owner" | "member"; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** @description The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Get GitHub Actions billing for a user + * @description Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "billing/get-github-actions-billing-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-billing-usage"]; + }; + }; + }; + }; + /** + * Get GitHub Packages billing for a user + * @description Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "billing/get-github-packages-billing-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["packages-billing-usage"]; + }; + }; + }; + }; + /** + * Get shared storage billing for a user + * @description Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "billing/get-shared-storage-billing-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["combined-billing-usage"]; + }; + }; + }; + }; + /** + * List social accounts for a user + * @description Lists social media accounts for a user. This endpoint is accessible by anyone. + */ + "users/list-social-accounts-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["social-account"][]; + }; + }; + }; + }; + /** + * List SSH signing keys for a user + * @description Lists the SSH signing keys for a user. This operation is accessible by anyone. + */ + "users/list-ssh-signing-keys-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["ssh-signing-key"][]; + }; + }; + }; + }; + /** + * List repositories starred by a user + * @description Lists repositories a user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + "activity/list-repos-starred-by-user": { + parameters: { + query?: { + sort?: components["parameters"]["sort-starred"]; + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": + | components["schemas"]["starred-repository"][] + | components["schemas"]["repository"][]; + }; + }; + }; + }; + /** + * List repositories watched by a user + * @description Lists repositories a user is watching. + */ + "activity/list-repos-watched-by-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Get all API versions + * @description Get all supported GitHub API versions. + */ + "meta/get-all-versions": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get the Zen of GitHub + * @description Get a random sentence from the Zen of GitHub + */ + "meta/get-zen": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string; + }; + }; + }; + }; + /** + * Compare two commits + * @description **Deprecated**: Use `repos.compareCommitsWithBasehead()` (`GET /repos/{owner}/{repo}/compare/{basehead}`) instead. Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + * + * When calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/compare-commits": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + base: string; + head: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comparison"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; +} diff --git a/node_modules/@octokit/plugin-paginate-rest/LICENSE b/node_modules/@octokit/plugin-paginate-rest/LICENSE new file mode 100644 index 000000000..57bee5f18 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +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: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +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. diff --git a/node_modules/@octokit/plugin-paginate-rest/README.md b/node_modules/@octokit/plugin-paginate-rest/README.md new file mode 100644 index 000000000..9ebf695f2 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/README.md @@ -0,0 +1,269 @@ +# plugin-paginate-rest.js + +> Octokit plugin to paginate REST API endpoint responses + +[![@latest](https://img.shields.io/npm/v/@octokit/plugin-paginate-rest.svg)](https://www.npmjs.com/package/@octokit/plugin-paginate-rest) +[![Build Status](https://github.com/octokit/plugin-paginate-rest.js/workflows/Test/badge.svg)](https://github.com/octokit/plugin-paginate-rest.js/actions?workflow=Test) + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/plugin-paginate-rest` and [`@octokit/core`](https://github.com/octokit/core.js) (or core-compatible module) directly from [esm.sh](https://esm.sh) + +```html + +``` + +
+Node + + +Install with `npm install @octokit/core @octokit/plugin-paginate-rest`. Optionally replace `@octokit/core` with a core-compatible module + +```js +const { Octokit } = require("@octokit/core"); +const { + paginateRest, + composePaginateRest, +} = require("@octokit/plugin-paginate-rest"); +``` + +
+ +```js +const MyOctokit = Octokit.plugin(paginateRest); +const octokit = new MyOctokit({ auth: "secret123" }); + +// See https://developer.github.com/v3/issues/#list-issues-for-a-repository +const issues = await octokit.paginate("GET /repos/{owner}/{repo}/issues", { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, +}); +``` + +If you want to utilize the pagination methods in another plugin, use `composePaginateRest`. + +```js +function myPlugin(octokit, options) { + return { + allStars({owner, repo}) => { + return composePaginateRest( + octokit, + "GET /repos/{owner}/{repo}/stargazers", + {owner, repo } + ) + } + } +} +``` + +## `octokit.paginate()` + +The `paginateRest` plugin adds a new `octokit.paginate()` method which accepts the same parameters as [`octokit.request`](https://github.com/octokit/request.js#request). Only "List ..." endpoints such as [List issues for a repository](https://developer.github.com/v3/issues/#list-issues-for-a-repository) are supporting pagination. Their [response includes a Link header](https://developer.github.com/v3/issues/#response-1). For other endpoints, `octokit.paginate()` behaves the same as `octokit.request()`. + +The `per_page` parameter is usually defaulting to `30`, and can be set to up to `100`, which helps retrieving a big amount of data without hitting the rate limits too soon. + +An optional `mapFunction` can be passed to map each page response to a new value, usually an array with only the data you need. This can help to reduce memory usage, as only the relevant data has to be kept in memory until the pagination is complete. + +```js +const issueTitles = await octokit.paginate( + "GET /repos/{owner}/{repo}/issues", + { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, + }, + (response) => response.data.map((issue) => issue.title), +); +``` + +The `mapFunction` gets a 2nd argument `done` which can be called to end the pagination early. + +```js +const issues = await octokit.paginate( + "GET /repos/{owner}/{repo}/issues", + { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, + }, + (response, done) => { + if (response.data.find((issue) => issue.title.includes("something"))) { + done(); + } + return response.data; + }, +); +``` + +Alternatively you can pass a `request` method as first argument. This is great when using in combination with [`@octokit/plugin-rest-endpoint-methods`](https://github.com/octokit/plugin-rest-endpoint-methods.js/): + +```js +const issues = await octokit.paginate(octokit.rest.issues.listForRepo, { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, +}); +``` + +## `octokit.paginate.iterator()` + +If your target runtime environments supports async iterators (such as most modern browsers and Node 10+), you can iterate through each response + +```js +const parameters = { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, +}; +for await (const response of octokit.paginate.iterator( + "GET /repos/{owner}/{repo}/issues", + parameters, +)) { + // do whatever you want with each response, break out of the loop, etc. + const issues = response.data; + console.log("%d issues found", issues.length); +} +``` + +Alternatively you can pass a `request` method as first argument. This is great when using in combination with [`@octokit/plugin-rest-endpoint-methods`](https://github.com/octokit/plugin-rest-endpoint-methods.js/): + +```js +const parameters = { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, +}; +for await (const response of octokit.paginate.iterator( + octokit.rest.issues.listForRepo, + parameters, +)) { + // do whatever you want with each response, break out of the loop, etc. + const issues = response.data; + console.log("%d issues found", issues.length); +} +``` + +## `composePaginateRest` and `composePaginateRest.iterator` + +The `compose*` methods work just like their `octokit.*` counterparts described above, with the differenct that both methods require an `octokit` instance to be passed as first argument + +## How it works + +`octokit.paginate()` wraps `octokit.request()`. As long as a `rel="next"` link value is present in the response's `Link` header, it sends another request for that URL, and so on. + +Most of GitHub's paginating REST API endpoints return an array, but there are a few exceptions which return an object with a key that includes the items array. For example: + +- [Search repositories](https://developer.github.com/v3/search/#example) (key `items`) +- [List check runs for a specific ref](https://developer.github.com/v3/checks/runs/#response-3) (key: `check_runs`) +- [List check suites for a specific ref](https://developer.github.com/v3/checks/suites/#response-1) (key: `check_suites`) +- [List repositories](https://developer.github.com/v3/apps/installations/#list-repositories) for an installation (key: `repositories`) +- [List installations for a user](https://developer.github.com/v3/apps/installations/#response-1) (key `installations`) + +`octokit.paginate()` is working around these inconsistencies so you don't have to worry about it. + +If a response is lacking the `Link` header, `octokit.paginate()` still resolves with an array, even if the response returns a single object. + +## Types + +The plugin also exposes some types and runtime type guards for TypeScript projects. + + + + + + +
+Types + + +```typescript +import { + PaginateInterface, + PaginatingEndpoints, +} from "@octokit/plugin-paginate-rest"; +``` + +
+Guards + + +```typescript +import { isPaginatingEndpoint } from "@octokit/plugin-paginate-rest"; +``` + +
+ +### PaginateInterface + +An `interface` that declares all the overloads of the `.paginate` method. + +### PaginatingEndpoints + +An `interface` which describes all API endpoints supported by the plugin. Some overloads of `.paginate()` method and `composePaginateRest()` function depend on `PaginatingEndpoints`, using the `keyof PaginatingEndpoints` as a type for one of its arguments. + +```typescript +import { Octokit } from "@octokit/core"; +import { + PaginatingEndpoints, + composePaginateRest, +} from "@octokit/plugin-paginate-rest"; + +type DataType = "data" extends keyof T ? T["data"] : unknown; + +async function myPaginatePlugin( + octokit: Octokit, + endpoint: E, + parameters?: PaginatingEndpoints[E]["parameters"], +): Promise> { + return await composePaginateRest(octokit, endpoint, parameters); +} +``` + +### isPaginatingEndpoint + +A type guard, `isPaginatingEndpoint(arg)` returns `true` if `arg` is one of the keys in `PaginatingEndpoints` (is `keyof PaginatingEndpoints`). + +```typescript +import { Octokit } from "@octokit/core"; +import { + isPaginatingEndpoint, + composePaginateRest, +} from "@octokit/plugin-paginate-rest"; + +async function myPlugin(octokit: Octokit, arg: unknown) { + if (isPaginatingEndpoint(arg)) { + return await composePaginateRest(octokit, arg); + } + // ... +} +``` + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js b/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js new file mode 100644 index 000000000..381a963a2 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js @@ -0,0 +1,398 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + composePaginateRest: () => composePaginateRest, + isPaginatingEndpoint: () => isPaginatingEndpoint, + paginateRest: () => paginateRest, + paginatingEndpoints: () => paginatingEndpoints +}); +module.exports = __toCommonJS(dist_src_exports); + +// pkg/dist-src/version.js +var VERSION = "9.2.1"; + +// pkg/dist-src/normalize-paginated-list-response.js +function normalizePaginatedListResponse(response) { + if (!response.data) { + return { + ...response, + data: [] + }; + } + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) + return response; + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + response.data.total_count = totalCount; + return response; +} + +// pkg/dist-src/iterator.js +function iterator(octokit, route, parameters) { + const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) + return { done: true }; + try { + const response = await requestMethod({ method, url, headers }); + const normalizedResponse = normalizePaginatedListResponse(response); + url = ((normalizedResponse.headers.link || "").match( + /<([^>]+)>;\s*rel="next"/ + ) || [])[1]; + return { value: normalizedResponse }; + } catch (error) { + if (error.status !== 409) + throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [] + } + }; + } + } + }) + }; +} + +// pkg/dist-src/paginate.js +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = void 0; + } + return gather( + octokit, + [], + iterator(octokit, route, parameters)[Symbol.asyncIterator](), + mapFn + ); +} +function gather(octokit, results, iterator2, mapFn) { + return iterator2.next().then((result) => { + if (result.done) { + return results; + } + let earlyExit = false; + function done() { + earlyExit = true; + } + results = results.concat( + mapFn ? mapFn(result.value, done) : result.value.data + ); + if (earlyExit) { + return results; + } + return gather(octokit, results, iterator2, mapFn); + }); +} + +// pkg/dist-src/compose-paginate.js +var composePaginateRest = Object.assign(paginate, { + iterator +}); + +// pkg/dist-src/generated/paginating-endpoints.js +var paginatingEndpoints = [ + "GET /advisories", + "GET /app/hook/deliveries", + "GET /app/installation-requests", + "GET /app/installations", + "GET /assignments/{assignment_id}/accepted_assignments", + "GET /classrooms", + "GET /classrooms/{classroom_id}/assignments", + "GET /enterprises/{enterprise}/dependabot/alerts", + "GET /enterprises/{enterprise}/secret-scanning/alerts", + "GET /events", + "GET /gists", + "GET /gists/public", + "GET /gists/starred", + "GET /gists/{gist_id}/comments", + "GET /gists/{gist_id}/commits", + "GET /gists/{gist_id}/forks", + "GET /installation/repositories", + "GET /issues", + "GET /licenses", + "GET /marketplace_listing/plans", + "GET /marketplace_listing/plans/{plan_id}/accounts", + "GET /marketplace_listing/stubbed/plans", + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", + "GET /networks/{owner}/{repo}/events", + "GET /notifications", + "GET /organizations", + "GET /orgs/{org}/actions/cache/usage-by-repository", + "GET /orgs/{org}/actions/permissions/repositories", + "GET /orgs/{org}/actions/runners", + "GET /orgs/{org}/actions/secrets", + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", + "GET /orgs/{org}/actions/variables", + "GET /orgs/{org}/actions/variables/{name}/repositories", + "GET /orgs/{org}/blocks", + "GET /orgs/{org}/code-scanning/alerts", + "GET /orgs/{org}/codespaces", + "GET /orgs/{org}/codespaces/secrets", + "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories", + "GET /orgs/{org}/copilot/billing/seats", + "GET /orgs/{org}/dependabot/alerts", + "GET /orgs/{org}/dependabot/secrets", + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories", + "GET /orgs/{org}/events", + "GET /orgs/{org}/failed_invitations", + "GET /orgs/{org}/hooks", + "GET /orgs/{org}/hooks/{hook_id}/deliveries", + "GET /orgs/{org}/installations", + "GET /orgs/{org}/invitations", + "GET /orgs/{org}/invitations/{invitation_id}/teams", + "GET /orgs/{org}/issues", + "GET /orgs/{org}/members", + "GET /orgs/{org}/members/{username}/codespaces", + "GET /orgs/{org}/migrations", + "GET /orgs/{org}/migrations/{migration_id}/repositories", + "GET /orgs/{org}/organization-roles/{role_id}/teams", + "GET /orgs/{org}/organization-roles/{role_id}/users", + "GET /orgs/{org}/outside_collaborators", + "GET /orgs/{org}/packages", + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + "GET /orgs/{org}/personal-access-token-requests", + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories", + "GET /orgs/{org}/personal-access-tokens", + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories", + "GET /orgs/{org}/projects", + "GET /orgs/{org}/properties/values", + "GET /orgs/{org}/public_members", + "GET /orgs/{org}/repos", + "GET /orgs/{org}/rulesets", + "GET /orgs/{org}/rulesets/rule-suites", + "GET /orgs/{org}/secret-scanning/alerts", + "GET /orgs/{org}/security-advisories", + "GET /orgs/{org}/teams", + "GET /orgs/{org}/teams/{team_slug}/discussions", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + "GET /orgs/{org}/teams/{team_slug}/invitations", + "GET /orgs/{org}/teams/{team_slug}/members", + "GET /orgs/{org}/teams/{team_slug}/projects", + "GET /orgs/{org}/teams/{team_slug}/repos", + "GET /orgs/{org}/teams/{team_slug}/teams", + "GET /projects/columns/{column_id}/cards", + "GET /projects/{project_id}/collaborators", + "GET /projects/{project_id}/columns", + "GET /repos/{owner}/{repo}/actions/artifacts", + "GET /repos/{owner}/{repo}/actions/caches", + "GET /repos/{owner}/{repo}/actions/organization-secrets", + "GET /repos/{owner}/{repo}/actions/organization-variables", + "GET /repos/{owner}/{repo}/actions/runners", + "GET /repos/{owner}/{repo}/actions/runs", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", + "GET /repos/{owner}/{repo}/actions/secrets", + "GET /repos/{owner}/{repo}/actions/variables", + "GET /repos/{owner}/{repo}/actions/workflows", + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", + "GET /repos/{owner}/{repo}/activity", + "GET /repos/{owner}/{repo}/assignees", + "GET /repos/{owner}/{repo}/branches", + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", + "GET /repos/{owner}/{repo}/code-scanning/alerts", + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + "GET /repos/{owner}/{repo}/code-scanning/analyses", + "GET /repos/{owner}/{repo}/codespaces", + "GET /repos/{owner}/{repo}/codespaces/devcontainers", + "GET /repos/{owner}/{repo}/codespaces/secrets", + "GET /repos/{owner}/{repo}/collaborators", + "GET /repos/{owner}/{repo}/comments", + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/commits", + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", + "GET /repos/{owner}/{repo}/commits/{ref}/status", + "GET /repos/{owner}/{repo}/commits/{ref}/statuses", + "GET /repos/{owner}/{repo}/contributors", + "GET /repos/{owner}/{repo}/dependabot/alerts", + "GET /repos/{owner}/{repo}/dependabot/secrets", + "GET /repos/{owner}/{repo}/deployments", + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + "GET /repos/{owner}/{repo}/environments", + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies", + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps", + "GET /repos/{owner}/{repo}/events", + "GET /repos/{owner}/{repo}/forks", + "GET /repos/{owner}/{repo}/hooks", + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", + "GET /repos/{owner}/{repo}/invitations", + "GET /repos/{owner}/{repo}/issues", + "GET /repos/{owner}/{repo}/issues/comments", + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/issues/events", + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", + "GET /repos/{owner}/{repo}/issues/{issue_number}/events", + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", + "GET /repos/{owner}/{repo}/keys", + "GET /repos/{owner}/{repo}/labels", + "GET /repos/{owner}/{repo}/milestones", + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", + "GET /repos/{owner}/{repo}/notifications", + "GET /repos/{owner}/{repo}/pages/builds", + "GET /repos/{owner}/{repo}/projects", + "GET /repos/{owner}/{repo}/pulls", + "GET /repos/{owner}/{repo}/pulls/comments", + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", + "GET /repos/{owner}/{repo}/releases", + "GET /repos/{owner}/{repo}/releases/{release_id}/assets", + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions", + "GET /repos/{owner}/{repo}/rules/branches/{branch}", + "GET /repos/{owner}/{repo}/rulesets", + "GET /repos/{owner}/{repo}/rulesets/rule-suites", + "GET /repos/{owner}/{repo}/secret-scanning/alerts", + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", + "GET /repos/{owner}/{repo}/security-advisories", + "GET /repos/{owner}/{repo}/stargazers", + "GET /repos/{owner}/{repo}/subscribers", + "GET /repos/{owner}/{repo}/tags", + "GET /repos/{owner}/{repo}/teams", + "GET /repos/{owner}/{repo}/topics", + "GET /repositories", + "GET /repositories/{repository_id}/environments/{environment_name}/secrets", + "GET /repositories/{repository_id}/environments/{environment_name}/variables", + "GET /search/code", + "GET /search/commits", + "GET /search/issues", + "GET /search/labels", + "GET /search/repositories", + "GET /search/topics", + "GET /search/users", + "GET /teams/{team_id}/discussions", + "GET /teams/{team_id}/discussions/{discussion_number}/comments", + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "GET /teams/{team_id}/discussions/{discussion_number}/reactions", + "GET /teams/{team_id}/invitations", + "GET /teams/{team_id}/members", + "GET /teams/{team_id}/projects", + "GET /teams/{team_id}/repos", + "GET /teams/{team_id}/teams", + "GET /user/blocks", + "GET /user/codespaces", + "GET /user/codespaces/secrets", + "GET /user/emails", + "GET /user/followers", + "GET /user/following", + "GET /user/gpg_keys", + "GET /user/installations", + "GET /user/installations/{installation_id}/repositories", + "GET /user/issues", + "GET /user/keys", + "GET /user/marketplace_purchases", + "GET /user/marketplace_purchases/stubbed", + "GET /user/memberships/orgs", + "GET /user/migrations", + "GET /user/migrations/{migration_id}/repositories", + "GET /user/orgs", + "GET /user/packages", + "GET /user/packages/{package_type}/{package_name}/versions", + "GET /user/public_emails", + "GET /user/repos", + "GET /user/repository_invitations", + "GET /user/social_accounts", + "GET /user/ssh_signing_keys", + "GET /user/starred", + "GET /user/subscriptions", + "GET /user/teams", + "GET /users", + "GET /users/{username}/events", + "GET /users/{username}/events/orgs/{org}", + "GET /users/{username}/events/public", + "GET /users/{username}/followers", + "GET /users/{username}/following", + "GET /users/{username}/gists", + "GET /users/{username}/gpg_keys", + "GET /users/{username}/keys", + "GET /users/{username}/orgs", + "GET /users/{username}/packages", + "GET /users/{username}/projects", + "GET /users/{username}/received_events", + "GET /users/{username}/received_events/public", + "GET /users/{username}/repos", + "GET /users/{username}/social_accounts", + "GET /users/{username}/ssh_signing_keys", + "GET /users/{username}/starred", + "GET /users/{username}/subscriptions" +]; + +// pkg/dist-src/paginating-endpoints.js +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } +} + +// pkg/dist-src/index.js +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + composePaginateRest, + isPaginatingEndpoint, + paginateRest, + paginatingEndpoints +}); diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js.map b/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js.map new file mode 100644 index 000000000..8845e2088 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/index.js", "../dist-src/version.js", "../dist-src/normalize-paginated-list-response.js", "../dist-src/iterator.js", "../dist-src/paginate.js", "../dist-src/compose-paginate.js", "../dist-src/generated/paginating-endpoints.js", "../dist-src/paginating-endpoints.js"], + "sourcesContent": ["import { VERSION } from \"./version.js\";\nimport { paginate } from \"./paginate.js\";\nimport { iterator } from \"./iterator.js\";\nimport { composePaginateRest } from \"./compose-paginate.js\";\nimport {\n isPaginatingEndpoint,\n paginatingEndpoints\n} from \"./paginating-endpoints.js\";\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\nexport {\n composePaginateRest,\n isPaginatingEndpoint,\n paginateRest,\n paginatingEndpoints\n};\n", "const VERSION = \"9.2.1\";\nexport {\n VERSION\n};\n", "function normalizePaginatedListResponse(response) {\n if (!response.data) {\n return {\n ...response,\n data: []\n };\n }\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization)\n return response;\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n response.data.total_count = totalCount;\n return response;\n}\nexport {\n normalizePaginatedListResponse\n};\n", "import { normalizePaginatedListResponse } from \"./normalize-paginated-list-response.js\";\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url)\n return { done: true };\n try {\n const response = await requestMethod({ method, url, headers });\n const normalizedResponse = normalizePaginatedListResponse(response);\n url = ((normalizedResponse.headers.link || \"\").match(\n /<([^>]+)>;\\s*rel=\"next\"/\n ) || [])[1];\n return { value: normalizedResponse };\n } catch (error) {\n if (error.status !== 409)\n throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n })\n };\n}\nexport {\n iterator\n};\n", "import { iterator } from \"./iterator.js\";\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = void 0;\n }\n return gather(\n octokit,\n [],\n iterator(octokit, route, parameters)[Symbol.asyncIterator](),\n mapFn\n );\n}\nfunction gather(octokit, results, iterator2, mapFn) {\n return iterator2.next().then((result) => {\n if (result.done) {\n return results;\n }\n let earlyExit = false;\n function done() {\n earlyExit = true;\n }\n results = results.concat(\n mapFn ? mapFn(result.value, done) : result.value.data\n );\n if (earlyExit) {\n return results;\n }\n return gather(octokit, results, iterator2, mapFn);\n });\n}\nexport {\n paginate\n};\n", "import { paginate } from \"./paginate.js\";\nimport { iterator } from \"./iterator.js\";\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\nexport {\n composePaginateRest\n};\n", "const paginatingEndpoints = [\n \"GET /advisories\",\n \"GET /app/hook/deliveries\",\n \"GET /app/installation-requests\",\n \"GET /app/installations\",\n \"GET /assignments/{assignment_id}/accepted_assignments\",\n \"GET /classrooms\",\n \"GET /classrooms/{classroom_id}/assignments\",\n \"GET /enterprises/{enterprise}/dependabot/alerts\",\n \"GET /enterprises/{enterprise}/secret-scanning/alerts\",\n \"GET /events\",\n \"GET /gists\",\n \"GET /gists/public\",\n \"GET /gists/starred\",\n \"GET /gists/{gist_id}/comments\",\n \"GET /gists/{gist_id}/commits\",\n \"GET /gists/{gist_id}/forks\",\n \"GET /installation/repositories\",\n \"GET /issues\",\n \"GET /licenses\",\n \"GET /marketplace_listing/plans\",\n \"GET /marketplace_listing/plans/{plan_id}/accounts\",\n \"GET /marketplace_listing/stubbed/plans\",\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n \"GET /networks/{owner}/{repo}/events\",\n \"GET /notifications\",\n \"GET /organizations\",\n \"GET /orgs/{org}/actions/cache/usage-by-repository\",\n \"GET /orgs/{org}/actions/permissions/repositories\",\n \"GET /orgs/{org}/actions/runners\",\n \"GET /orgs/{org}/actions/secrets\",\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/actions/variables\",\n \"GET /orgs/{org}/actions/variables/{name}/repositories\",\n \"GET /orgs/{org}/blocks\",\n \"GET /orgs/{org}/code-scanning/alerts\",\n \"GET /orgs/{org}/codespaces\",\n \"GET /orgs/{org}/codespaces/secrets\",\n \"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/copilot/billing/seats\",\n \"GET /orgs/{org}/dependabot/alerts\",\n \"GET /orgs/{org}/dependabot/secrets\",\n \"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/events\",\n \"GET /orgs/{org}/failed_invitations\",\n \"GET /orgs/{org}/hooks\",\n \"GET /orgs/{org}/hooks/{hook_id}/deliveries\",\n \"GET /orgs/{org}/installations\",\n \"GET /orgs/{org}/invitations\",\n \"GET /orgs/{org}/invitations/{invitation_id}/teams\",\n \"GET /orgs/{org}/issues\",\n \"GET /orgs/{org}/members\",\n \"GET /orgs/{org}/members/{username}/codespaces\",\n \"GET /orgs/{org}/migrations\",\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n \"GET /orgs/{org}/organization-roles/{role_id}/teams\",\n \"GET /orgs/{org}/organization-roles/{role_id}/users\",\n \"GET /orgs/{org}/outside_collaborators\",\n \"GET /orgs/{org}/packages\",\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n \"GET /orgs/{org}/personal-access-token-requests\",\n \"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories\",\n \"GET /orgs/{org}/personal-access-tokens\",\n \"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories\",\n \"GET /orgs/{org}/projects\",\n \"GET /orgs/{org}/properties/values\",\n \"GET /orgs/{org}/public_members\",\n \"GET /orgs/{org}/repos\",\n \"GET /orgs/{org}/rulesets\",\n \"GET /orgs/{org}/rulesets/rule-suites\",\n \"GET /orgs/{org}/secret-scanning/alerts\",\n \"GET /orgs/{org}/security-advisories\",\n \"GET /orgs/{org}/teams\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n \"GET /orgs/{org}/teams/{team_slug}/members\",\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n \"GET /orgs/{org}/teams/{team_slug}/repos\",\n \"GET /orgs/{org}/teams/{team_slug}/teams\",\n \"GET /projects/columns/{column_id}/cards\",\n \"GET /projects/{project_id}/collaborators\",\n \"GET /projects/{project_id}/columns\",\n \"GET /repos/{owner}/{repo}/actions/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/caches\",\n \"GET /repos/{owner}/{repo}/actions/organization-secrets\",\n \"GET /repos/{owner}/{repo}/actions/organization-variables\",\n \"GET /repos/{owner}/{repo}/actions/runners\",\n \"GET /repos/{owner}/{repo}/actions/runs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/secrets\",\n \"GET /repos/{owner}/{repo}/actions/variables\",\n \"GET /repos/{owner}/{repo}/actions/workflows\",\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n \"GET /repos/{owner}/{repo}/activity\",\n \"GET /repos/{owner}/{repo}/assignees\",\n \"GET /repos/{owner}/{repo}/branches\",\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n \"GET /repos/{owner}/{repo}/code-scanning/analyses\",\n \"GET /repos/{owner}/{repo}/codespaces\",\n \"GET /repos/{owner}/{repo}/codespaces/devcontainers\",\n \"GET /repos/{owner}/{repo}/codespaces/secrets\",\n \"GET /repos/{owner}/{repo}/collaborators\",\n \"GET /repos/{owner}/{repo}/comments\",\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/commits\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/status\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n \"GET /repos/{owner}/{repo}/contributors\",\n \"GET /repos/{owner}/{repo}/dependabot/alerts\",\n \"GET /repos/{owner}/{repo}/dependabot/secrets\",\n \"GET /repos/{owner}/{repo}/deployments\",\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n \"GET /repos/{owner}/{repo}/environments\",\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\",\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps\",\n \"GET /repos/{owner}/{repo}/events\",\n \"GET /repos/{owner}/{repo}/forks\",\n \"GET /repos/{owner}/{repo}/hooks\",\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\",\n \"GET /repos/{owner}/{repo}/invitations\",\n \"GET /repos/{owner}/{repo}/issues\",\n \"GET /repos/{owner}/{repo}/issues/comments\",\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n \"GET /repos/{owner}/{repo}/keys\",\n \"GET /repos/{owner}/{repo}/labels\",\n \"GET /repos/{owner}/{repo}/milestones\",\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n \"GET /repos/{owner}/{repo}/notifications\",\n \"GET /repos/{owner}/{repo}/pages/builds\",\n \"GET /repos/{owner}/{repo}/projects\",\n \"GET /repos/{owner}/{repo}/pulls\",\n \"GET /repos/{owner}/{repo}/pulls/comments\",\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n \"GET /repos/{owner}/{repo}/releases\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\",\n \"GET /repos/{owner}/{repo}/rules/branches/{branch}\",\n \"GET /repos/{owner}/{repo}/rulesets\",\n \"GET /repos/{owner}/{repo}/rulesets/rule-suites\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\",\n \"GET /repos/{owner}/{repo}/security-advisories\",\n \"GET /repos/{owner}/{repo}/stargazers\",\n \"GET /repos/{owner}/{repo}/subscribers\",\n \"GET /repos/{owner}/{repo}/tags\",\n \"GET /repos/{owner}/{repo}/teams\",\n \"GET /repos/{owner}/{repo}/topics\",\n \"GET /repositories\",\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\",\n \"GET /repositories/{repository_id}/environments/{environment_name}/variables\",\n \"GET /search/code\",\n \"GET /search/commits\",\n \"GET /search/issues\",\n \"GET /search/labels\",\n \"GET /search/repositories\",\n \"GET /search/topics\",\n \"GET /search/users\",\n \"GET /teams/{team_id}/discussions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\",\n \"GET /teams/{team_id}/invitations\",\n \"GET /teams/{team_id}/members\",\n \"GET /teams/{team_id}/projects\",\n \"GET /teams/{team_id}/repos\",\n \"GET /teams/{team_id}/teams\",\n \"GET /user/blocks\",\n \"GET /user/codespaces\",\n \"GET /user/codespaces/secrets\",\n \"GET /user/emails\",\n \"GET /user/followers\",\n \"GET /user/following\",\n \"GET /user/gpg_keys\",\n \"GET /user/installations\",\n \"GET /user/installations/{installation_id}/repositories\",\n \"GET /user/issues\",\n \"GET /user/keys\",\n \"GET /user/marketplace_purchases\",\n \"GET /user/marketplace_purchases/stubbed\",\n \"GET /user/memberships/orgs\",\n \"GET /user/migrations\",\n \"GET /user/migrations/{migration_id}/repositories\",\n \"GET /user/orgs\",\n \"GET /user/packages\",\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n \"GET /user/public_emails\",\n \"GET /user/repos\",\n \"GET /user/repository_invitations\",\n \"GET /user/social_accounts\",\n \"GET /user/ssh_signing_keys\",\n \"GET /user/starred\",\n \"GET /user/subscriptions\",\n \"GET /user/teams\",\n \"GET /users\",\n \"GET /users/{username}/events\",\n \"GET /users/{username}/events/orgs/{org}\",\n \"GET /users/{username}/events/public\",\n \"GET /users/{username}/followers\",\n \"GET /users/{username}/following\",\n \"GET /users/{username}/gists\",\n \"GET /users/{username}/gpg_keys\",\n \"GET /users/{username}/keys\",\n \"GET /users/{username}/orgs\",\n \"GET /users/{username}/packages\",\n \"GET /users/{username}/projects\",\n \"GET /users/{username}/received_events\",\n \"GET /users/{username}/received_events/public\",\n \"GET /users/{username}/repos\",\n \"GET /users/{username}/social_accounts\",\n \"GET /users/{username}/ssh_signing_keys\",\n \"GET /users/{username}/starred\",\n \"GET /users/{username}/subscriptions\"\n];\nexport {\n paginatingEndpoints\n};\n", "import {\n paginatingEndpoints\n} from \"./generated/paginating-endpoints.js\";\nimport { paginatingEndpoints as paginatingEndpoints2 } from \"./generated/paginating-endpoints.js\";\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\nexport {\n isPaginatingEndpoint,\n paginatingEndpoints2 as paginatingEndpoints\n};\n"], + "mappings": "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ACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACvOA,SAAS,qBAAqB,KAAK;AACjC,MAAI,OAAO,QAAQ,UAAU;AAC3B,WAAO,oBAAoB,SAAS,GAAG;AAAA,EACzC,OAAO;AACL,WAAO;AAAA,EACT;AACF;;;APFA,SAAS,aAAa,SAAS;AAC7B,SAAO;AAAA,IACL,UAAU,OAAO,OAAO,SAAS,KAAK,MAAM,OAAO,GAAG;AAAA,MACpD,UAAU,SAAS,KAAK,MAAM,OAAO;AAAA,IACvC,CAAC;AAAA,EACH;AACF;AACA,aAAa,UAAU;", + "names": [] +} diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/compose-paginate.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/compose-paginate.js new file mode 100644 index 000000000..f3a6537aa --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/compose-paginate.js @@ -0,0 +1,8 @@ +import { paginate } from "./paginate.js"; +import { iterator } from "./iterator.js"; +const composePaginateRest = Object.assign(paginate, { + iterator +}); +export { + composePaginateRest +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/generated/paginating-endpoints.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/generated/paginating-endpoints.js new file mode 100644 index 000000000..38bddd312 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/generated/paginating-endpoints.js @@ -0,0 +1,239 @@ +const paginatingEndpoints = [ + "GET /advisories", + "GET /app/hook/deliveries", + "GET /app/installation-requests", + "GET /app/installations", + "GET /assignments/{assignment_id}/accepted_assignments", + "GET /classrooms", + "GET /classrooms/{classroom_id}/assignments", + "GET /enterprises/{enterprise}/dependabot/alerts", + "GET /enterprises/{enterprise}/secret-scanning/alerts", + "GET /events", + "GET /gists", + "GET /gists/public", + "GET /gists/starred", + "GET /gists/{gist_id}/comments", + "GET /gists/{gist_id}/commits", + "GET /gists/{gist_id}/forks", + "GET /installation/repositories", + "GET /issues", + "GET /licenses", + "GET /marketplace_listing/plans", + "GET /marketplace_listing/plans/{plan_id}/accounts", + "GET /marketplace_listing/stubbed/plans", + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", + "GET /networks/{owner}/{repo}/events", + "GET /notifications", + "GET /organizations", + "GET /orgs/{org}/actions/cache/usage-by-repository", + "GET /orgs/{org}/actions/permissions/repositories", + "GET /orgs/{org}/actions/runners", + "GET /orgs/{org}/actions/secrets", + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", + "GET /orgs/{org}/actions/variables", + "GET /orgs/{org}/actions/variables/{name}/repositories", + "GET /orgs/{org}/blocks", + "GET /orgs/{org}/code-scanning/alerts", + "GET /orgs/{org}/codespaces", + "GET /orgs/{org}/codespaces/secrets", + "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories", + "GET /orgs/{org}/copilot/billing/seats", + "GET /orgs/{org}/dependabot/alerts", + "GET /orgs/{org}/dependabot/secrets", + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories", + "GET /orgs/{org}/events", + "GET /orgs/{org}/failed_invitations", + "GET /orgs/{org}/hooks", + "GET /orgs/{org}/hooks/{hook_id}/deliveries", + "GET /orgs/{org}/installations", + "GET /orgs/{org}/invitations", + "GET /orgs/{org}/invitations/{invitation_id}/teams", + "GET /orgs/{org}/issues", + "GET /orgs/{org}/members", + "GET /orgs/{org}/members/{username}/codespaces", + "GET /orgs/{org}/migrations", + "GET /orgs/{org}/migrations/{migration_id}/repositories", + "GET /orgs/{org}/organization-roles/{role_id}/teams", + "GET /orgs/{org}/organization-roles/{role_id}/users", + "GET /orgs/{org}/outside_collaborators", + "GET /orgs/{org}/packages", + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + "GET /orgs/{org}/personal-access-token-requests", + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories", + "GET /orgs/{org}/personal-access-tokens", + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories", + "GET /orgs/{org}/projects", + "GET /orgs/{org}/properties/values", + "GET /orgs/{org}/public_members", + "GET /orgs/{org}/repos", + "GET /orgs/{org}/rulesets", + "GET /orgs/{org}/rulesets/rule-suites", + "GET /orgs/{org}/secret-scanning/alerts", + "GET /orgs/{org}/security-advisories", + "GET /orgs/{org}/teams", + "GET /orgs/{org}/teams/{team_slug}/discussions", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + "GET /orgs/{org}/teams/{team_slug}/invitations", + "GET /orgs/{org}/teams/{team_slug}/members", + "GET /orgs/{org}/teams/{team_slug}/projects", + "GET /orgs/{org}/teams/{team_slug}/repos", + "GET /orgs/{org}/teams/{team_slug}/teams", + "GET /projects/columns/{column_id}/cards", + "GET /projects/{project_id}/collaborators", + "GET /projects/{project_id}/columns", + "GET /repos/{owner}/{repo}/actions/artifacts", + "GET /repos/{owner}/{repo}/actions/caches", + "GET /repos/{owner}/{repo}/actions/organization-secrets", + "GET /repos/{owner}/{repo}/actions/organization-variables", + "GET /repos/{owner}/{repo}/actions/runners", + "GET /repos/{owner}/{repo}/actions/runs", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", + "GET /repos/{owner}/{repo}/actions/secrets", + "GET /repos/{owner}/{repo}/actions/variables", + "GET /repos/{owner}/{repo}/actions/workflows", + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", + "GET /repos/{owner}/{repo}/activity", + "GET /repos/{owner}/{repo}/assignees", + "GET /repos/{owner}/{repo}/branches", + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", + "GET /repos/{owner}/{repo}/code-scanning/alerts", + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + "GET /repos/{owner}/{repo}/code-scanning/analyses", + "GET /repos/{owner}/{repo}/codespaces", + "GET /repos/{owner}/{repo}/codespaces/devcontainers", + "GET /repos/{owner}/{repo}/codespaces/secrets", + "GET /repos/{owner}/{repo}/collaborators", + "GET /repos/{owner}/{repo}/comments", + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/commits", + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", + "GET /repos/{owner}/{repo}/commits/{ref}/status", + "GET /repos/{owner}/{repo}/commits/{ref}/statuses", + "GET /repos/{owner}/{repo}/contributors", + "GET /repos/{owner}/{repo}/dependabot/alerts", + "GET /repos/{owner}/{repo}/dependabot/secrets", + "GET /repos/{owner}/{repo}/deployments", + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + "GET /repos/{owner}/{repo}/environments", + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies", + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps", + "GET /repos/{owner}/{repo}/events", + "GET /repos/{owner}/{repo}/forks", + "GET /repos/{owner}/{repo}/hooks", + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", + "GET /repos/{owner}/{repo}/invitations", + "GET /repos/{owner}/{repo}/issues", + "GET /repos/{owner}/{repo}/issues/comments", + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/issues/events", + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", + "GET /repos/{owner}/{repo}/issues/{issue_number}/events", + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", + "GET /repos/{owner}/{repo}/keys", + "GET /repos/{owner}/{repo}/labels", + "GET /repos/{owner}/{repo}/milestones", + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", + "GET /repos/{owner}/{repo}/notifications", + "GET /repos/{owner}/{repo}/pages/builds", + "GET /repos/{owner}/{repo}/projects", + "GET /repos/{owner}/{repo}/pulls", + "GET /repos/{owner}/{repo}/pulls/comments", + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", + "GET /repos/{owner}/{repo}/releases", + "GET /repos/{owner}/{repo}/releases/{release_id}/assets", + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions", + "GET /repos/{owner}/{repo}/rules/branches/{branch}", + "GET /repos/{owner}/{repo}/rulesets", + "GET /repos/{owner}/{repo}/rulesets/rule-suites", + "GET /repos/{owner}/{repo}/secret-scanning/alerts", + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", + "GET /repos/{owner}/{repo}/security-advisories", + "GET /repos/{owner}/{repo}/stargazers", + "GET /repos/{owner}/{repo}/subscribers", + "GET /repos/{owner}/{repo}/tags", + "GET /repos/{owner}/{repo}/teams", + "GET /repos/{owner}/{repo}/topics", + "GET /repositories", + "GET /repositories/{repository_id}/environments/{environment_name}/secrets", + "GET /repositories/{repository_id}/environments/{environment_name}/variables", + "GET /search/code", + "GET /search/commits", + "GET /search/issues", + "GET /search/labels", + "GET /search/repositories", + "GET /search/topics", + "GET /search/users", + "GET /teams/{team_id}/discussions", + "GET /teams/{team_id}/discussions/{discussion_number}/comments", + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "GET /teams/{team_id}/discussions/{discussion_number}/reactions", + "GET /teams/{team_id}/invitations", + "GET /teams/{team_id}/members", + "GET /teams/{team_id}/projects", + "GET /teams/{team_id}/repos", + "GET /teams/{team_id}/teams", + "GET /user/blocks", + "GET /user/codespaces", + "GET /user/codespaces/secrets", + "GET /user/emails", + "GET /user/followers", + "GET /user/following", + "GET /user/gpg_keys", + "GET /user/installations", + "GET /user/installations/{installation_id}/repositories", + "GET /user/issues", + "GET /user/keys", + "GET /user/marketplace_purchases", + "GET /user/marketplace_purchases/stubbed", + "GET /user/memberships/orgs", + "GET /user/migrations", + "GET /user/migrations/{migration_id}/repositories", + "GET /user/orgs", + "GET /user/packages", + "GET /user/packages/{package_type}/{package_name}/versions", + "GET /user/public_emails", + "GET /user/repos", + "GET /user/repository_invitations", + "GET /user/social_accounts", + "GET /user/ssh_signing_keys", + "GET /user/starred", + "GET /user/subscriptions", + "GET /user/teams", + "GET /users", + "GET /users/{username}/events", + "GET /users/{username}/events/orgs/{org}", + "GET /users/{username}/events/public", + "GET /users/{username}/followers", + "GET /users/{username}/following", + "GET /users/{username}/gists", + "GET /users/{username}/gpg_keys", + "GET /users/{username}/keys", + "GET /users/{username}/orgs", + "GET /users/{username}/packages", + "GET /users/{username}/projects", + "GET /users/{username}/received_events", + "GET /users/{username}/received_events/public", + "GET /users/{username}/repos", + "GET /users/{username}/social_accounts", + "GET /users/{username}/ssh_signing_keys", + "GET /users/{username}/starred", + "GET /users/{username}/subscriptions" +]; +export { + paginatingEndpoints +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/index.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/index.js new file mode 100644 index 000000000..02a5b1097 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/index.js @@ -0,0 +1,22 @@ +import { VERSION } from "./version.js"; +import { paginate } from "./paginate.js"; +import { iterator } from "./iterator.js"; +import { composePaginateRest } from "./compose-paginate.js"; +import { + isPaginatingEndpoint, + paginatingEndpoints +} from "./paginating-endpoints.js"; +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; +export { + composePaginateRest, + isPaginatingEndpoint, + paginateRest, + paginatingEndpoints +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/iterator.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/iterator.js new file mode 100644 index 000000000..520692268 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/iterator.js @@ -0,0 +1,38 @@ +import { normalizePaginatedListResponse } from "./normalize-paginated-list-response.js"; +function iterator(octokit, route, parameters) { + const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) + return { done: true }; + try { + const response = await requestMethod({ method, url, headers }); + const normalizedResponse = normalizePaginatedListResponse(response); + url = ((normalizedResponse.headers.link || "").match( + /<([^>]+)>;\s*rel="next"/ + ) || [])[1]; + return { value: normalizedResponse }; + } catch (error) { + if (error.status !== 409) + throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [] + } + }; + } + } + }) + }; +} +export { + iterator +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/normalize-paginated-list-response.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/normalize-paginated-list-response.js new file mode 100644 index 000000000..c1dd74471 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/normalize-paginated-list-response.js @@ -0,0 +1,31 @@ +function normalizePaginatedListResponse(response) { + if (!response.data) { + return { + ...response, + data: [] + }; + } + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) + return response; + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + response.data.total_count = totalCount; + return response; +} +export { + normalizePaginatedListResponse +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js new file mode 100644 index 000000000..0e888b99f --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js @@ -0,0 +1,34 @@ +import { iterator } from "./iterator.js"; +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = void 0; + } + return gather( + octokit, + [], + iterator(octokit, route, parameters)[Symbol.asyncIterator](), + mapFn + ); +} +function gather(octokit, results, iterator2, mapFn) { + return iterator2.next().then((result) => { + if (result.done) { + return results; + } + let earlyExit = false; + function done() { + earlyExit = true; + } + results = results.concat( + mapFn ? mapFn(result.value, done) : result.value.data + ); + if (earlyExit) { + return results; + } + return gather(octokit, results, iterator2, mapFn); + }); +} +export { + paginate +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/paginating-endpoints.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/paginating-endpoints.js new file mode 100644 index 000000000..f9a110a87 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/paginating-endpoints.js @@ -0,0 +1,15 @@ +import { + paginatingEndpoints +} from "./generated/paginating-endpoints.js"; +import { paginatingEndpoints as paginatingEndpoints2 } from "./generated/paginating-endpoints.js"; +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } +} +export { + isPaginatingEndpoint, + paginatingEndpoints2 as paginatingEndpoints +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/version.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/version.js new file mode 100644 index 000000000..7c346cd39 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/version.js @@ -0,0 +1,4 @@ +const VERSION = "9.2.1"; +export { + VERSION +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/compose-paginate.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/compose-paginate.d.ts new file mode 100644 index 000000000..484eadb25 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/compose-paginate.d.ts @@ -0,0 +1,2 @@ +import type { ComposePaginateInterface } from "./types.js"; +export declare const composePaginateRest: ComposePaginateInterface; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/generated/paginating-endpoints.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/generated/paginating-endpoints.d.ts new file mode 100644 index 000000000..0ecd0df82 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/generated/paginating-endpoints.d.ts @@ -0,0 +1,1750 @@ +import type { Endpoints } from "@octokit/types"; +export interface PaginatingEndpoints { + /** + * @see https://docs.github.com/rest/security-advisories/global-advisories#list-global-security-advisories + */ + "GET /advisories": { + parameters: Endpoints["GET /advisories"]["parameters"]; + response: Endpoints["GET /advisories"]["response"]; + }; + /** + * @see https://docs.github.com/rest/apps/webhooks#list-deliveries-for-an-app-webhook + */ + "GET /app/hook/deliveries": { + parameters: Endpoints["GET /app/hook/deliveries"]["parameters"]; + response: Endpoints["GET /app/hook/deliveries"]["response"]; + }; + /** + * @see https://docs.github.com/rest/apps/apps#list-installation-requests-for-the-authenticated-app + */ + "GET /app/installation-requests": { + parameters: Endpoints["GET /app/installation-requests"]["parameters"]; + response: Endpoints["GET /app/installation-requests"]["response"]; + }; + /** + * @see https://docs.github.com/enterprise-server@3.9/rest/apps/apps#list-installations-for-the-authenticated-app + */ + "GET /app/installations": { + parameters: Endpoints["GET /app/installations"]["parameters"]; + response: Endpoints["GET /app/installations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/classroom/classroom#list-accepted-assignments-for-an-assignment + */ + "GET /assignments/{assignment_id}/accepted_assignments": { + parameters: Endpoints["GET /assignments/{assignment_id}/accepted_assignments"]["parameters"]; + response: Endpoints["GET /assignments/{assignment_id}/accepted_assignments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/classroom/classroom#list-classrooms + */ + "GET /classrooms": { + parameters: Endpoints["GET /classrooms"]["parameters"]; + response: Endpoints["GET /classrooms"]["response"]; + }; + /** + * @see https://docs.github.com/rest/classroom/classroom#list-assignments-for-a-classroom + */ + "GET /classrooms/{classroom_id}/assignments": { + parameters: Endpoints["GET /classrooms/{classroom_id}/assignments"]["parameters"]; + response: Endpoints["GET /classrooms/{classroom_id}/assignments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-enterprise + */ + "GET /enterprises/{enterprise}/dependabot/alerts": { + parameters: Endpoints["GET /enterprises/{enterprise}/dependabot/alerts"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/dependabot/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-an-enterprise + */ + "GET /enterprises/{enterprise}/secret-scanning/alerts": { + parameters: Endpoints["GET /enterprises/{enterprise}/secret-scanning/alerts"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/secret-scanning/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events + */ + "GET /events": { + parameters: Endpoints["GET /events"]["parameters"]; + response: Endpoints["GET /events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/gists/gists#list-gists-for-the-authenticated-user + */ + "GET /gists": { + parameters: Endpoints["GET /gists"]["parameters"]; + response: Endpoints["GET /gists"]["response"]; + }; + /** + * @see https://docs.github.com/rest/gists/gists#list-public-gists + */ + "GET /gists/public": { + parameters: Endpoints["GET /gists/public"]["parameters"]; + response: Endpoints["GET /gists/public"]["response"]; + }; + /** + * @see https://docs.github.com/rest/gists/gists#list-starred-gists + */ + "GET /gists/starred": { + parameters: Endpoints["GET /gists/starred"]["parameters"]; + response: Endpoints["GET /gists/starred"]["response"]; + }; + /** + * @see https://docs.github.com/rest/gists/comments#list-gist-comments + */ + "GET /gists/{gist_id}/comments": { + parameters: Endpoints["GET /gists/{gist_id}/comments"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/gists/gists#list-gist-commits + */ + "GET /gists/{gist_id}/commits": { + parameters: Endpoints["GET /gists/{gist_id}/commits"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/commits"]["response"]; + }; + /** + * @see https://docs.github.com/rest/gists/gists#list-gist-forks + */ + "GET /gists/{gist_id}/forks": { + parameters: Endpoints["GET /gists/{gist_id}/forks"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/forks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-app-installation + */ + "GET /installation/repositories": { + parameters: Endpoints["GET /installation/repositories"]["parameters"]; + response: Endpoints["GET /installation/repositories"]["response"] & { + data: Endpoints["GET /installation/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/issues/issues#list-issues-assigned-to-the-authenticated-user + */ + "GET /issues": { + parameters: Endpoints["GET /issues"]["parameters"]; + response: Endpoints["GET /issues"]["response"]; + }; + /** + * @see https://docs.github.com/rest/licenses/licenses#get-all-commonly-used-licenses + */ + "GET /licenses": { + parameters: Endpoints["GET /licenses"]["parameters"]; + response: Endpoints["GET /licenses"]["response"]; + }; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-plans + */ + "GET /marketplace_listing/plans": { + parameters: Endpoints["GET /marketplace_listing/plans"]["parameters"]; + response: Endpoints["GET /marketplace_listing/plans"]["response"]; + }; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan + */ + "GET /marketplace_listing/plans/{plan_id}/accounts": { + parameters: Endpoints["GET /marketplace_listing/plans/{plan_id}/accounts"]["parameters"]; + response: Endpoints["GET /marketplace_listing/plans/{plan_id}/accounts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-plans-stubbed + */ + "GET /marketplace_listing/stubbed/plans": { + parameters: Endpoints["GET /marketplace_listing/stubbed/plans"]["parameters"]; + response: Endpoints["GET /marketplace_listing/stubbed/plans"]["response"]; + }; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan-stubbed + */ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts": { + parameters: Endpoints["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"]["parameters"]; + response: Endpoints["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events-for-a-network-of-repositories + */ + "GET /networks/{owner}/{repo}/events": { + parameters: Endpoints["GET /networks/{owner}/{repo}/events"]["parameters"]; + response: Endpoints["GET /networks/{owner}/{repo}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user + */ + "GET /notifications": { + parameters: Endpoints["GET /notifications"]["parameters"]; + response: Endpoints["GET /notifications"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-organizations + */ + "GET /organizations": { + parameters: Endpoints["GET /organizations"]["parameters"]; + response: Endpoints["GET /organizations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/actions/cache#list-repositories-with-github-actions-cache-usage-for-an-organization + */ + "GET /orgs/{org}/actions/cache/usage-by-repository": { + parameters: Endpoints["GET /orgs/{org}/actions/cache/usage-by-repository"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/cache/usage-by-repository"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/cache/usage-by-repository"]["response"]["data"]["repository_cache_usages"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/permissions#list-selected-repositories-enabled-for-github-actions-in-an-organization + */ + "GET /orgs/{org}/actions/permissions/repositories": { + parameters: Endpoints["GET /orgs/{org}/actions/permissions/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/permissions/repositories"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/permissions/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-self-hosted-runners-for-an-organization + */ + "GET /orgs/{org}/actions/runners": { + parameters: Endpoints["GET /orgs/{org}/actions/runners"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runners"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/runners"]["response"]["data"]["runners"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/secrets#list-organization-secrets + */ + "GET /orgs/{org}/actions/secrets": { + parameters: Endpoints["GET /orgs/{org}/actions/secrets"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/secrets"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/secrets#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories": { + parameters: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/variables#list-organization-variables + */ + "GET /orgs/{org}/actions/variables": { + parameters: Endpoints["GET /orgs/{org}/actions/variables"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/variables"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/variables"]["response"]["data"]["variables"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/variables#list-selected-repositories-for-an-organization-variable + */ + "GET /orgs/{org}/actions/variables/{name}/repositories": { + parameters: Endpoints["GET /orgs/{org}/actions/variables/{name}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/variables/{name}/repositories"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/variables/{name}/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/orgs/blocking#list-users-blocked-by-an-organization + */ + "GET /orgs/{org}/blocks": { + parameters: Endpoints["GET /orgs/{org}/blocks"]["parameters"]; + response: Endpoints["GET /orgs/{org}/blocks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-an-organization + */ + "GET /orgs/{org}/code-scanning/alerts": { + parameters: Endpoints["GET /orgs/{org}/code-scanning/alerts"]["parameters"]; + response: Endpoints["GET /orgs/{org}/code-scanning/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-the-organization + */ + "GET /orgs/{org}/codespaces": { + parameters: Endpoints["GET /orgs/{org}/codespaces"]["parameters"]; + response: Endpoints["GET /orgs/{org}/codespaces"]["response"] & { + data: Endpoints["GET /orgs/{org}/codespaces"]["response"]["data"]["codespaces"]; + }; + }; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#list-organization-secrets + */ + "GET /orgs/{org}/codespaces/secrets": { + parameters: Endpoints["GET /orgs/{org}/codespaces/secrets"]["parameters"]; + response: Endpoints["GET /orgs/{org}/codespaces/secrets"]["response"] & { + data: Endpoints["GET /orgs/{org}/codespaces/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories": { + parameters: Endpoints["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"]["response"] & { + data: Endpoints["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization + */ + "GET /orgs/{org}/copilot/billing/seats": { + parameters: Endpoints["GET /orgs/{org}/copilot/billing/seats"]["parameters"]; + response: Endpoints["GET /orgs/{org}/copilot/billing/seats"]["response"] & { + data: Endpoints["GET /orgs/{org}/copilot/billing/seats"]["response"]["data"]["seats"]; + }; + }; + /** + * @see https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-organization + */ + "GET /orgs/{org}/dependabot/alerts": { + parameters: Endpoints["GET /orgs/{org}/dependabot/alerts"]["parameters"]; + response: Endpoints["GET /orgs/{org}/dependabot/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/dependabot/secrets#list-organization-secrets + */ + "GET /orgs/{org}/dependabot/secrets": { + parameters: Endpoints["GET /orgs/{org}/dependabot/secrets"]["parameters"]; + response: Endpoints["GET /orgs/{org}/dependabot/secrets"]["response"] & { + data: Endpoints["GET /orgs/{org}/dependabot/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/dependabot/secrets#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories": { + parameters: Endpoints["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"]["response"] & { + data: Endpoints["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/activity/events#list-public-organization-events + */ + "GET /orgs/{org}/events": { + parameters: Endpoints["GET /orgs/{org}/events"]["parameters"]; + response: Endpoints["GET /orgs/{org}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/members#list-failed-organization-invitations + */ + "GET /orgs/{org}/failed_invitations": { + parameters: Endpoints["GET /orgs/{org}/failed_invitations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/failed_invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/webhooks#list-organization-webhooks + */ + "GET /orgs/{org}/hooks": { + parameters: Endpoints["GET /orgs/{org}/hooks"]["parameters"]; + response: Endpoints["GET /orgs/{org}/hooks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/webhooks#list-deliveries-for-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}/deliveries": { + parameters: Endpoints["GET /orgs/{org}/hooks/{hook_id}/deliveries"]["parameters"]; + response: Endpoints["GET /orgs/{org}/hooks/{hook_id}/deliveries"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-app-installations-for-an-organization + */ + "GET /orgs/{org}/installations": { + parameters: Endpoints["GET /orgs/{org}/installations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/installations"]["response"] & { + data: Endpoints["GET /orgs/{org}/installations"]["response"]["data"]["installations"]; + }; + }; + /** + * @see https://docs.github.com/rest/orgs/members#list-pending-organization-invitations + */ + "GET /orgs/{org}/invitations": { + parameters: Endpoints["GET /orgs/{org}/invitations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/members#list-organization-invitation-teams + */ + "GET /orgs/{org}/invitations/{invitation_id}/teams": { + parameters: Endpoints["GET /orgs/{org}/invitations/{invitation_id}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/invitations/{invitation_id}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/issues/issues#list-organization-issues-assigned-to-the-authenticated-user + */ + "GET /orgs/{org}/issues": { + parameters: Endpoints["GET /orgs/{org}/issues"]["parameters"]; + response: Endpoints["GET /orgs/{org}/issues"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/members#list-organization-members + */ + "GET /orgs/{org}/members": { + parameters: Endpoints["GET /orgs/{org}/members"]["parameters"]; + response: Endpoints["GET /orgs/{org}/members"]["response"]; + }; + /** + * @see https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-a-user-in-organization + */ + "GET /orgs/{org}/members/{username}/codespaces": { + parameters: Endpoints["GET /orgs/{org}/members/{username}/codespaces"]["parameters"]; + response: Endpoints["GET /orgs/{org}/members/{username}/codespaces"]["response"] & { + data: Endpoints["GET /orgs/{org}/members/{username}/codespaces"]["response"]["data"]["codespaces"]; + }; + }; + /** + * @see https://docs.github.com/rest/migrations/orgs#list-organization-migrations + */ + "GET /orgs/{org}/migrations": { + parameters: Endpoints["GET /orgs/{org}/migrations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/migrations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/migrations/orgs#list-repositories-in-an-organization-migration + */ + "GET /orgs/{org}/migrations/{migration_id}/repositories": { + parameters: Endpoints["GET /orgs/{org}/migrations/{migration_id}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/migrations/{migration_id}/repositories"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#list-teams-that-are-assigned-to-an-organization-role + */ + "GET /orgs/{org}/organization-roles/{role_id}/teams": { + parameters: Endpoints["GET /orgs/{org}/organization-roles/{role_id}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/organization-roles/{role_id}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#list-users-that-are-assigned-to-an-organization-role + */ + "GET /orgs/{org}/organization-roles/{role_id}/users": { + parameters: Endpoints["GET /orgs/{org}/organization-roles/{role_id}/users"]["parameters"]; + response: Endpoints["GET /orgs/{org}/organization-roles/{role_id}/users"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/outside-collaborators#list-outside-collaborators-for-an-organization + */ + "GET /orgs/{org}/outside_collaborators": { + parameters: Endpoints["GET /orgs/{org}/outside_collaborators"]["parameters"]; + response: Endpoints["GET /orgs/{org}/outside_collaborators"]["response"]; + }; + /** + * @see https://docs.github.com/rest/packages/packages#list-packages-for-an-organization + */ + "GET /orgs/{org}/packages": { + parameters: Endpoints["GET /orgs/{org}/packages"]["parameters"]; + response: Endpoints["GET /orgs/{org}/packages"]["response"]; + }; + /** + * @see https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions": { + parameters: Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens + */ + "GET /orgs/{org}/personal-access-token-requests": { + parameters: Endpoints["GET /orgs/{org}/personal-access-token-requests"]["parameters"]; + response: Endpoints["GET /orgs/{org}/personal-access-token-requests"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-requested-to-be-accessed-by-a-fine-grained-personal-access-token + */ + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories": { + parameters: Endpoints["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-fine-grained-personal-access-tokens-with-access-to-organization-resources + */ + "GET /orgs/{org}/personal-access-tokens": { + parameters: Endpoints["GET /orgs/{org}/personal-access-tokens"]["parameters"]; + response: Endpoints["GET /orgs/{org}/personal-access-tokens"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-a-fine-grained-personal-access-token-has-access-to + */ + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories": { + parameters: Endpoints["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"]["response"]; + }; + /** + * @see https://docs.github.com/rest/projects/projects#list-organization-projects + */ + "GET /orgs/{org}/projects": { + parameters: Endpoints["GET /orgs/{org}/projects"]["parameters"]; + response: Endpoints["GET /orgs/{org}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#list-custom-property-values-for-organization-repositories + */ + "GET /orgs/{org}/properties/values": { + parameters: Endpoints["GET /orgs/{org}/properties/values"]["parameters"]; + response: Endpoints["GET /orgs/{org}/properties/values"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/members#list-public-organization-members + */ + "GET /orgs/{org}/public_members": { + parameters: Endpoints["GET /orgs/{org}/public_members"]["parameters"]; + response: Endpoints["GET /orgs/{org}/public_members"]["response"]; + }; + /** + * @see https://docs.github.com/rest/repos/repos#list-organization-repositories + */ + "GET /orgs/{org}/repos": { + parameters: Endpoints["GET /orgs/{org}/repos"]["parameters"]; + response: Endpoints["GET /orgs/{org}/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/rules#get-all-organization-repository-rulesets + */ + "GET /orgs/{org}/rulesets": { + parameters: Endpoints["GET /orgs/{org}/rulesets"]["parameters"]; + response: Endpoints["GET /orgs/{org}/rulesets"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites + */ + "GET /orgs/{org}/rulesets/rule-suites": { + parameters: Endpoints["GET /orgs/{org}/rulesets/rule-suites"]["parameters"]; + response: Endpoints["GET /orgs/{org}/rulesets/rule-suites"]["response"]; + }; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-an-organization + */ + "GET /orgs/{org}/secret-scanning/alerts": { + parameters: Endpoints["GET /orgs/{org}/secret-scanning/alerts"]["parameters"]; + response: Endpoints["GET /orgs/{org}/secret-scanning/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories-for-an-organization + */ + "GET /orgs/{org}/security-advisories": { + parameters: Endpoints["GET /orgs/{org}/security-advisories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/security-advisories"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/teams#list-teams + */ + "GET /orgs/{org}/teams": { + parameters: Endpoints["GET /orgs/{org}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/discussions#list-discussions + */ + "GET /orgs/{org}/teams/{team_slug}/discussions": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/members#list-pending-team-invitations + */ + "GET /orgs/{org}/teams/{team_slug}/invitations": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/invitations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/members#list-team-members + */ + "GET /orgs/{org}/teams/{team_slug}/members": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/members"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/members"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-projects + */ + "GET /orgs/{org}/teams/{team_slug}/projects": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/projects"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-repositories + */ + "GET /orgs/{org}/teams/{team_slug}/repos": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/repos"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/teams#list-child-teams + */ + "GET /orgs/{org}/teams/{team_slug}/teams": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/projects/cards#list-project-cards + */ + "GET /projects/columns/{column_id}/cards": { + parameters: Endpoints["GET /projects/columns/{column_id}/cards"]["parameters"]; + response: Endpoints["GET /projects/columns/{column_id}/cards"]["response"]; + }; + /** + * @see https://docs.github.com/rest/projects/collaborators#list-project-collaborators + */ + "GET /projects/{project_id}/collaborators": { + parameters: Endpoints["GET /projects/{project_id}/collaborators"]["parameters"]; + response: Endpoints["GET /projects/{project_id}/collaborators"]["response"]; + }; + /** + * @see https://docs.github.com/rest/projects/columns#list-project-columns + */ + "GET /projects/{project_id}/columns": { + parameters: Endpoints["GET /projects/{project_id}/columns"]["parameters"]; + response: Endpoints["GET /projects/{project_id}/columns"]["response"]; + }; + /** + * @see https://docs.github.com/rest/actions/artifacts#list-artifacts-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/artifacts": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts"]["response"]["data"]["artifacts"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/cache#list-github-actions-caches-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/caches": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/caches"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/caches"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/caches"]["response"]["data"]["actions_caches"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/secrets#list-repository-organization-secrets + */ + "GET /repos/{owner}/{repo}/actions/organization-secrets": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/organization-secrets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/organization-secrets"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/organization-secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/variables#list-repository-organization-variables + */ + "GET /repos/{owner}/{repo}/actions/organization-variables": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/organization-variables"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/organization-variables"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/organization-variables"]["response"]["data"]["variables"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-self-hosted-runners-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runners"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runners"]["response"]["data"]["runners"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runs"]["response"]["data"]["workflow_runs"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/artifacts#list-workflow-run-artifacts + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"]["response"]["data"]["artifacts"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run-attempt + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"]["response"]["data"]["jobs"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"]["response"]["data"]["jobs"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/secrets#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/actions/secrets": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/secrets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/secrets"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/variables#list-repository-variables + */ + "GET /repos/{owner}/{repo}/actions/variables": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/variables"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/variables"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/variables"]["response"]["data"]["variables"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/workflows#list-repository-workflows + */ + "GET /repos/{owner}/{repo}/actions/workflows": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/workflows"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/workflows"]["response"]["data"]["workflows"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-workflow + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"]["response"]["data"]["workflow_runs"]; + }; + }; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-activities + */ + "GET /repos/{owner}/{repo}/activity": { + parameters: Endpoints["GET /repos/{owner}/{repo}/activity"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/activity"]["response"]; + }; + /** + * @see https://docs.github.com/rest/issues/assignees#list-assignees + */ + "GET /repos/{owner}/{repo}/assignees": { + parameters: Endpoints["GET /repos/{owner}/{repo}/assignees"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/assignees"]["response"]; + }; + /** + * @see https://docs.github.com/rest/branches/branches#list-branches + */ + "GET /repos/{owner}/{repo}/branches": { + parameters: Endpoints["GET /repos/{owner}/{repo}/branches"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches"]["response"]; + }; + /** + * @see https://docs.github.com/rest/checks/runs#list-check-run-annotations + */ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": { + parameters: Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/checks/runs#list-check-runs-in-a-check-suite + */ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"]["response"]["data"]["check_runs"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-code-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts": { + parameters: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-instances-of-a-code-scanning-alert + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": { + parameters: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"]["response"]; + }; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-analyses-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/analyses": { + parameters: Endpoints["GET /repos/{owner}/{repo}/code-scanning/analyses"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/analyses"]["response"]; + }; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#list-codespaces-in-a-repository-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces": { + parameters: Endpoints["GET /repos/{owner}/{repo}/codespaces"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/codespaces"]["response"]["data"]["codespaces"]; + }; + }; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#list-devcontainer-configurations-in-a-repository-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces/devcontainers": { + parameters: Endpoints["GET /repos/{owner}/{repo}/codespaces/devcontainers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces/devcontainers"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/codespaces/devcontainers"]["response"]["data"]["devcontainers"]; + }; + }; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/codespaces/secrets": { + parameters: Endpoints["GET /repos/{owner}/{repo}/codespaces/secrets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces/secrets"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/codespaces/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#list-repository-collaborators + */ + "GET /repos/{owner}/{repo}/collaborators": { + parameters: Endpoints["GET /repos/{owner}/{repo}/collaborators"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/collaborators"]["response"]; + }; + /** + * @see https://docs.github.com/rest/commits/comments#list-commit-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-commit-comment + */ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/commits/commits#list-commits + */ + "GET /repos/{owner}/{repo}/commits": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits"]["response"]; + }; + /** + * @see https://docs.github.com/rest/commits/comments#list-commit-comments + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/commits/commits#list-pull-requests-associated-with-a-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"]["response"]; + }; + /** + * @see https://docs.github.com/rest/checks/runs#list-check-runs-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"]["response"]["data"]["check_runs"]; + }; + }; + /** + * @see https://docs.github.com/rest/checks/suites#list-check-suites-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"]["response"]["data"]["check_suites"]; + }; + }; + /** + * @see https://docs.github.com/rest/commits/statuses#get-the-combined-status-for-a-specific-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/status": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/status"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/status"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/status"]["response"]["data"]["statuses"]; + }; + }; + /** + * @see https://docs.github.com/rest/commits/statuses#list-commit-statuses-for-a-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/statuses"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/statuses"]["response"]; + }; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-contributors + */ + "GET /repos/{owner}/{repo}/contributors": { + parameters: Endpoints["GET /repos/{owner}/{repo}/contributors"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/contributors"]["response"]; + }; + /** + * @see https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/dependabot/alerts": { + parameters: Endpoints["GET /repos/{owner}/{repo}/dependabot/alerts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/dependabot/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/dependabot/secrets#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/dependabot/secrets": { + parameters: Endpoints["GET /repos/{owner}/{repo}/dependabot/secrets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/dependabot/secrets"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/dependabot/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/deployments/deployments#list-deployments + */ + "GET /repos/{owner}/{repo}/deployments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/deployments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/deployments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/deployments/statuses#list-deployment-statuses + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses": { + parameters: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["response"]; + }; + /** + * @see https://docs.github.com/rest/deployments/environments#list-environments + */ + "GET /repos/{owner}/{repo}/environments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/environments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/environments"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/environments"]["response"]["data"]["environments"]; + }; + }; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#list-deployment-branch-policies + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": { + parameters: Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"]["response"]["data"]["branch_policies"]; + }; + }; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#list-custom-deployment-rule-integrations-available-for-an-environment + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps": { + parameters: Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"]["response"]["data"]["available_custom_deployment_protection_rule_integrations"]; + }; + }; + /** + * @see https://docs.github.com/rest/activity/events#list-repository-events + */ + "GET /repos/{owner}/{repo}/events": { + parameters: Endpoints["GET /repos/{owner}/{repo}/events"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/repos/forks#list-forks + */ + "GET /repos/{owner}/{repo}/forks": { + parameters: Endpoints["GET /repos/{owner}/{repo}/forks"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/forks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/repos/webhooks#list-repository-webhooks + */ + "GET /repos/{owner}/{repo}/hooks": { + parameters: Endpoints["GET /repos/{owner}/{repo}/hooks"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/hooks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/repos/webhooks#list-deliveries-for-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries": { + parameters: Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"]["response"]; + }; + /** + * @see https://docs.github.com/rest/collaborators/invitations#list-repository-invitations + */ + "GET /repos/{owner}/{repo}/invitations": { + parameters: Endpoints["GET /repos/{owner}/{repo}/invitations"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/issues/issues#list-repository-issues + */ + "GET /repos/{owner}/{repo}/issues": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues"]["response"]; + }; + /** + * @see https://docs.github.com/rest/issues/comments#list-issue-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue-comment + */ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/issues/events#list-issue-events-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/events": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/events"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/issues/comments#list-issue-comments + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/issues/events#list-issue-events + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/events": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/events"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/issues/labels#list-labels-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/issues/timeline#list-timeline-events-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"]["response"]; + }; + /** + * @see https://docs.github.com/rest/deploy-keys/deploy-keys#list-deploy-keys + */ + "GET /repos/{owner}/{repo}/keys": { + parameters: Endpoints["GET /repos/{owner}/{repo}/keys"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/issues/labels#list-labels-for-a-repository + */ + "GET /repos/{owner}/{repo}/labels": { + parameters: Endpoints["GET /repos/{owner}/{repo}/labels"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/labels"]["response"]; + }; + /** + * @see https://docs.github.com/rest/issues/milestones#list-milestones + */ + "GET /repos/{owner}/{repo}/milestones": { + parameters: Endpoints["GET /repos/{owner}/{repo}/milestones"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/milestones"]["response"]; + }; + /** + * @see https://docs.github.com/rest/issues/labels#list-labels-for-issues-in-a-milestone + */ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels": { + parameters: Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/notifications": { + parameters: Endpoints["GET /repos/{owner}/{repo}/notifications"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/notifications"]["response"]; + }; + /** + * @see https://docs.github.com/rest/pages/pages#list-apiname-pages-builds + */ + "GET /repos/{owner}/{repo}/pages/builds": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pages/builds"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pages/builds"]["response"]; + }; + /** + * @see https://docs.github.com/rest/projects/projects#list-repository-projects + */ + "GET /repos/{owner}/{repo}/projects": { + parameters: Endpoints["GET /repos/{owner}/{repo}/projects"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/rest/pulls/pulls#list-pull-requests + */ + "GET /repos/{owner}/{repo}/pulls": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls"]["response"]; + }; + /** + * @see https://docs.github.com/rest/pulls/comments#list-review-comments-in-a-repository + */ + "GET /repos/{owner}/{repo}/pulls/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-pull-request-review-comment + */ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/pulls/comments#list-review-comments-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/pulls/pulls#list-commits-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"]["response"]; + }; + /** + * @see https://docs.github.com/rest/pulls/pulls#list-pull-requests-files + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"]["response"]; + }; + /** + * @see https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["response"]; + }; + /** + * @see https://docs.github.com/rest/pulls/reviews#list-comments-for-a-pull-request-review + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/releases/releases#list-releases + */ + "GET /repos/{owner}/{repo}/releases": { + parameters: Endpoints["GET /repos/{owner}/{repo}/releases"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases"]["response"]; + }; + /** + * @see https://docs.github.com/rest/releases/assets#list-release-assets + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets": { + parameters: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/assets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/assets"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-release + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/repos/rules#get-rules-for-a-branch + */ + "GET /repos/{owner}/{repo}/rules/branches/{branch}": { + parameters: Endpoints["GET /repos/{owner}/{repo}/rules/branches/{branch}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/rules/branches/{branch}"]["response"]; + }; + /** + * @see https://docs.github.com/rest/repos/rules#get-all-repository-rulesets + */ + "GET /repos/{owner}/{repo}/rulesets": { + parameters: Endpoints["GET /repos/{owner}/{repo}/rulesets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/rulesets"]["response"]; + }; + /** + * @see https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites + */ + "GET /repos/{owner}/{repo}/rulesets/rule-suites": { + parameters: Endpoints["GET /repos/{owner}/{repo}/rulesets/rule-suites"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/rulesets/rule-suites"]["response"]; + }; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts": { + parameters: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-locations-for-a-secret-scanning-alert + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations": { + parameters: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories + */ + "GET /repos/{owner}/{repo}/security-advisories": { + parameters: Endpoints["GET /repos/{owner}/{repo}/security-advisories"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/security-advisories"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/starring#list-stargazers + */ + "GET /repos/{owner}/{repo}/stargazers": { + parameters: Endpoints["GET /repos/{owner}/{repo}/stargazers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/stargazers"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/watching#list-watchers + */ + "GET /repos/{owner}/{repo}/subscribers": { + parameters: Endpoints["GET /repos/{owner}/{repo}/subscribers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/subscribers"]["response"]; + }; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-tags + */ + "GET /repos/{owner}/{repo}/tags": { + parameters: Endpoints["GET /repos/{owner}/{repo}/tags"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/tags"]["response"]; + }; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-teams + */ + "GET /repos/{owner}/{repo}/teams": { + parameters: Endpoints["GET /repos/{owner}/{repo}/teams"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/repos/repos#get-all-repository-topics + */ + "GET /repos/{owner}/{repo}/topics": { + parameters: Endpoints["GET /repos/{owner}/{repo}/topics"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/topics"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/topics"]["response"]["data"]["names"]; + }; + }; + /** + * @see https://docs.github.com/rest/repos/repos#list-public-repositories + */ + "GET /repositories": { + parameters: Endpoints["GET /repositories"]["parameters"]; + response: Endpoints["GET /repositories"]["response"]; + }; + /** + * @see https://docs.github.com/rest/actions/secrets#list-environment-secrets + */ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets": { + parameters: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets"]["parameters"]; + response: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets"]["response"] & { + data: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/variables#list-environment-variables + */ + "GET /repositories/{repository_id}/environments/{environment_name}/variables": { + parameters: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/variables"]["parameters"]; + response: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/variables"]["response"] & { + data: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/variables"]["response"]["data"]["variables"]; + }; + }; + /** + * @see https://docs.github.com/rest/search/search#search-code + */ + "GET /search/code": { + parameters: Endpoints["GET /search/code"]["parameters"]; + response: Endpoints["GET /search/code"]["response"] & { + data: Endpoints["GET /search/code"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/search/search#search-commits + */ + "GET /search/commits": { + parameters: Endpoints["GET /search/commits"]["parameters"]; + response: Endpoints["GET /search/commits"]["response"] & { + data: Endpoints["GET /search/commits"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/search/search#search-issues-and-pull-requests + */ + "GET /search/issues": { + parameters: Endpoints["GET /search/issues"]["parameters"]; + response: Endpoints["GET /search/issues"]["response"] & { + data: Endpoints["GET /search/issues"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/search/search#search-labels + */ + "GET /search/labels": { + parameters: Endpoints["GET /search/labels"]["parameters"]; + response: Endpoints["GET /search/labels"]["response"] & { + data: Endpoints["GET /search/labels"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/search/search#search-repositories + */ + "GET /search/repositories": { + parameters: Endpoints["GET /search/repositories"]["parameters"]; + response: Endpoints["GET /search/repositories"]["response"] & { + data: Endpoints["GET /search/repositories"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/search/search#search-topics + */ + "GET /search/topics": { + parameters: Endpoints["GET /search/topics"]["parameters"]; + response: Endpoints["GET /search/topics"]["response"] & { + data: Endpoints["GET /search/topics"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/search/search#search-users + */ + "GET /search/users": { + parameters: Endpoints["GET /search/users"]["parameters"]; + response: Endpoints["GET /search/users"]["response"] & { + data: Endpoints["GET /search/users"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/teams/discussions#list-discussions-legacy + */ + "GET /teams/{team_id}/discussions": { + parameters: Endpoints["GET /teams/{team_id}/discussions"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/discussions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments": { + parameters: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/comments"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + parameters: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/reactions": { + parameters: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/reactions"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/members#list-pending-team-invitations-legacy + */ + "GET /teams/{team_id}/invitations": { + parameters: Endpoints["GET /teams/{team_id}/invitations"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/members#list-team-members-legacy + */ + "GET /teams/{team_id}/members": { + parameters: Endpoints["GET /teams/{team_id}/members"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/members"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-projects-legacy + */ + "GET /teams/{team_id}/projects": { + parameters: Endpoints["GET /teams/{team_id}/projects"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-repositories-legacy + */ + "GET /teams/{team_id}/repos": { + parameters: Endpoints["GET /teams/{team_id}/repos"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/teams#list-child-teams-legacy + */ + "GET /teams/{team_id}/teams": { + parameters: Endpoints["GET /teams/{team_id}/teams"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/blocking#list-users-blocked-by-the-authenticated-user + */ + "GET /user/blocks": { + parameters: Endpoints["GET /user/blocks"]["parameters"]; + response: Endpoints["GET /user/blocks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#list-codespaces-for-the-authenticated-user + */ + "GET /user/codespaces": { + parameters: Endpoints["GET /user/codespaces"]["parameters"]; + response: Endpoints["GET /user/codespaces"]["response"] & { + data: Endpoints["GET /user/codespaces"]["response"]["data"]["codespaces"]; + }; + }; + /** + * @see https://docs.github.com/rest/codespaces/secrets#list-secrets-for-the-authenticated-user + */ + "GET /user/codespaces/secrets": { + parameters: Endpoints["GET /user/codespaces/secrets"]["parameters"]; + response: Endpoints["GET /user/codespaces/secrets"]["response"] & { + data: Endpoints["GET /user/codespaces/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/users/emails#list-email-addresses-for-the-authenticated-user + */ + "GET /user/emails": { + parameters: Endpoints["GET /user/emails"]["parameters"]; + response: Endpoints["GET /user/emails"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/followers#list-followers-of-the-authenticated-user + */ + "GET /user/followers": { + parameters: Endpoints["GET /user/followers"]["parameters"]; + response: Endpoints["GET /user/followers"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/followers#list-the-people-the-authenticated-user-follows + */ + "GET /user/following": { + parameters: Endpoints["GET /user/following"]["parameters"]; + response: Endpoints["GET /user/following"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-the-authenticated-user + */ + "GET /user/gpg_keys": { + parameters: Endpoints["GET /user/gpg_keys"]["parameters"]; + response: Endpoints["GET /user/gpg_keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/apps/installations#list-app-installations-accessible-to-the-user-access-token + */ + "GET /user/installations": { + parameters: Endpoints["GET /user/installations"]["parameters"]; + response: Endpoints["GET /user/installations"]["response"] & { + data: Endpoints["GET /user/installations"]["response"]["data"]["installations"]; + }; + }; + /** + * @see https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-user-access-token + */ + "GET /user/installations/{installation_id}/repositories": { + parameters: Endpoints["GET /user/installations/{installation_id}/repositories"]["parameters"]; + response: Endpoints["GET /user/installations/{installation_id}/repositories"]["response"] & { + data: Endpoints["GET /user/installations/{installation_id}/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/issues/issues#list-user-account-issues-assigned-to-the-authenticated-user + */ + "GET /user/issues": { + parameters: Endpoints["GET /user/issues"]["parameters"]; + response: Endpoints["GET /user/issues"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/keys#list-public-ssh-keys-for-the-authenticated-user + */ + "GET /user/keys": { + parameters: Endpoints["GET /user/keys"]["parameters"]; + response: Endpoints["GET /user/keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user + */ + "GET /user/marketplace_purchases": { + parameters: Endpoints["GET /user/marketplace_purchases"]["parameters"]; + response: Endpoints["GET /user/marketplace_purchases"]["response"]; + }; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user-stubbed + */ + "GET /user/marketplace_purchases/stubbed": { + parameters: Endpoints["GET /user/marketplace_purchases/stubbed"]["parameters"]; + response: Endpoints["GET /user/marketplace_purchases/stubbed"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/members#list-organization-memberships-for-the-authenticated-user + */ + "GET /user/memberships/orgs": { + parameters: Endpoints["GET /user/memberships/orgs"]["parameters"]; + response: Endpoints["GET /user/memberships/orgs"]["response"]; + }; + /** + * @see https://docs.github.com/rest/migrations/users#list-user-migrations + */ + "GET /user/migrations": { + parameters: Endpoints["GET /user/migrations"]["parameters"]; + response: Endpoints["GET /user/migrations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/migrations/users#list-repositories-for-a-user-migration + */ + "GET /user/migrations/{migration_id}/repositories": { + parameters: Endpoints["GET /user/migrations/{migration_id}/repositories"]["parameters"]; + response: Endpoints["GET /user/migrations/{migration_id}/repositories"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user + */ + "GET /user/orgs": { + parameters: Endpoints["GET /user/orgs"]["parameters"]; + response: Endpoints["GET /user/orgs"]["response"]; + }; + /** + * @see https://docs.github.com/rest/packages/packages#list-packages-for-the-authenticated-users-namespace + */ + "GET /user/packages": { + parameters: Endpoints["GET /user/packages"]["parameters"]; + response: Endpoints["GET /user/packages"]["response"]; + }; + /** + * @see https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}/versions": { + parameters: Endpoints["GET /user/packages/{package_type}/{package_name}/versions"]["parameters"]; + response: Endpoints["GET /user/packages/{package_type}/{package_name}/versions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/emails#list-public-email-addresses-for-the-authenticated-user + */ + "GET /user/public_emails": { + parameters: Endpoints["GET /user/public_emails"]["parameters"]; + response: Endpoints["GET /user/public_emails"]["response"]; + }; + /** + * @see https://docs.github.com/rest/repos/repos#list-repositories-for-the-authenticated-user + */ + "GET /user/repos": { + parameters: Endpoints["GET /user/repos"]["parameters"]; + response: Endpoints["GET /user/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/collaborators/invitations#list-repository-invitations-for-the-authenticated-user + */ + "GET /user/repository_invitations": { + parameters: Endpoints["GET /user/repository_invitations"]["parameters"]; + response: Endpoints["GET /user/repository_invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-the-authenticated-user + */ + "GET /user/social_accounts": { + parameters: Endpoints["GET /user/social_accounts"]["parameters"]; + response: Endpoints["GET /user/social_accounts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-the-authenticated-user + */ + "GET /user/ssh_signing_keys": { + parameters: Endpoints["GET /user/ssh_signing_keys"]["parameters"]; + response: Endpoints["GET /user/ssh_signing_keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/starring#list-repositories-starred-by-the-authenticated-user + */ + "GET /user/starred": { + parameters: Endpoints["GET /user/starred"]["parameters"]; + response: Endpoints["GET /user/starred"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/watching#list-repositories-watched-by-the-authenticated-user + */ + "GET /user/subscriptions": { + parameters: Endpoints["GET /user/subscriptions"]["parameters"]; + response: Endpoints["GET /user/subscriptions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/teams/teams#list-teams-for-the-authenticated-user + */ + "GET /user/teams": { + parameters: Endpoints["GET /user/teams"]["parameters"]; + response: Endpoints["GET /user/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/users#list-users + */ + "GET /users": { + parameters: Endpoints["GET /users"]["parameters"]; + response: Endpoints["GET /users"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/events#list-events-for-the-authenticated-user + */ + "GET /users/{username}/events": { + parameters: Endpoints["GET /users/{username}/events"]["parameters"]; + response: Endpoints["GET /users/{username}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/events#list-organization-events-for-the-authenticated-user + */ + "GET /users/{username}/events/orgs/{org}": { + parameters: Endpoints["GET /users/{username}/events/orgs/{org}"]["parameters"]; + response: Endpoints["GET /users/{username}/events/orgs/{org}"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events-for-a-user + */ + "GET /users/{username}/events/public": { + parameters: Endpoints["GET /users/{username}/events/public"]["parameters"]; + response: Endpoints["GET /users/{username}/events/public"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/followers#list-followers-of-a-user + */ + "GET /users/{username}/followers": { + parameters: Endpoints["GET /users/{username}/followers"]["parameters"]; + response: Endpoints["GET /users/{username}/followers"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/followers#list-the-people-a-user-follows + */ + "GET /users/{username}/following": { + parameters: Endpoints["GET /users/{username}/following"]["parameters"]; + response: Endpoints["GET /users/{username}/following"]["response"]; + }; + /** + * @see https://docs.github.com/rest/gists/gists#list-gists-for-a-user + */ + "GET /users/{username}/gists": { + parameters: Endpoints["GET /users/{username}/gists"]["parameters"]; + response: Endpoints["GET /users/{username}/gists"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-a-user + */ + "GET /users/{username}/gpg_keys": { + parameters: Endpoints["GET /users/{username}/gpg_keys"]["parameters"]; + response: Endpoints["GET /users/{username}/gpg_keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/keys#list-public-keys-for-a-user + */ + "GET /users/{username}/keys": { + parameters: Endpoints["GET /users/{username}/keys"]["parameters"]; + response: Endpoints["GET /users/{username}/keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-organizations-for-a-user + */ + "GET /users/{username}/orgs": { + parameters: Endpoints["GET /users/{username}/orgs"]["parameters"]; + response: Endpoints["GET /users/{username}/orgs"]["response"]; + }; + /** + * @see https://docs.github.com/rest/packages/packages#list-packages-for-a-user + */ + "GET /users/{username}/packages": { + parameters: Endpoints["GET /users/{username}/packages"]["parameters"]; + response: Endpoints["GET /users/{username}/packages"]["response"]; + }; + /** + * @see https://docs.github.com/rest/projects/projects#list-user-projects + */ + "GET /users/{username}/projects": { + parameters: Endpoints["GET /users/{username}/projects"]["parameters"]; + response: Endpoints["GET /users/{username}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/events#list-events-received-by-the-authenticated-user + */ + "GET /users/{username}/received_events": { + parameters: Endpoints["GET /users/{username}/received_events"]["parameters"]; + response: Endpoints["GET /users/{username}/received_events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events-received-by-a-user + */ + "GET /users/{username}/received_events/public": { + parameters: Endpoints["GET /users/{username}/received_events/public"]["parameters"]; + response: Endpoints["GET /users/{username}/received_events/public"]["response"]; + }; + /** + * @see https://docs.github.com/rest/repos/repos#list-repositories-for-a-user + */ + "GET /users/{username}/repos": { + parameters: Endpoints["GET /users/{username}/repos"]["parameters"]; + response: Endpoints["GET /users/{username}/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-a-user + */ + "GET /users/{username}/social_accounts": { + parameters: Endpoints["GET /users/{username}/social_accounts"]["parameters"]; + response: Endpoints["GET /users/{username}/social_accounts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-a-user + */ + "GET /users/{username}/ssh_signing_keys": { + parameters: Endpoints["GET /users/{username}/ssh_signing_keys"]["parameters"]; + response: Endpoints["GET /users/{username}/ssh_signing_keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/starring#list-repositories-starred-by-a-user + */ + "GET /users/{username}/starred": { + parameters: Endpoints["GET /users/{username}/starred"]["parameters"]; + response: Endpoints["GET /users/{username}/starred"]["response"]; + }; + /** + * @see https://docs.github.com/rest/activity/watching#list-repositories-watched-by-a-user + */ + "GET /users/{username}/subscriptions": { + parameters: Endpoints["GET /users/{username}/subscriptions"]["parameters"]; + response: Endpoints["GET /users/{username}/subscriptions"]["response"]; + }; +} +export declare const paginatingEndpoints: (keyof PaginatingEndpoints)[]; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/index.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/index.d.ts new file mode 100644 index 000000000..4a5c6a715 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/index.d.ts @@ -0,0 +1,15 @@ +import type { Octokit } from "@octokit/core"; +import type { PaginateInterface } from "./types.js"; +export type { PaginateInterface, PaginatingEndpoints } from "./types.js"; +export { composePaginateRest } from "./compose-paginate.js"; +export { isPaginatingEndpoint, paginatingEndpoints, } from "./paginating-endpoints.js"; +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ +export declare function paginateRest(octokit: Octokit): { + paginate: PaginateInterface; +}; +export declare namespace paginateRest { + var VERSION: string; +} diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/iterator.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/iterator.d.ts new file mode 100644 index 000000000..70f2fbfa0 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/iterator.d.ts @@ -0,0 +1,20 @@ +import type { Octokit } from "@octokit/core"; +import type { RequestInterface, RequestParameters, Route } from "./types.js"; +export declare function iterator(octokit: Octokit, route: Route | RequestInterface, parameters?: RequestParameters): { + [Symbol.asyncIterator]: () => { + next(): Promise<{ + done: boolean; + value?: undefined; + } | { + value: import("@octokit/types/dist-types/OctokitResponse.js").OctokitResponse; + done?: undefined; + } | { + value: { + status: number; + headers: {}; + data: never[]; + }; + done?: undefined; + }>; + }; +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/normalize-paginated-list-response.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/normalize-paginated-list-response.d.ts new file mode 100644 index 000000000..4b15bf004 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/normalize-paginated-list-response.d.ts @@ -0,0 +1,18 @@ +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +import type { OctokitResponse } from "./types.js"; +export declare function normalizePaginatedListResponse(response: OctokitResponse): OctokitResponse; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/paginate.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/paginate.d.ts new file mode 100644 index 000000000..7ccd3deac --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/paginate.d.ts @@ -0,0 +1,3 @@ +import type { Octokit } from "@octokit/core"; +import type { MapFunction, PaginationResults, RequestParameters, Route, RequestInterface } from "./types"; +export declare function paginate(octokit: Octokit, route: Route | RequestInterface, parameters?: RequestParameters, mapFn?: MapFunction): Promise; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/paginating-endpoints.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/paginating-endpoints.d.ts new file mode 100644 index 000000000..22cd65d88 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/paginating-endpoints.d.ts @@ -0,0 +1,3 @@ +import { type PaginatingEndpoints } from "./generated/paginating-endpoints.js"; +export { paginatingEndpoints } from "./generated/paginating-endpoints.js"; +export declare function isPaginatingEndpoint(arg: unknown): arg is keyof PaginatingEndpoints; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/types.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/types.d.ts new file mode 100644 index 000000000..405a6bbc8 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/types.d.ts @@ -0,0 +1,242 @@ +import { Octokit } from "@octokit/core"; +import * as OctokitTypes from "@octokit/types"; +export type { EndpointOptions, RequestInterface, OctokitResponse, RequestParameters, Route, } from "@octokit/types"; +export type { PaginatingEndpoints } from "./generated/paginating-endpoints.js"; +import type { PaginatingEndpoints } from "./generated/paginating-endpoints.js"; +type KnownKeys = Extract<{ + [K in keyof T]: string extends K ? never : number extends K ? never : K; +} extends { + [_ in keyof T]: infer U; +} ? U : never, keyof T>; +type KeysMatching = { + [K in keyof T]: T[K] extends V ? K : never; +}[keyof T]; +type KnownKeysMatching = KeysMatching>, V>; +type GetResultsType = T extends { + data: any[]; +} ? T["data"] : T extends { + data: object; +} ? T["data"][KnownKeysMatching] : never; +type NormalizeResponse = T & { + data: GetResultsType; +}; +type DataType = "data" extends keyof T ? T["data"] : unknown; +export interface MapFunction>, M = unknown[]> { + (response: T, done: () => void): M; +} +export type PaginationResults = T[]; +export interface PaginateInterface { + /** + * Paginate a request using endpoint options and map each response to a custom array + * + * @param {object} options Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + * @param {function} mapFn Optional method to map each response to a custom array + */ + (options: OctokitTypes.EndpointOptions, mapFn: MapFunction>, M[]>): Promise>; + /** + * Paginate a request using endpoint options + * + * @param {object} options Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (options: OctokitTypes.EndpointOptions): Promise>; + /** + * Paginate a request using a known endpoint route string and map each response to a custom array + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {function} mapFn Optional method to map each response to a custom array + */ + (route: R, mapFn: MapFunction): Promise; + /** + * Paginate a request using a known endpoint route string and parameters, and map each response to a custom array + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + * @param {function} mapFn Optional method to map each response to a custom array + */ + (route: R, parameters: PaginatingEndpoints[R]["parameters"], mapFn: MapFunction): Promise; + /** + * Paginate a request using an known endpoint route string + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (route: R, parameters?: PaginatingEndpoints[R]["parameters"]): Promise>; + /** + * Paginate a request using an unknown endpoint route string + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (route: R, parameters?: R extends keyof PaginatingEndpoints ? PaginatingEndpoints[R]["parameters"] : OctokitTypes.RequestParameters): Promise; + /** + * Paginate a request using an endpoint method and a map function + * + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {function} mapFn? Optional method to map each response to a custom array + */ + (request: R, mapFn: MapFunction>, M>): Promise; + /** + * Paginate a request using an endpoint method, parameters, and a map function + * + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {object} parameters URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + * @param {function} mapFn? Optional method to map each response to a custom array + */ + (request: R, parameters: Parameters[0], mapFn: MapFunction>, M>): Promise; + /** + * Paginate a request using an endpoint method and parameters + * + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (request: R, parameters?: Parameters[0]): Promise>["data"]>; + iterator: { + /** + * Get an async iterator to paginate a request using endpoint options + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * @param {object} options Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (options: OctokitTypes.EndpointOptions): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using a known endpoint route string and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (route: R, parameters?: PaginatingEndpoints[R]["parameters"]): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using an unknown endpoint route string and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (route: R, parameters?: R extends keyof PaginatingEndpoints ? PaginatingEndpoints[R]["parameters"] : OctokitTypes.RequestParameters): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using a request method and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * @param {string} request `@octokit/request` or `octokit.request` method + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (request: R, parameters?: Parameters[0]): AsyncIterableIterator>>; + }; +} +export interface ComposePaginateInterface { + /** + * Paginate a request using endpoint options and map each response to a custom array + * + * @param {object} octokit Octokit instance + * @param {object} options Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + * @param {function} mapFn Optional method to map each response to a custom array + */ + (octokit: Octokit, options: OctokitTypes.EndpointOptions, mapFn: MapFunction>, M[]>): Promise>; + /** + * Paginate a request using endpoint options + * + * @param {object} octokit Octokit instance + * @param {object} options Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (octokit: Octokit, options: OctokitTypes.EndpointOptions): Promise>; + /** + * Paginate a request using a known endpoint route string and map each response to a custom array + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {function} mapFn Optional method to map each response to a custom array + */ + (octokit: Octokit, route: R, mapFn: MapFunction): Promise; + /** + * Paginate a request using a known endpoint route string and parameters, and map each response to a custom array + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + * @param {function} mapFn Optional method to map each response to a custom array + */ + (octokit: Octokit, route: R, parameters: PaginatingEndpoints[R]["parameters"], mapFn: MapFunction): Promise; + /** + * Paginate a request using an known endpoint route string + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (octokit: Octokit, route: R, parameters?: PaginatingEndpoints[R]["parameters"]): Promise>; + /** + * Paginate a request using an unknown endpoint route string + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (octokit: Octokit, route: R, parameters?: R extends keyof PaginatingEndpoints ? PaginatingEndpoints[R]["parameters"] : OctokitTypes.RequestParameters): Promise; + /** + * Paginate a request using an endpoint method and a map function + * + * @param {object} octokit Octokit instance + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {function} mapFn? Optional method to map each response to a custom array + */ + (octokit: Octokit, request: R, mapFn: MapFunction>, M>): Promise; + /** + * Paginate a request using an endpoint method, parameters, and a map function + * + * @param {object} octokit Octokit instance + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {object} parameters URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + * @param {function} mapFn? Optional method to map each response to a custom array + */ + (octokit: Octokit, request: R, parameters: Parameters[0], mapFn: MapFunction>, M>): Promise; + /** + * Paginate a request using an endpoint method and parameters + * + * @param {object} octokit Octokit instance + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (octokit: Octokit, request: R, parameters?: Parameters[0]): Promise>["data"]>; + iterator: { + /** + * Get an async iterator to paginate a request using endpoint options + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * + * @param {object} octokit Octokit instance + * @param {object} options Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (octokit: Octokit, options: OctokitTypes.EndpointOptions): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using a known endpoint route string and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (octokit: Octokit, route: R, parameters?: PaginatingEndpoints[R]["parameters"]): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using an unknown endpoint route string and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (octokit: Octokit, route: R, parameters?: R extends keyof PaginatingEndpoints ? PaginatingEndpoints[R]["parameters"] : OctokitTypes.RequestParameters): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using a request method and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * + * @param {object} octokit Octokit instance + * @param {string} request `@octokit/request` or `octokit.request` method + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.format`, `request`, or `baseUrl`. + */ + (octokit: Octokit, request: R, parameters?: Parameters[0]): AsyncIterableIterator>>; + }; +} diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/version.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/version.d.ts new file mode 100644 index 000000000..21d31abf3 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "9.2.1"; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js b/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js new file mode 100644 index 000000000..af4972087 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js @@ -0,0 +1,368 @@ +// pkg/dist-src/version.js +var VERSION = "9.2.1"; + +// pkg/dist-src/normalize-paginated-list-response.js +function normalizePaginatedListResponse(response) { + if (!response.data) { + return { + ...response, + data: [] + }; + } + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) + return response; + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + response.data.total_count = totalCount; + return response; +} + +// pkg/dist-src/iterator.js +function iterator(octokit, route, parameters) { + const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) + return { done: true }; + try { + const response = await requestMethod({ method, url, headers }); + const normalizedResponse = normalizePaginatedListResponse(response); + url = ((normalizedResponse.headers.link || "").match( + /<([^>]+)>;\s*rel="next"/ + ) || [])[1]; + return { value: normalizedResponse }; + } catch (error) { + if (error.status !== 409) + throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [] + } + }; + } + } + }) + }; +} + +// pkg/dist-src/paginate.js +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = void 0; + } + return gather( + octokit, + [], + iterator(octokit, route, parameters)[Symbol.asyncIterator](), + mapFn + ); +} +function gather(octokit, results, iterator2, mapFn) { + return iterator2.next().then((result) => { + if (result.done) { + return results; + } + let earlyExit = false; + function done() { + earlyExit = true; + } + results = results.concat( + mapFn ? mapFn(result.value, done) : result.value.data + ); + if (earlyExit) { + return results; + } + return gather(octokit, results, iterator2, mapFn); + }); +} + +// pkg/dist-src/compose-paginate.js +var composePaginateRest = Object.assign(paginate, { + iterator +}); + +// pkg/dist-src/generated/paginating-endpoints.js +var paginatingEndpoints = [ + "GET /advisories", + "GET /app/hook/deliveries", + "GET /app/installation-requests", + "GET /app/installations", + "GET /assignments/{assignment_id}/accepted_assignments", + "GET /classrooms", + "GET /classrooms/{classroom_id}/assignments", + "GET /enterprises/{enterprise}/dependabot/alerts", + "GET /enterprises/{enterprise}/secret-scanning/alerts", + "GET /events", + "GET /gists", + "GET /gists/public", + "GET /gists/starred", + "GET /gists/{gist_id}/comments", + "GET /gists/{gist_id}/commits", + "GET /gists/{gist_id}/forks", + "GET /installation/repositories", + "GET /issues", + "GET /licenses", + "GET /marketplace_listing/plans", + "GET /marketplace_listing/plans/{plan_id}/accounts", + "GET /marketplace_listing/stubbed/plans", + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", + "GET /networks/{owner}/{repo}/events", + "GET /notifications", + "GET /organizations", + "GET /orgs/{org}/actions/cache/usage-by-repository", + "GET /orgs/{org}/actions/permissions/repositories", + "GET /orgs/{org}/actions/runners", + "GET /orgs/{org}/actions/secrets", + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", + "GET /orgs/{org}/actions/variables", + "GET /orgs/{org}/actions/variables/{name}/repositories", + "GET /orgs/{org}/blocks", + "GET /orgs/{org}/code-scanning/alerts", + "GET /orgs/{org}/codespaces", + "GET /orgs/{org}/codespaces/secrets", + "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories", + "GET /orgs/{org}/copilot/billing/seats", + "GET /orgs/{org}/dependabot/alerts", + "GET /orgs/{org}/dependabot/secrets", + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories", + "GET /orgs/{org}/events", + "GET /orgs/{org}/failed_invitations", + "GET /orgs/{org}/hooks", + "GET /orgs/{org}/hooks/{hook_id}/deliveries", + "GET /orgs/{org}/installations", + "GET /orgs/{org}/invitations", + "GET /orgs/{org}/invitations/{invitation_id}/teams", + "GET /orgs/{org}/issues", + "GET /orgs/{org}/members", + "GET /orgs/{org}/members/{username}/codespaces", + "GET /orgs/{org}/migrations", + "GET /orgs/{org}/migrations/{migration_id}/repositories", + "GET /orgs/{org}/organization-roles/{role_id}/teams", + "GET /orgs/{org}/organization-roles/{role_id}/users", + "GET /orgs/{org}/outside_collaborators", + "GET /orgs/{org}/packages", + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + "GET /orgs/{org}/personal-access-token-requests", + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories", + "GET /orgs/{org}/personal-access-tokens", + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories", + "GET /orgs/{org}/projects", + "GET /orgs/{org}/properties/values", + "GET /orgs/{org}/public_members", + "GET /orgs/{org}/repos", + "GET /orgs/{org}/rulesets", + "GET /orgs/{org}/rulesets/rule-suites", + "GET /orgs/{org}/secret-scanning/alerts", + "GET /orgs/{org}/security-advisories", + "GET /orgs/{org}/teams", + "GET /orgs/{org}/teams/{team_slug}/discussions", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + "GET /orgs/{org}/teams/{team_slug}/invitations", + "GET /orgs/{org}/teams/{team_slug}/members", + "GET /orgs/{org}/teams/{team_slug}/projects", + "GET /orgs/{org}/teams/{team_slug}/repos", + "GET /orgs/{org}/teams/{team_slug}/teams", + "GET /projects/columns/{column_id}/cards", + "GET /projects/{project_id}/collaborators", + "GET /projects/{project_id}/columns", + "GET /repos/{owner}/{repo}/actions/artifacts", + "GET /repos/{owner}/{repo}/actions/caches", + "GET /repos/{owner}/{repo}/actions/organization-secrets", + "GET /repos/{owner}/{repo}/actions/organization-variables", + "GET /repos/{owner}/{repo}/actions/runners", + "GET /repos/{owner}/{repo}/actions/runs", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", + "GET /repos/{owner}/{repo}/actions/secrets", + "GET /repos/{owner}/{repo}/actions/variables", + "GET /repos/{owner}/{repo}/actions/workflows", + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", + "GET /repos/{owner}/{repo}/activity", + "GET /repos/{owner}/{repo}/assignees", + "GET /repos/{owner}/{repo}/branches", + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", + "GET /repos/{owner}/{repo}/code-scanning/alerts", + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + "GET /repos/{owner}/{repo}/code-scanning/analyses", + "GET /repos/{owner}/{repo}/codespaces", + "GET /repos/{owner}/{repo}/codespaces/devcontainers", + "GET /repos/{owner}/{repo}/codespaces/secrets", + "GET /repos/{owner}/{repo}/collaborators", + "GET /repos/{owner}/{repo}/comments", + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/commits", + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", + "GET /repos/{owner}/{repo}/commits/{ref}/status", + "GET /repos/{owner}/{repo}/commits/{ref}/statuses", + "GET /repos/{owner}/{repo}/contributors", + "GET /repos/{owner}/{repo}/dependabot/alerts", + "GET /repos/{owner}/{repo}/dependabot/secrets", + "GET /repos/{owner}/{repo}/deployments", + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + "GET /repos/{owner}/{repo}/environments", + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies", + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps", + "GET /repos/{owner}/{repo}/events", + "GET /repos/{owner}/{repo}/forks", + "GET /repos/{owner}/{repo}/hooks", + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", + "GET /repos/{owner}/{repo}/invitations", + "GET /repos/{owner}/{repo}/issues", + "GET /repos/{owner}/{repo}/issues/comments", + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/issues/events", + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", + "GET /repos/{owner}/{repo}/issues/{issue_number}/events", + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", + "GET /repos/{owner}/{repo}/keys", + "GET /repos/{owner}/{repo}/labels", + "GET /repos/{owner}/{repo}/milestones", + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", + "GET /repos/{owner}/{repo}/notifications", + "GET /repos/{owner}/{repo}/pages/builds", + "GET /repos/{owner}/{repo}/projects", + "GET /repos/{owner}/{repo}/pulls", + "GET /repos/{owner}/{repo}/pulls/comments", + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", + "GET /repos/{owner}/{repo}/releases", + "GET /repos/{owner}/{repo}/releases/{release_id}/assets", + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions", + "GET /repos/{owner}/{repo}/rules/branches/{branch}", + "GET /repos/{owner}/{repo}/rulesets", + "GET /repos/{owner}/{repo}/rulesets/rule-suites", + "GET /repos/{owner}/{repo}/secret-scanning/alerts", + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", + "GET /repos/{owner}/{repo}/security-advisories", + "GET /repos/{owner}/{repo}/stargazers", + "GET /repos/{owner}/{repo}/subscribers", + "GET /repos/{owner}/{repo}/tags", + "GET /repos/{owner}/{repo}/teams", + "GET /repos/{owner}/{repo}/topics", + "GET /repositories", + "GET /repositories/{repository_id}/environments/{environment_name}/secrets", + "GET /repositories/{repository_id}/environments/{environment_name}/variables", + "GET /search/code", + "GET /search/commits", + "GET /search/issues", + "GET /search/labels", + "GET /search/repositories", + "GET /search/topics", + "GET /search/users", + "GET /teams/{team_id}/discussions", + "GET /teams/{team_id}/discussions/{discussion_number}/comments", + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "GET /teams/{team_id}/discussions/{discussion_number}/reactions", + "GET /teams/{team_id}/invitations", + "GET /teams/{team_id}/members", + "GET /teams/{team_id}/projects", + "GET /teams/{team_id}/repos", + "GET /teams/{team_id}/teams", + "GET /user/blocks", + "GET /user/codespaces", + "GET /user/codespaces/secrets", + "GET /user/emails", + "GET /user/followers", + "GET /user/following", + "GET /user/gpg_keys", + "GET /user/installations", + "GET /user/installations/{installation_id}/repositories", + "GET /user/issues", + "GET /user/keys", + "GET /user/marketplace_purchases", + "GET /user/marketplace_purchases/stubbed", + "GET /user/memberships/orgs", + "GET /user/migrations", + "GET /user/migrations/{migration_id}/repositories", + "GET /user/orgs", + "GET /user/packages", + "GET /user/packages/{package_type}/{package_name}/versions", + "GET /user/public_emails", + "GET /user/repos", + "GET /user/repository_invitations", + "GET /user/social_accounts", + "GET /user/ssh_signing_keys", + "GET /user/starred", + "GET /user/subscriptions", + "GET /user/teams", + "GET /users", + "GET /users/{username}/events", + "GET /users/{username}/events/orgs/{org}", + "GET /users/{username}/events/public", + "GET /users/{username}/followers", + "GET /users/{username}/following", + "GET /users/{username}/gists", + "GET /users/{username}/gpg_keys", + "GET /users/{username}/keys", + "GET /users/{username}/orgs", + "GET /users/{username}/packages", + "GET /users/{username}/projects", + "GET /users/{username}/received_events", + "GET /users/{username}/received_events/public", + "GET /users/{username}/repos", + "GET /users/{username}/social_accounts", + "GET /users/{username}/ssh_signing_keys", + "GET /users/{username}/starred", + "GET /users/{username}/subscriptions" +]; + +// pkg/dist-src/paginating-endpoints.js +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } +} + +// pkg/dist-src/index.js +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; +export { + composePaginateRest, + isPaginatingEndpoint, + paginateRest, + paginatingEndpoints +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js.map b/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js.map new file mode 100644 index 000000000..f31445d76 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/version.js", "../dist-src/normalize-paginated-list-response.js", "../dist-src/iterator.js", "../dist-src/paginate.js", "../dist-src/compose-paginate.js", "../dist-src/generated/paginating-endpoints.js", "../dist-src/paginating-endpoints.js", "../dist-src/index.js"], + "sourcesContent": ["const VERSION = \"9.2.1\";\nexport {\n VERSION\n};\n", "function normalizePaginatedListResponse(response) {\n if (!response.data) {\n return {\n ...response,\n data: []\n };\n }\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization)\n return response;\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n response.data.total_count = totalCount;\n return response;\n}\nexport {\n normalizePaginatedListResponse\n};\n", "import { normalizePaginatedListResponse } from \"./normalize-paginated-list-response.js\";\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url)\n return { done: true };\n try {\n const response = await requestMethod({ method, url, headers });\n const normalizedResponse = normalizePaginatedListResponse(response);\n url = ((normalizedResponse.headers.link || \"\").match(\n /<([^>]+)>;\\s*rel=\"next\"/\n ) || [])[1];\n return { value: normalizedResponse };\n } catch (error) {\n if (error.status !== 409)\n throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n })\n };\n}\nexport {\n iterator\n};\n", "import { iterator } from \"./iterator.js\";\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = void 0;\n }\n return gather(\n octokit,\n [],\n iterator(octokit, route, parameters)[Symbol.asyncIterator](),\n mapFn\n );\n}\nfunction gather(octokit, results, iterator2, mapFn) {\n return iterator2.next().then((result) => {\n if (result.done) {\n return results;\n }\n let earlyExit = false;\n function done() {\n earlyExit = true;\n }\n results = results.concat(\n mapFn ? mapFn(result.value, done) : result.value.data\n );\n if (earlyExit) {\n return results;\n }\n return gather(octokit, results, iterator2, mapFn);\n });\n}\nexport {\n paginate\n};\n", "import { paginate } from \"./paginate.js\";\nimport { iterator } from \"./iterator.js\";\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\nexport {\n composePaginateRest\n};\n", "const paginatingEndpoints = [\n \"GET /advisories\",\n \"GET /app/hook/deliveries\",\n \"GET /app/installation-requests\",\n \"GET /app/installations\",\n \"GET /assignments/{assignment_id}/accepted_assignments\",\n \"GET /classrooms\",\n \"GET /classrooms/{classroom_id}/assignments\",\n \"GET /enterprises/{enterprise}/dependabot/alerts\",\n \"GET /enterprises/{enterprise}/secret-scanning/alerts\",\n \"GET /events\",\n \"GET /gists\",\n \"GET /gists/public\",\n \"GET /gists/starred\",\n \"GET /gists/{gist_id}/comments\",\n \"GET /gists/{gist_id}/commits\",\n \"GET /gists/{gist_id}/forks\",\n \"GET /installation/repositories\",\n \"GET /issues\",\n \"GET /licenses\",\n \"GET /marketplace_listing/plans\",\n \"GET /marketplace_listing/plans/{plan_id}/accounts\",\n \"GET /marketplace_listing/stubbed/plans\",\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n \"GET /networks/{owner}/{repo}/events\",\n \"GET /notifications\",\n \"GET /organizations\",\n \"GET /orgs/{org}/actions/cache/usage-by-repository\",\n \"GET /orgs/{org}/actions/permissions/repositories\",\n \"GET /orgs/{org}/actions/runners\",\n \"GET /orgs/{org}/actions/secrets\",\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/actions/variables\",\n \"GET /orgs/{org}/actions/variables/{name}/repositories\",\n \"GET /orgs/{org}/blocks\",\n \"GET /orgs/{org}/code-scanning/alerts\",\n \"GET /orgs/{org}/codespaces\",\n \"GET /orgs/{org}/codespaces/secrets\",\n \"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/copilot/billing/seats\",\n \"GET /orgs/{org}/dependabot/alerts\",\n \"GET /orgs/{org}/dependabot/secrets\",\n \"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/events\",\n \"GET /orgs/{org}/failed_invitations\",\n \"GET /orgs/{org}/hooks\",\n \"GET /orgs/{org}/hooks/{hook_id}/deliveries\",\n \"GET /orgs/{org}/installations\",\n \"GET /orgs/{org}/invitations\",\n \"GET /orgs/{org}/invitations/{invitation_id}/teams\",\n \"GET /orgs/{org}/issues\",\n \"GET /orgs/{org}/members\",\n \"GET /orgs/{org}/members/{username}/codespaces\",\n \"GET /orgs/{org}/migrations\",\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n \"GET /orgs/{org}/organization-roles/{role_id}/teams\",\n \"GET /orgs/{org}/organization-roles/{role_id}/users\",\n \"GET /orgs/{org}/outside_collaborators\",\n \"GET /orgs/{org}/packages\",\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n \"GET /orgs/{org}/personal-access-token-requests\",\n \"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories\",\n \"GET /orgs/{org}/personal-access-tokens\",\n \"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories\",\n \"GET /orgs/{org}/projects\",\n \"GET /orgs/{org}/properties/values\",\n \"GET /orgs/{org}/public_members\",\n \"GET /orgs/{org}/repos\",\n \"GET /orgs/{org}/rulesets\",\n \"GET /orgs/{org}/rulesets/rule-suites\",\n \"GET /orgs/{org}/secret-scanning/alerts\",\n \"GET /orgs/{org}/security-advisories\",\n \"GET /orgs/{org}/teams\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n \"GET /orgs/{org}/teams/{team_slug}/members\",\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n \"GET /orgs/{org}/teams/{team_slug}/repos\",\n \"GET /orgs/{org}/teams/{team_slug}/teams\",\n \"GET /projects/columns/{column_id}/cards\",\n \"GET /projects/{project_id}/collaborators\",\n \"GET /projects/{project_id}/columns\",\n \"GET /repos/{owner}/{repo}/actions/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/caches\",\n \"GET /repos/{owner}/{repo}/actions/organization-secrets\",\n \"GET /repos/{owner}/{repo}/actions/organization-variables\",\n \"GET /repos/{owner}/{repo}/actions/runners\",\n \"GET /repos/{owner}/{repo}/actions/runs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/secrets\",\n \"GET /repos/{owner}/{repo}/actions/variables\",\n \"GET /repos/{owner}/{repo}/actions/workflows\",\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n \"GET /repos/{owner}/{repo}/activity\",\n \"GET /repos/{owner}/{repo}/assignees\",\n \"GET /repos/{owner}/{repo}/branches\",\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n \"GET /repos/{owner}/{repo}/code-scanning/analyses\",\n \"GET /repos/{owner}/{repo}/codespaces\",\n \"GET /repos/{owner}/{repo}/codespaces/devcontainers\",\n \"GET /repos/{owner}/{repo}/codespaces/secrets\",\n \"GET /repos/{owner}/{repo}/collaborators\",\n \"GET /repos/{owner}/{repo}/comments\",\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/commits\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/status\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n \"GET /repos/{owner}/{repo}/contributors\",\n \"GET /repos/{owner}/{repo}/dependabot/alerts\",\n \"GET /repos/{owner}/{repo}/dependabot/secrets\",\n \"GET /repos/{owner}/{repo}/deployments\",\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n \"GET /repos/{owner}/{repo}/environments\",\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\",\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps\",\n \"GET /repos/{owner}/{repo}/events\",\n \"GET /repos/{owner}/{repo}/forks\",\n \"GET /repos/{owner}/{repo}/hooks\",\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\",\n \"GET /repos/{owner}/{repo}/invitations\",\n \"GET /repos/{owner}/{repo}/issues\",\n \"GET /repos/{owner}/{repo}/issues/comments\",\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n \"GET /repos/{owner}/{repo}/keys\",\n \"GET /repos/{owner}/{repo}/labels\",\n \"GET /repos/{owner}/{repo}/milestones\",\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n \"GET /repos/{owner}/{repo}/notifications\",\n \"GET /repos/{owner}/{repo}/pages/builds\",\n \"GET /repos/{owner}/{repo}/projects\",\n \"GET /repos/{owner}/{repo}/pulls\",\n \"GET /repos/{owner}/{repo}/pulls/comments\",\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n \"GET /repos/{owner}/{repo}/releases\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\",\n \"GET /repos/{owner}/{repo}/rules/branches/{branch}\",\n \"GET /repos/{owner}/{repo}/rulesets\",\n \"GET /repos/{owner}/{repo}/rulesets/rule-suites\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\",\n \"GET /repos/{owner}/{repo}/security-advisories\",\n \"GET /repos/{owner}/{repo}/stargazers\",\n \"GET /repos/{owner}/{repo}/subscribers\",\n \"GET /repos/{owner}/{repo}/tags\",\n \"GET /repos/{owner}/{repo}/teams\",\n \"GET /repos/{owner}/{repo}/topics\",\n \"GET /repositories\",\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\",\n \"GET /repositories/{repository_id}/environments/{environment_name}/variables\",\n \"GET /search/code\",\n \"GET /search/commits\",\n \"GET /search/issues\",\n \"GET /search/labels\",\n \"GET /search/repositories\",\n \"GET /search/topics\",\n \"GET /search/users\",\n \"GET /teams/{team_id}/discussions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\",\n \"GET /teams/{team_id}/invitations\",\n \"GET /teams/{team_id}/members\",\n \"GET /teams/{team_id}/projects\",\n \"GET /teams/{team_id}/repos\",\n \"GET /teams/{team_id}/teams\",\n \"GET /user/blocks\",\n \"GET /user/codespaces\",\n \"GET /user/codespaces/secrets\",\n \"GET /user/emails\",\n \"GET /user/followers\",\n \"GET /user/following\",\n \"GET /user/gpg_keys\",\n \"GET /user/installations\",\n \"GET /user/installations/{installation_id}/repositories\",\n \"GET /user/issues\",\n \"GET /user/keys\",\n \"GET /user/marketplace_purchases\",\n \"GET /user/marketplace_purchases/stubbed\",\n \"GET /user/memberships/orgs\",\n \"GET /user/migrations\",\n \"GET /user/migrations/{migration_id}/repositories\",\n \"GET /user/orgs\",\n \"GET /user/packages\",\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n \"GET /user/public_emails\",\n \"GET /user/repos\",\n \"GET /user/repository_invitations\",\n \"GET /user/social_accounts\",\n \"GET /user/ssh_signing_keys\",\n \"GET /user/starred\",\n \"GET /user/subscriptions\",\n \"GET /user/teams\",\n \"GET /users\",\n \"GET /users/{username}/events\",\n \"GET /users/{username}/events/orgs/{org}\",\n \"GET /users/{username}/events/public\",\n \"GET /users/{username}/followers\",\n \"GET /users/{username}/following\",\n \"GET /users/{username}/gists\",\n \"GET /users/{username}/gpg_keys\",\n \"GET /users/{username}/keys\",\n \"GET /users/{username}/orgs\",\n \"GET /users/{username}/packages\",\n \"GET /users/{username}/projects\",\n \"GET /users/{username}/received_events\",\n \"GET /users/{username}/received_events/public\",\n \"GET /users/{username}/repos\",\n \"GET /users/{username}/social_accounts\",\n \"GET /users/{username}/ssh_signing_keys\",\n \"GET /users/{username}/starred\",\n \"GET /users/{username}/subscriptions\"\n];\nexport {\n paginatingEndpoints\n};\n", "import {\n paginatingEndpoints\n} from \"./generated/paginating-endpoints.js\";\nimport { paginatingEndpoints as paginatingEndpoints2 } from \"./generated/paginating-endpoints.js\";\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\nexport {\n isPaginatingEndpoint,\n paginatingEndpoints2 as paginatingEndpoints\n};\n", "import { VERSION } from \"./version.js\";\nimport { paginate } from \"./paginate.js\";\nimport { iterator } from \"./iterator.js\";\nimport { composePaginateRest } from \"./compose-paginate.js\";\nimport {\n isPaginatingEndpoint,\n paginatingEndpoints\n} from \"./paginating-endpoints.js\";\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\nexport {\n composePaginateRest,\n isPaginatingEndpoint,\n paginateRest,\n paginatingEndpoints\n};\n"], + "mappings": ";AAAA,IAAM,UAAU;;;ACAhB,SAAS,+BAA+B,UAAU;AAChD,MAAI,CAAC,SAAS,MAAM;AAClB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,MAAM,CAAC;AAAA,IACT;AAAA,EACF;AACA,QAAM,6BAA6B,iBAAiB,SAAS,QAAQ,EAAE,SAAS,SAAS;AACzF,MAAI,CAAC;AACH,WAAO;AACT,QAAM,oBAAoB,SAAS,KAAK;AACxC,QAAM,sBAAsB,SAAS,KAAK;AAC1C,QAAM,aAAa,SAAS,KAAK;AACjC,SAAO,SAAS,KAAK;AACrB,SAAO,SAAS,KAAK;AACrB,SAAO,SAAS,KAAK;AACrB,QAAM,eAAe,OAAO,KAAK,SAAS,IAAI,EAAE,CAAC;AACjD,QAAM,OAAO,SAAS,KAAK,YAAY;AACvC,WAAS,OAAO;AAChB,MAAI,OAAO,sBAAsB,aAAa;AAC5C,aAAS,KAAK,qBAAqB;AAAA,EACrC;AACA,MAAI,OAAO,wBAAwB,aAAa;AAC9C,aAAS,KAAK,uBAAuB;AAAA,EACvC;AACA,WAAS,KAAK,cAAc;AAC5B,SAAO;AACT;;;AC1BA,SAAS,SAAS,SAAS,OAAO,YAAY;AAC5C,QAAM,UAAU,OAAO,UAAU,aAAa,MAAM,SAAS,UAAU,IAAI,QAAQ,QAAQ,SAAS,OAAO,UAAU;AACrH,QAAM,gBAAgB,OAAO,UAAU,aAAa,QAAQ,QAAQ;AACpE,QAAM,SAAS,QAAQ;AACvB,QAAM,UAAU,QAAQ;AACxB,MAAI,MAAM,QAAQ;AAClB,SAAO;AAAA,IACL,CAAC,OAAO,aAAa,GAAG,OAAO;AAAA,MAC7B,MAAM,OAAO;AACX,YAAI,CAAC;AACH,iBAAO,EAAE,MAAM,KAAK;AACtB,YAAI;AACF,gBAAM,WAAW,MAAM,cAAc,EAAE,QAAQ,KAAK,QAAQ,CAAC;AAC7D,gBAAM,qBAAqB,+BAA+B,QAAQ;AAClE,kBAAQ,mBAAmB,QAAQ,QAAQ,IAAI;AAAA,YAC7C;AAAA,UACF,KAAK,CAAC,GAAG,CAAC;AACV,iBAAO,EAAE,OAAO,mBAAmB;AAAA,QACrC,SAAS,OAAO;AACd,cAAI,MAAM,WAAW;AACnB,kBAAM;AACR,gBAAM;AACN,iBAAO;AAAA,YACL,OAAO;AAAA,cACL,QAAQ;AAAA,cACR,SAAS,CAAC;AAAA,cACV,MAAM,CAAC;AAAA,YACT;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACjCA,SAAS,SAAS,SAAS,OAAO,YAAY,OAAO;AACnD,MAAI,OAAO,eAAe,YAAY;AACpC,YAAQ;AACR,iBAAa;AAAA,EACf;AACA,SAAO;AAAA,IACL;AAAA,IACA,CAAC;AAAA,IACD,SAAS,SAAS,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;AAAA,IAC3D;AAAA,EACF;AACF;AACA,SAAS,OAAO,SAAS,SAAS,WAAW,OAAO;AAClD,SAAO,UAAU,KAAK,EAAE,KAAK,CAAC,WAAW;AACvC,QAAI,OAAO,MAAM;AACf,aAAO;AAAA,IACT;AACA,QAAI,YAAY;AAChB,aAAS,OAAO;AACd,kBAAY;AAAA,IACd;AACA,cAAU,QAAQ;AAAA,MAChB,QAAQ,MAAM,OAAO,OAAO,IAAI,IAAI,OAAO,MAAM;AAAA,IACnD;AACA,QAAI,WAAW;AACb,aAAO;AAAA,IACT;AACA,WAAO,OAAO,SAAS,SAAS,WAAW,KAAK;AAAA,EAClD,CAAC;AACH;;;AC5BA,IAAM,sBAAsB,OAAO,OAAO,UAAU;AAAA,EAClD;AACF,CAAC;;;ACJD,IAAM,sBAAsB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACvOA,SAAS,qBAAqB,KAAK;AACjC,MAAI,OAAO,QAAQ,UAAU;AAC3B,WAAO,oBAAoB,SAAS,GAAG;AAAA,EACzC,OAAO;AACL,WAAO;AAAA,EACT;AACF;;;ACFA,SAAS,aAAa,SAAS;AAC7B,SAAO;AAAA,IACL,UAAU,OAAO,OAAO,SAAS,KAAK,MAAM,OAAO,GAAG;AAAA,MACpD,UAAU,SAAS,KAAK,MAAM,OAAO;AAAA,IACvC,CAAC;AAAA,EACH;AACF;AACA,aAAa,UAAU;", + "names": [] +} diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/LICENSE b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/LICENSE new file mode 100644 index 000000000..c61fbbe5a --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/LICENSE @@ -0,0 +1,7 @@ +Copyright 2020 Gregor Martynus + +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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +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. \ No newline at end of file diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/README.md b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/README.md new file mode 100644 index 000000000..e61ed8d2d --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/README.md @@ -0,0 +1,17 @@ +# @octokit/openapi-types + +> Generated TypeScript definitions based on GitHub's OpenAPI spec + +This package is continuously updated based on [GitHub's OpenAPI specification](https://github.com/github/rest-api-description/) + +## Usage + +```ts +import { components } from "@octokit/openapi-types"; + +type Repository = components["schemas"]["full-repository"]; +``` + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/package.json b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/package.json new file mode 100644 index 000000000..ade207b2a --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/package.json @@ -0,0 +1,20 @@ +{ + "name": "@octokit/openapi-types", + "description": "Generated TypeScript definitions based on GitHub's OpenAPI spec for api.github.com", + "repository": { + "type": "git", + "url": "https://github.com/octokit/openapi-types.ts.git", + "directory": "packages/openapi-types" + }, + "publishConfig": { + "access": "public" + }, + "version": "20.0.0", + "main": "", + "types": "types.d.ts", + "author": "Gregor Martynus (https://twitter.com/gr2m)", + "license": "MIT", + "octokit": { + "openapi-version": "14.0.0" + } +} diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/types.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/types.d.ts new file mode 100644 index 000000000..439fc2de2 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types/types.d.ts @@ -0,0 +1,118541 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +/** OneOf type helpers */ +type Without = { [P in Exclude]?: never }; +type XOR = T | U extends object + ? (Without & U) | (Without & T) + : T | U; +type OneOf = T extends [infer Only] + ? Only + : T extends [infer A, infer B, ...infer Rest] + ? OneOf<[XOR, ...Rest]> + : never; + +export interface paths { + "/": { + /** + * GitHub API Root + * @description Get Hypermedia links to resources accessible in GitHub's REST API + */ + get: operations["meta/root"]; + }; + "/advisories": { + /** + * List global security advisories + * @description Lists all global security advisories that match the specified parameters. If no other parameters are defined, the request will return only GitHub-reviewed advisories that are not malware. + * + * By default, all responses will exclude advisories for malware, because malware are not standard vulnerabilities. To list advisories for malware, you must include the `type` parameter in your request, with the value `malware`. For more information about the different types of security advisories, see "[About the GitHub Advisory database](https://docs.github.com/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database#about-types-of-security-advisories)." + */ + get: operations["security-advisories/list-global-advisories"]; + }; + "/advisories/{ghsa_id}": { + /** + * Get a global security advisory + * @description Gets a global security advisory using its GitHub Security Advisory (GHSA) identifier. + */ + get: operations["security-advisories/get-global-advisory"]; + }; + "/app": { + /** + * Get the authenticated app + * @description Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/apps/apps#list-installations-for-the-authenticated-app)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-authenticated"]; + }; + "/app-manifests/{code}/conversions": { + /** + * Create a GitHub App from a manifest + * @description Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. + */ + post: operations["apps/create-from-manifest"]; + }; + "/app/hook/config": { + /** + * Get a webhook configuration for an app + * @description Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-webhook-config-for-app"]; + /** + * Update a webhook configuration for an app + * @description Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + patch: operations["apps/update-webhook-config-for-app"]; + }; + "/app/hook/deliveries": { + /** + * List deliveries for an app webhook + * @description Returns a list of webhook deliveries for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/list-webhook-deliveries"]; + }; + "/app/hook/deliveries/{delivery_id}": { + /** + * Get a delivery for an app webhook + * @description Returns a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-webhook-delivery"]; + }; + "/app/hook/deliveries/{delivery_id}/attempts": { + /** + * Redeliver a delivery for an app webhook + * @description Redeliver a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + post: operations["apps/redeliver-webhook-delivery"]; + }; + "/app/installation-requests": { + /** + * List installation requests for the authenticated app + * @description Lists all the pending installation requests for the authenticated GitHub App. + */ + get: operations["apps/list-installation-requests-for-authenticated-app"]; + }; + "/app/installations": { + /** + * List installations for the authenticated app + * @description You must use a [JWT](https://docs.github.com/enterprise-server@3.9/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * The permissions the installation has are included under the `permissions` key. + */ + get: operations["apps/list-installations"]; + }; + "/app/installations/{installation_id}": { + /** + * Get an installation for the authenticated app + * @description Enables an authenticated GitHub App to find an installation's information using the installation id. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-installation"]; + /** + * Delete an installation for the authenticated app + * @description Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/rest/apps/apps#suspend-an-app-installation)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + delete: operations["apps/delete-installation"]; + }; + "/app/installations/{installation_id}/access_tokens": { + /** + * Create an installation access token for an app + * @description Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. + * + * Optionally, you can use the `repositories` or `repository_ids` body parameters to specify individual repositories that the installation access token can access. If you don't use `repositories` or `repository_ids` to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner. + * + * Optionally, use the `permissions` body parameter to specify the permissions that the installation access token should have. If `permissions` is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted. + * + * When using the repository or permission parameters to reduce the access of the token, the complexity of the token is increased due to both the number of permissions in the request and the number of repositories the token will have access to. If the complexity is too large, the token will fail to be issued. If this occurs, the error message will indicate the maximum number of repositories that should be requested. For the average application requesting 8 permissions, this limit is around 5000 repositories. With fewer permissions requested, more repositories are supported. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + post: operations["apps/create-installation-access-token"]; + }; + "/app/installations/{installation_id}/suspended": { + /** + * Suspend an app installation + * @description Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + put: operations["apps/suspend-installation"]; + /** + * Unsuspend an app installation + * @description Removes a GitHub App installation suspension. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + delete: operations["apps/unsuspend-installation"]; + }; + "/applications/{client_id}/grant": { + /** + * Delete an app authorization + * @description OAuth and GitHub application owners can revoke a grant for their application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * Deleting an application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + delete: operations["apps/delete-authorization"]; + }; + "/applications/{client_id}/token": { + /** + * Check a token + * @description OAuth applications and GitHub applications with OAuth authorizations can use this API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. + */ + post: operations["apps/check-token"]; + /** + * Delete an app token + * @description OAuth or GitHub application owners can revoke a single token for an OAuth application or a GitHub application with an OAuth authorization. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. + */ + delete: operations["apps/delete-token"]; + /** + * Reset a token + * @description OAuth applications and GitHub applications with OAuth authorizations can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + patch: operations["apps/reset-token"]; + }; + "/applications/{client_id}/token/scoped": { + /** + * Create a scoped access token + * @description Use a non-scoped user access token to create a repository-scoped and/or permission-scoped user access token. You can specify + * which repositories the token can access and which permissions are granted to the + * token. + * + * Invalid tokens will return `404 NOT FOUND`. + * + * You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) + * when accessing this endpoint, using the `client_id` and `client_secret` of the GitHub App + * as the username and password. + */ + post: operations["apps/scope-token"]; + }; + "/apps/{app_slug}": { + /** + * Get an app + * @description **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + */ + get: operations["apps/get-by-slug"]; + }; + "/assignments/{assignment_id}": { + /** + * Get an assignment + * @description Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + get: operations["classroom/get-an-assignment"]; + }; + "/assignments/{assignment_id}/accepted_assignments": { + /** + * List accepted assignments for an assignment + * @description Lists any assignment repositories that have been created by students accepting a GitHub Classroom assignment. Accepted assignments will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + get: operations["classroom/list-accepted-assigments-for-an-assignment"]; + }; + "/assignments/{assignment_id}/grades": { + /** + * Get assignment grades + * @description Gets grades for a GitHub Classroom assignment. Grades will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + get: operations["classroom/get-assignment-grades"]; + }; + "/classrooms": { + /** + * List classrooms + * @description Lists GitHub Classroom classrooms for the current user. Classrooms will only be returned if the current user is an administrator of one or more GitHub Classrooms. + */ + get: operations["classroom/list-classrooms"]; + }; + "/classrooms/{classroom_id}": { + /** + * Get a classroom + * @description Gets a GitHub Classroom classroom for the current user. Classroom will only be returned if the current user is an administrator of the GitHub Classroom. + */ + get: operations["classroom/get-a-classroom"]; + }; + "/classrooms/{classroom_id}/assignments": { + /** + * List assignments for a classroom + * @description Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. + */ + get: operations["classroom/list-assignments-for-a-classroom"]; + }; + "/codes_of_conduct": { + /** + * Get all codes of conduct + * @description Returns array of all GitHub's codes of conduct. + */ + get: operations["codes-of-conduct/get-all-codes-of-conduct"]; + }; + "/codes_of_conduct/{key}": { + /** + * Get a code of conduct + * @description Returns information about the specified GitHub code of conduct. + */ + get: operations["codes-of-conduct/get-conduct-code"]; + }; + "/emojis": { + /** + * Get emojis + * @description Lists all the emojis available to use on GitHub. + */ + get: operations["emojis/get"]; + }; + "/enterprises/{enterprise}/dependabot/alerts": { + /** + * List Dependabot alerts for an enterprise + * @description Lists Dependabot alerts for repositories that are owned by the specified enterprise. + * + * The authenticated user must be a member of the enterprise to use this endpoint. + * + * Alerts are only returned for organizations in the enterprise for which you are an organization owner or a security manager. For more information about security managers, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. + */ + get: operations["dependabot/list-alerts-for-enterprise"]; + }; + "/enterprises/{enterprise}/secret-scanning/alerts": { + /** + * List secret scanning alerts for an enterprise + * @description Lists secret scanning alerts for eligible repositories in an enterprise, from newest to oldest. + * + * Alerts are only returned for organizations in the enterprise for which the authenticated user is an organization owner or a [security manager](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization). + * + * The authenticated user must be a member of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope or `security_events` scope to use this endpoint. + */ + get: operations["secret-scanning/list-alerts-for-enterprise"]; + }; + "/events": { + /** + * List public events + * @description We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. + */ + get: operations["activity/list-public-events"]; + }; + "/feeds": { + /** + * Get feeds + * @description GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user: + * + * * **Timeline**: The GitHub global public timeline + * * **User**: The public timeline for any user, using `uri_template`. For more information, see "[Hypermedia](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + * * **Current user public**: The public timeline for the authenticated user + * * **Current user**: The private timeline for the authenticated user + * * **Current user actor**: The private timeline for activity created by the authenticated user + * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + * + * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + */ + get: operations["activity/get-feeds"]; + }; + "/gists": { + /** + * List gists for the authenticated user + * @description Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: + */ + get: operations["gists/list"]; + /** + * Create a gist + * @description Allows you to add a new gist with one or more files. + * + * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + */ + post: operations["gists/create"]; + }; + "/gists/public": { + /** + * List public gists + * @description List public gists sorted by most recently updated to least recently updated. + * + * Note: With [pagination](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + */ + get: operations["gists/list-public"]; + }; + "/gists/starred": { + /** + * List starred gists + * @description List the authenticated user's starred gists: + */ + get: operations["gists/list-starred"]; + }; + "/gists/{gist_id}": { + /** + * Get a gist + * @description Gets a specified gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + get: operations["gists/get"]; + /** Delete a gist */ + delete: operations["gists/delete"]; + /** + * Update a gist + * @description Allows you to update a gist's description and to update, delete, or rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. + */ + patch: operations["gists/update"]; + }; + "/gists/{gist_id}/comments": { + /** + * List gist comments + * @description Lists the comments on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + get: operations["gists/list-comments"]; + /** + * Create a gist comment + * @description Creates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + post: operations["gists/create-comment"]; + }; + "/gists/{gist_id}/comments/{comment_id}": { + /** + * Get a gist comment + * @description Gets a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + get: operations["gists/get-comment"]; + /** Delete a gist comment */ + delete: operations["gists/delete-comment"]; + /** + * Update a gist comment + * @description Updates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + patch: operations["gists/update-comment"]; + }; + "/gists/{gist_id}/commits": { + /** List gist commits */ + get: operations["gists/list-commits"]; + }; + "/gists/{gist_id}/forks": { + /** List gist forks */ + get: operations["gists/list-forks"]; + /** Fork a gist */ + post: operations["gists/fork"]; + }; + "/gists/{gist_id}/star": { + /** Check if a gist is starred */ + get: operations["gists/check-is-starred"]; + /** + * Star a gist + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["gists/star"]; + /** Unstar a gist */ + delete: operations["gists/unstar"]; + }; + "/gists/{gist_id}/{sha}": { + /** + * Get a gist revision + * @description Gets a specified gist revision. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + get: operations["gists/get-revision"]; + }; + "/gitignore/templates": { + /** + * Get all gitignore templates + * @description List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user). + */ + get: operations["gitignore/get-all-templates"]; + }; + "/gitignore/templates/{name}": { + /** + * Get a gitignore template + * @description Get the content of a gitignore template. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw .gitignore contents. + */ + get: operations["gitignore/get-template"]; + }; + "/installation/repositories": { + /** + * List repositories accessible to the app installation + * @description List repositories that an app installation can access. + */ + get: operations["apps/list-repos-accessible-to-installation"]; + }; + "/installation/token": { + /** + * Revoke an installation access token + * @description Revokes the installation token you're using to authenticate as an installation and access this endpoint. + * + * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app)" endpoint. + */ + delete: operations["apps/revoke-installation-access-token"]; + }; + "/issues": { + /** + * List issues assigned to the authenticated user + * @description List issues assigned to the authenticated user across all visible repositories including owned repositories, member + * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not + * necessarily assigned to you. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list"]; + }; + "/licenses": { + /** + * Get all commonly used licenses + * @description Lists the most commonly used licenses on GitHub. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + get: operations["licenses/get-all-commonly-used"]; + }; + "/licenses/{license}": { + /** + * Get a license + * @description Gets information about a specific license. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + get: operations["licenses/get"]; + }; + "/markdown": { + /** Render a Markdown document */ + post: operations["markdown/render"]; + }; + "/markdown/raw": { + /** + * Render a Markdown document in raw mode + * @description You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. + */ + post: operations["markdown/render-raw"]; + }; + "/marketplace_listing/accounts/{account_id}": { + /** + * Get a subscription plan for an account + * @description Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/get-subscription-plan-for-account"]; + }; + "/marketplace_listing/plans": { + /** + * List plans + * @description Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-plans"]; + }; + "/marketplace_listing/plans/{plan_id}/accounts": { + /** + * List accounts for a plan + * @description Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-accounts-for-plan"]; + }; + "/marketplace_listing/stubbed/accounts/{account_id}": { + /** + * Get a subscription plan for an account (stubbed) + * @description Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/get-subscription-plan-for-account-stubbed"]; + }; + "/marketplace_listing/stubbed/plans": { + /** + * List plans (stubbed) + * @description Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-plans-stubbed"]; + }; + "/marketplace_listing/stubbed/plans/{plan_id}/accounts": { + /** + * List accounts for a plan (stubbed) + * @description Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-accounts-for-plan-stubbed"]; + }; + "/meta": { + /** + * Get GitHub meta information + * @description Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://docs.github.com/articles/about-github-s-ip-addresses/)." + * + * The API's response also includes a list of GitHub's domain names. + * + * The values shown in the documentation's response are example values. You must always query the API directly to get the latest values. + * + * **Note:** This endpoint returns both IPv4 and IPv6 addresses. However, not all features support IPv6. You should refer to the specific documentation for each feature to determine if IPv6 is supported. + */ + get: operations["meta/get"]; + }; + "/networks/{owner}/{repo}/events": { + /** List public events for a network of repositories */ + get: operations["activity/list-public-events-for-repo-network"]; + }; + "/notifications": { + /** + * List notifications for the authenticated user + * @description List all notifications for the current user, sorted by most recently updated. + */ + get: operations["activity/list-notifications-for-authenticated-user"]; + /** + * Mark notifications as read + * @description Marks all notifications as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + put: operations["activity/mark-notifications-as-read"]; + }; + "/notifications/threads/{thread_id}": { + /** + * Get a thread + * @description Gets information about a notification thread. + */ + get: operations["activity/get-thread"]; + /** + * Mark a thread as done + * @description Marks a thread as "done." Marking a thread as "done" is equivalent to marking a notification in your notification inbox on GitHub as done: https://github.com/notifications. + */ + delete: operations["activity/mark-thread-as-done"]; + /** + * Mark a thread as read + * @description Marks a thread as "read." Marking a thread as "read" is equivalent to clicking a notification in your notification inbox on GitHub: https://github.com/notifications. + */ + patch: operations["activity/mark-thread-as-read"]; + }; + "/notifications/threads/{thread_id}/subscription": { + /** + * Get a thread subscription for the authenticated user + * @description This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/activity/watching#get-a-repository-subscription). + * + * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + */ + get: operations["activity/get-thread-subscription-for-authenticated-user"]; + /** + * Set a thread subscription + * @description If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**. + * + * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. + * + * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription) endpoint. + */ + put: operations["activity/set-thread-subscription"]; + /** + * Delete a thread subscription + * @description Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/activity/notifications#set-a-thread-subscription) endpoint and set `ignore` to `true`. + */ + delete: operations["activity/delete-thread-subscription"]; + }; + "/octocat": { + /** + * Get Octocat + * @description Get the octocat as ASCII art + */ + get: operations["meta/get-octocat"]; + }; + "/organizations": { + /** + * List organizations + * @description Lists all organizations, in the order that they were created on GitHub. + * + * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of organizations. + */ + get: operations["orgs/list"]; + }; + "/orgs/{org}": { + /** + * Get an organization + * @description Gets information about an organization. + * + * When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://docs.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * + * To see the full details about an organization, the authenticated user must be an organization owner. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to see the full details about an organization. + * + * To see information about an organization's GitHub plan, GitHub Apps need the `Organization plan` permission. + */ + get: operations["orgs/get"]; + /** + * Delete an organization + * @description Deletes an organization and all its repositories. + * + * The organization login will be unavailable for 90 days after deletion. + * + * Please review the Terms of Service regarding account deletion before using this endpoint: + * + * https://docs.github.com/site-policy/github-terms/github-terms-of-service + */ + delete: operations["orgs/delete"]; + /** + * Update an organization + * @description **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * + * Updates the organization's profile and member privileges. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` or `repo` scope to use this endpoint. + */ + patch: operations["orgs/update"]; + }; + "/orgs/{org}/actions/cache/usage": { + /** + * Get GitHub Actions cache usage for an organization + * @description Gets the total GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + get: operations["actions/get-actions-cache-usage-for-org"]; + }; + "/orgs/{org}/actions/cache/usage-by-repository": { + /** + * List repositories with GitHub Actions cache usage for an organization + * @description Lists repositories and their GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + get: operations["actions/get-actions-cache-usage-by-repo-for-org"]; + }; + "/orgs/{org}/actions/oidc/customization/sub": { + /** + * Get the customization template for an OIDC subject claim for an organization + * @description Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + get: operations["oidc/get-oidc-custom-sub-template-for-org"]; + /** + * Set the customization template for an OIDC subject claim for an organization + * @description Creates or updates the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + put: operations["oidc/update-oidc-custom-sub-template-for-org"]; + }; + "/orgs/{org}/actions/permissions": { + /** + * Get GitHub Actions permissions for an organization + * @description Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["actions/get-github-actions-permissions-organization"]; + /** + * Set GitHub Actions permissions for an organization + * @description Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-github-actions-permissions-organization"]; + }; + "/orgs/{org}/actions/permissions/repositories": { + /** + * List selected repositories enabled for GitHub Actions in an organization + * @description Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["actions/list-selected-repositories-enabled-github-actions-organization"]; + /** + * Set selected repositories enabled for GitHub Actions in an organization + * @description Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-selected-repositories-enabled-github-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/repositories/{repository_id}": { + /** + * Enable a selected repository for GitHub Actions in an organization + * @description Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/enable-selected-repository-github-actions-organization"]; + /** + * Disable a selected repository for GitHub Actions in an organization + * @description Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["actions/disable-selected-repository-github-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/selected-actions": { + /** + * Get allowed actions and reusable workflows for an organization + * @description Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["actions/get-allowed-actions-organization"]; + /** + * Set allowed actions and reusable workflows for an organization + * @description Sets the actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-allowed-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/workflow": { + /** + * Get default workflow permissions for an organization + * @description Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, + * as well as whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["actions/get-github-actions-default-workflow-permissions-organization"]; + /** + * Set default workflow permissions for an organization + * @description Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, and sets if GitHub Actions + * can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-github-actions-default-workflow-permissions-organization"]; + }; + "/orgs/{org}/actions/runners": { + /** + * List self-hosted runners for an organization + * @description Lists all self-hosted runners configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-self-hosted-runners-for-org"]; + }; + "/orgs/{org}/actions/runners/downloads": { + /** + * List runner applications for an organization + * @description Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-runner-applications-for-org"]; + }; + "/orgs/{org}/actions/runners/generate-jitconfig": { + /** + * Create configuration for a just-in-time runner for an organization + * @description Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the organization. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/generate-runner-jitconfig-for-org"]; + }; + "/orgs/{org}/actions/runners/registration-token": { + /** + * Create a registration token for an organization + * @description Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-registration-token-for-org"]; + }; + "/orgs/{org}/actions/runners/remove-token": { + /** + * Create a remove token for an organization + * @description Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-remove-token-for-org"]; + }; + "/orgs/{org}/actions/runners/{runner_id}": { + /** + * Get a self-hosted runner for an organization + * @description Gets a specific self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/get-self-hosted-runner-for-org"]; + /** + * Delete a self-hosted runner from an organization + * @description Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-self-hosted-runner-from-org"]; + }; + "/orgs/{org}/actions/runners/{runner_id}/labels": { + /** + * List labels for a self-hosted runner for an organization + * @description Lists all labels for a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-labels-for-self-hosted-runner-for-org"]; + /** + * Set custom labels for a self-hosted runner for an organization + * @description Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + put: operations["actions/set-custom-labels-for-self-hosted-runner-for-org"]; + /** + * Add custom labels to a self-hosted runner for an organization + * @description Adds custom labels to a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + post: operations["actions/add-custom-labels-to-self-hosted-runner-for-org"]; + /** + * Remove all custom labels from a self-hosted runner for an organization + * @description Remove all custom labels from a self-hosted runner configured in an + * organization. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + delete: operations["actions/remove-all-custom-labels-from-self-hosted-runner-for-org"]; + }; + "/orgs/{org}/actions/runners/{runner_id}/labels/{name}": { + /** + * Remove a custom label from a self-hosted runner for an organization + * @description Remove a custom label from a self-hosted runner configured + * in an organization. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + delete: operations["actions/remove-custom-label-from-self-hosted-runner-for-org"]; + }; + "/orgs/{org}/actions/secrets": { + /** + * List organization secrets + * @description Lists all secrets available in an organization without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-org-secrets"]; + }; + "/orgs/{org}/actions/secrets/public-key": { + /** + * Get an organization public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-org-public-key"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}": { + /** + * Get an organization secret + * @description Gets a single organization secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-org-secret"]; + /** + * Create or update an organization secret + * @description Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to + * use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + put: operations["actions/create-or-update-org-secret"]; + /** + * Delete an organization secret + * @description Deletes a secret in an organization using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-org-secret"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}/repositories": { + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-selected-repos-for-org-secret"]; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + put: operations["actions/set-selected-repos-for-org-secret"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": { + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. For more information about setting the visibility, see [Create or + * update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/add-selected-repo-to-org-secret"]; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + delete: operations["actions/remove-selected-repo-from-org-secret"]; + }; + "/orgs/{org}/actions/variables": { + /** + * List organization variables + * @description Lists all organization variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-org-variables"]; + /** + * Create an organization variable + * @description Creates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-org-variable"]; + }; + "/orgs/{org}/actions/variables/{name}": { + /** + * Get an organization variable + * @description Gets a specific variable in an organization. + * + * The authenticated user must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-org-variable"]; + /** + * Delete an organization variable + * @description Deletes an organization variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-org-variable"]; + /** + * Update an organization variable + * @description Updates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + patch: operations["actions/update-org-variable"]; + }; + "/orgs/{org}/actions/variables/{name}/repositories": { + /** + * List selected repositories for an organization variable + * @description Lists all repositories that can access an organization variable + * that is available to selected repositories. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-selected-repos-for-org-variable"]; + /** + * Set selected repositories for an organization variable + * @description Replaces all repositories for an organization variable that is available + * to selected repositories. Organization variables that are available to selected + * repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + put: operations["actions/set-selected-repos-for-org-variable"]; + }; + "/orgs/{org}/actions/variables/{name}/repositories/{repository_id}": { + /** + * Add selected repository to an organization variable + * @description Adds a repository to an organization variable that is available to selected repositories. + * Organization variables that are available to selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/add-selected-repo-to-org-variable"]; + /** + * Remove selected repository from an organization variable + * @description Removes a repository from an organization variable that is + * available to selected repositories. Organization variables that are available to + * selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + delete: operations["actions/remove-selected-repo-from-org-variable"]; + }; + "/orgs/{org}/blocks": { + /** + * List users blocked by an organization + * @description List the users blocked by an organization. + */ + get: operations["orgs/list-blocked-users"]; + }; + "/orgs/{org}/blocks/{username}": { + /** + * Check if a user is blocked by an organization + * @description Returns a 204 if the given user is blocked by the given organization. Returns a 404 if the organization is not blocking the user, or if the user account has been identified as spam by GitHub. + */ + get: operations["orgs/check-blocked-user"]; + /** + * Block a user from an organization + * @description Blocks the given user on behalf of the specified organization and returns a 204. If the organization cannot block the given user a 422 is returned. + */ + put: operations["orgs/block-user"]; + /** + * Unblock a user from an organization + * @description Unblocks the given user on behalf of the specified organization. + */ + delete: operations["orgs/unblock-user"]; + }; + "/orgs/{org}/code-scanning/alerts": { + /** + * List code scanning alerts for an organization + * @description Lists code scanning alerts for the default branch for all eligible repositories in an organization. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` or `repo`s cope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/list-alerts-for-org"]; + }; + "/orgs/{org}/codespaces": { + /** + * List codespaces for the organization + * @description Lists the codespaces associated to a specified organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/list-in-organization"]; + }; + "/orgs/{org}/codespaces/access": { + /** + * Manage access control for organization codespaces + * @deprecated + * @description Sets which users can access codespaces in an organization. This is synonymous with granting or revoking codespaces access permissions for users according to the visibility. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["codespaces/set-codespaces-access"]; + }; + "/orgs/{org}/codespaces/access/selected_users": { + /** + * Add users to Codespaces access for an organization + * @deprecated + * @description Codespaces for the specified users will be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + post: operations["codespaces/set-codespaces-access-users"]; + /** + * Remove users from Codespaces access for an organization + * @deprecated + * @description Codespaces for the specified users will no longer be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["codespaces/delete-codespaces-access-users"]; + }; + "/orgs/{org}/codespaces/secrets": { + /** + * List organization secrets + * @description Lists all Codespaces development environment secrets available at the organization-level without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/list-org-secrets"]; + }; + "/orgs/{org}/codespaces/secrets/public-key": { + /** + * Get an organization public key + * @description Gets a public key for an organization, which is required in order to encrypt secrets. You need to encrypt the value of a secret before you can create or update secrets. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/get-org-public-key"]; + }; + "/orgs/{org}/codespaces/secrets/{secret_name}": { + /** + * Get an organization secret + * @description Gets an organization development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/get-org-secret"]; + /** + * Create or update an organization secret + * @description Creates or updates an organization development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["codespaces/create-or-update-org-secret"]; + /** + * Delete an organization secret + * @description Deletes an organization development environment secret using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["codespaces/delete-org-secret"]; + }; + "/orgs/{org}/codespaces/secrets/{secret_name}/repositories": { + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/list-selected-repos-for-org-secret"]; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["codespaces/set-selected-repos-for-org-secret"]; + }; + "/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}": { + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization development environment secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["codespaces/add-selected-repo-to-org-secret"]; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["codespaces/remove-selected-repo-from-org-secret"]; + }; + "/orgs/{org}/copilot/billing": { + /** + * Get Copilot seat information and settings for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Gets information about an organization's Copilot subscription, including seat breakdown + * and code matching policies. To configure these settings, go to your organization's settings on GitHub.com. + * For more information, see "[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-copilot-business-in-your-organization)". + * + * Only organization owners can configure and view details about the organization's Copilot Business subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + get: operations["copilot/get-copilot-organization-details"]; + }; + "/orgs/{org}/copilot/billing/seats": { + /** + * List all Copilot seat assignments for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Lists all Copilot seat assignments for an organization that are currently being billed (either active or pending cancellation at the start of the next billing cycle). + * + * Only organization owners can configure and view details about the organization's Copilot Business or Enterprise subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + get: operations["copilot/list-copilot-seats"]; + }; + "/orgs/{org}/copilot/billing/selected_teams": { + /** + * Add teams to the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for all users within each specified team. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + post: operations["copilot/add-copilot-seats-for-teams"]; + /** + * Remove teams from the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for all members of each team specified. + * This will cause the members of the specified team(s) to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + delete: operations["copilot/cancel-copilot-seat-assignment-for-teams"]; + }; + "/orgs/{org}/copilot/billing/selected_users": { + /** + * Add users to the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for each user specified. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + post: operations["copilot/add-copilot-seats-for-users"]; + /** + * Remove users from the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for each user specified. + * This will cause the specified users to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + delete: operations["copilot/cancel-copilot-seat-assignment-for-users"]; + }; + "/orgs/{org}/dependabot/alerts": { + /** + * List Dependabot alerts for an organization + * @description Lists Dependabot alerts for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["dependabot/list-alerts-for-org"]; + }; + "/orgs/{org}/dependabot/secrets": { + /** + * List organization secrets + * @description Lists all secrets available in an organization without revealing their + * encrypted values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["dependabot/list-org-secrets"]; + }; + "/orgs/{org}/dependabot/secrets/public-key": { + /** + * Get an organization public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["dependabot/get-org-public-key"]; + }; + "/orgs/{org}/dependabot/secrets/{secret_name}": { + /** + * Get an organization secret + * @description Gets a single organization secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["dependabot/get-org-secret"]; + /** + * Create or update an organization secret + * @description Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization + * permission to use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + put: operations["dependabot/create-or-update-org-secret"]; + /** + * Delete an organization secret + * @description Deletes a secret in an organization using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["dependabot/delete-org-secret"]; + }; + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories": { + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["dependabot/list-selected-repos-for-org-secret"]; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["dependabot/set-selected-repos-for-org-secret"]; + }; + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": { + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. The visibility is set when you [Create or + * update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["dependabot/add-selected-repo-to-org-secret"]; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["dependabot/remove-selected-repo-from-org-secret"]; + }; + "/orgs/{org}/docker/conflicts": { + /** + * Get list of conflicting packages during Docker migration for organization + * @description Lists all packages that are in a specific organization, are readable by the requesting user, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + get: operations["packages/list-docker-migration-conflicting-packages-for-organization"]; + }; + "/orgs/{org}/events": { + /** List public organization events */ + get: operations["activity/list-public-org-events"]; + }; + "/orgs/{org}/failed_invitations": { + /** + * List failed organization invitations + * @description The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. + */ + get: operations["orgs/list-failed-invitations"]; + }; + "/orgs/{org}/hooks": { + /** List organization webhooks */ + get: operations["orgs/list-webhooks"]; + /** + * Create an organization webhook + * @description Here's how you can create a hook that posts payloads in JSON format: + */ + post: operations["orgs/create-webhook"]; + }; + "/orgs/{org}/hooks/{hook_id}": { + /** + * Get an organization webhook + * @description Returns a webhook configured in an organization. To get only the webhook `config` properties, see "[Get a webhook configuration for an organization](/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization)." + */ + get: operations["orgs/get-webhook"]; + /** Delete an organization webhook */ + delete: operations["orgs/delete-webhook"]; + /** + * Update an organization webhook + * @description Updates a webhook configured in an organization. When you update a webhook, the `secret` will be overwritten. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for an organization](/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization)." + */ + patch: operations["orgs/update-webhook"]; + }; + "/orgs/{org}/hooks/{hook_id}/config": { + /** + * Get a webhook configuration for an organization + * @description Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/orgs/webhooks#get-an-organization-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org_hook` scope to use this endpoint. + */ + get: operations["orgs/get-webhook-config-for-org"]; + /** + * Update a webhook configuration for an organization + * @description Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/orgs/webhooks#update-an-organization-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org_hook` scope to use this endpoint. + */ + patch: operations["orgs/update-webhook-config-for-org"]; + }; + "/orgs/{org}/hooks/{hook_id}/deliveries": { + /** + * List deliveries for an organization webhook + * @description Returns a list of webhook deliveries for a webhook configured in an organization. + */ + get: operations["orgs/list-webhook-deliveries"]; + }; + "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}": { + /** + * Get a webhook delivery for an organization webhook + * @description Returns a delivery for a webhook configured in an organization. + */ + get: operations["orgs/get-webhook-delivery"]; + }; + "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": { + /** + * Redeliver a delivery for an organization webhook + * @description Redeliver a delivery for a webhook configured in an organization. + */ + post: operations["orgs/redeliver-webhook-delivery"]; + }; + "/orgs/{org}/hooks/{hook_id}/pings": { + /** + * Ping an organization webhook + * @description This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + post: operations["orgs/ping-webhook"]; + }; + "/orgs/{org}/installation": { + /** + * Get an organization installation for the authenticated app + * @description Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-org-installation"]; + }; + "/orgs/{org}/installations": { + /** + * List app installations for an organization + * @description Lists all GitHub Apps in an organization. The installation count includes + * all GitHub Apps installed on repositories in the organization. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:read` scope to use this endpoint. + */ + get: operations["orgs/list-app-installations"]; + }; + "/orgs/{org}/interaction-limits": { + /** + * Get interaction restrictions for an organization + * @description Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response. + */ + get: operations["interactions/get-restrictions-for-org"]; + /** + * Set interaction restrictions for an organization + * @description Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. + */ + put: operations["interactions/set-restrictions-for-org"]; + /** + * Remove interaction restrictions for an organization + * @description Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. + */ + delete: operations["interactions/remove-restrictions-for-org"]; + }; + "/orgs/{org}/invitations": { + /** + * List pending organization invitations + * @description The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, or `hiring_manager`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + get: operations["orgs/list-pending-invitations"]; + /** + * Create an organization invitation + * @description Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + post: operations["orgs/create-invitation"]; + }; + "/orgs/{org}/invitations/{invitation_id}": { + /** + * Cancel an organization invitation + * @description Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + */ + delete: operations["orgs/cancel-invitation"]; + }; + "/orgs/{org}/invitations/{invitation_id}/teams": { + /** + * List organization invitation teams + * @description List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + */ + get: operations["orgs/list-invitation-teams"]; + }; + "/orgs/{org}/issues": { + /** + * List organization issues assigned to the authenticated user + * @description List issues in an organization assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-for-org"]; + }; + "/orgs/{org}/members": { + /** + * List organization members + * @description List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + */ + get: operations["orgs/list-members"]; + }; + "/orgs/{org}/members/{username}": { + /** + * Check organization membership for a user + * @description Check if a user is, publicly or privately, a member of the organization. + */ + get: operations["orgs/check-membership-for-user"]; + /** + * Remove an organization member + * @description Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + */ + delete: operations["orgs/remove-member"]; + }; + "/orgs/{org}/members/{username}/codespaces": { + /** + * List codespaces for a user in organization + * @description Lists the codespaces that a member of an organization has for repositories in that organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/get-codespaces-for-user-in-org"]; + }; + "/orgs/{org}/members/{username}/codespaces/{codespace_name}": { + /** + * Delete a codespace from the organization + * @description Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["codespaces/delete-from-organization"]; + }; + "/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop": { + /** + * Stop a codespace for an organization user + * @description Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + post: operations["codespaces/stop-in-organization"]; + }; + "/orgs/{org}/members/{username}/copilot": { + /** + * Get Copilot seat assignment details for a user + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Gets the GitHub Copilot seat assignment details for a member of an organization who currently has access to GitHub Copilot. + * + * Organization owners can view GitHub Copilot seat assignment details for members in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + get: operations["copilot/get-copilot-seat-details-for-user"]; + }; + "/orgs/{org}/memberships/{username}": { + /** + * Get organization membership for a user + * @description In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status. + */ + get: operations["orgs/get-membership-for-user"]; + /** + * Set organization membership for a user + * @description Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + */ + put: operations["orgs/set-membership-for-user"]; + /** + * Remove organization membership for a user + * @description In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + */ + delete: operations["orgs/remove-membership-for-user"]; + }; + "/orgs/{org}/migrations": { + /** + * List organization migrations + * @description Lists the most recent migrations, including both exports (which can be started through the REST API) and imports (which cannot be started using the REST API). + * + * A list of `repositories` is only returned for export migrations. + */ + get: operations["migrations/list-for-org"]; + /** + * Start an organization migration + * @description Initiates the generation of a migration archive. + */ + post: operations["migrations/start-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}": { + /** + * Get an organization migration status + * @description Fetches the status of a migration. + * + * The `state` of a migration can be one of the following values: + * + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + get: operations["migrations/get-status-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/archive": { + /** + * Download an organization migration archive + * @description Fetches the URL to a migration archive. + */ + get: operations["migrations/download-archive-for-org"]; + /** + * Delete an organization migration archive + * @description Deletes a previous migration archive. Migration archives are automatically deleted after seven days. + */ + delete: operations["migrations/delete-archive-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": { + /** + * Unlock an organization repository + * @description Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/repos/repos#delete-a-repository) when the migration is complete and you no longer need the source data. + */ + delete: operations["migrations/unlock-repo-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/repositories": { + /** + * List repositories in an organization migration + * @description List all the repositories for this organization migration. + */ + get: operations["migrations/list-repos-for-org"]; + }; + "/orgs/{org}/organization-fine-grained-permissions": { + /** + * List organization fine-grained permissions for an organization + * @description Lists the fine-grained permissions that can be used in custom organization roles for an organization. For more information, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To list the fine-grained permissions that can be used in custom repository roles for an organization, see "[List repository fine-grained permissions for an organization](https://docs.github.com/rest/orgs/organization-roles#list-repository-fine-grained-permissions-for-an-organization)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/list-organization-fine-grained-permissions"]; + }; + "/orgs/{org}/organization-roles": { + /** + * Get all organization roles for an organization + * @description Lists the organization roles available in this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/list-org-roles"]; + /** + * Create a custom organization role + * @description Creates a custom organization role that can be assigned to users and teams, granting them specific permissions over the organization. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + post: operations["orgs/create-custom-organization-role"]; + }; + "/orgs/{org}/organization-roles/teams/{team_slug}": { + /** + * Remove all organization roles for a team + * @description Removes all assigned organization roles from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/revoke-all-org-roles-team"]; + }; + "/orgs/{org}/organization-roles/teams/{team_slug}/{role_id}": { + /** + * Assign an organization role to a team + * @description Assigns an organization role to a team in an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["orgs/assign-team-to-org-role"]; + /** + * Remove an organization role from a team + * @description Removes an organization role from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/revoke-org-role-team"]; + }; + "/orgs/{org}/organization-roles/users/{username}": { + /** + * Remove all organization roles for a user + * @description Revokes all assigned organization roles from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/revoke-all-org-roles-user"]; + }; + "/orgs/{org}/organization-roles/users/{username}/{role_id}": { + /** + * Assign an organization role to a user + * @description Assigns an organization role to a member of an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["orgs/assign-user-to-org-role"]; + /** + * Remove an organization role from a user + * @description Remove an organization role from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/revoke-org-role-user"]; + }; + "/orgs/{org}/organization-roles/{role_id}": { + /** + * Get an organization role + * @description Gets an organization role that is available to this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/get-org-role"]; + /** + * Delete a custom organization role. + * @description Deletes a custom organization role. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/delete-custom-organization-role"]; + /** + * Update a custom organization role + * @description Updates an existing custom organization role. Permission changes will apply to all assignees. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + patch: operations["orgs/patch-custom-organization-role"]; + }; + "/orgs/{org}/organization-roles/{role_id}/teams": { + /** + * List teams that are assigned to an organization role + * @description Lists the teams that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/list-org-role-teams"]; + }; + "/orgs/{org}/organization-roles/{role_id}/users": { + /** + * List users that are assigned to an organization role + * @description Lists organization members that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/list-org-role-users"]; + }; + "/orgs/{org}/outside_collaborators": { + /** + * List outside collaborators for an organization + * @description List all users who are outside collaborators of an organization. + */ + get: operations["orgs/list-outside-collaborators"]; + }; + "/orgs/{org}/outside_collaborators/{username}": { + /** + * Convert an organization member to outside collaborator + * @description When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://docs.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". Converting an organization member to an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + */ + put: operations["orgs/convert-member-to-outside-collaborator"]; + /** + * Remove outside collaborator from an organization + * @description Removing a user from this list will remove them from all the organization's repositories. + */ + delete: operations["orgs/remove-outside-collaborator"]; + }; + "/orgs/{org}/packages": { + /** + * List packages for an organization + * @description Lists packages in an organization readable by the user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/list-packages-for-organization"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}": { + /** + * Get a package for an organization + * @description Gets a specific package in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-for-organization"]; + /** + * Delete a package for an organization + * @description Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-for-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/restore": { + /** + * Restore a package for an organization + * @description Restores an entire package in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-for-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/versions": { + /** + * List package versions for a package owned by an organization + * @description Lists package versions for a package owned by an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-all-package-versions-for-package-owned-by-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": { + /** + * Get a package version for an organization + * @description Gets a specific package version in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-version-for-organization"]; + /** + * Delete package version for an organization + * @description Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-version-for-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + /** + * Restore package version for an organization + * @description Restores a specific package version in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-version-for-org"]; + }; + "/orgs/{org}/personal-access-token-requests": { + /** + * List requests to access organization resources with fine-grained personal access tokens + * @description Lists requests from organization members to access organization resources with a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + get: operations["orgs/list-pat-grant-requests"]; + /** + * Review requests to access organization resources with fine-grained personal access tokens + * @description Approves or denies multiple pending requests to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + post: operations["orgs/review-pat-grant-requests-in-bulk"]; + }; + "/orgs/{org}/personal-access-token-requests/{pat_request_id}": { + /** + * Review a request to access organization resources with a fine-grained personal access token + * @description Approves or denies a pending request to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + post: operations["orgs/review-pat-grant-request"]; + }; + "/orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories": { + /** + * List repositories requested to be accessed by a fine-grained personal access token + * @description Lists the repositories a fine-grained personal access token request is requesting access to. + * + * Only GitHub Apps can use this endpoint. + */ + get: operations["orgs/list-pat-grant-request-repositories"]; + }; + "/orgs/{org}/personal-access-tokens": { + /** + * List fine-grained personal access tokens with access to organization resources + * @description Lists approved fine-grained personal access tokens owned by organization members that can access organization resources. + * + * Only GitHub Apps can use this endpoint. + */ + get: operations["orgs/list-pat-grants"]; + /** + * Update the access to organization resources via fine-grained personal access tokens + * @description Updates the access organization members have to organization resources via fine-grained personal access tokens. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + post: operations["orgs/update-pat-accesses"]; + }; + "/orgs/{org}/personal-access-tokens/{pat_id}": { + /** + * Update the access a fine-grained personal access token has to organization resources + * @description Updates the access an organization member has to organization resources via a fine-grained personal access token. Limited to revoking the token's existing access. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + post: operations["orgs/update-pat-access"]; + }; + "/orgs/{org}/personal-access-tokens/{pat_id}/repositories": { + /** + * List repositories a fine-grained personal access token has access to + * @description Lists the repositories a fine-grained personal access token has access to. + * + * Only GitHub Apps can use this endpoint. + */ + get: operations["orgs/list-pat-grant-repositories"]; + }; + "/orgs/{org}/projects": { + /** + * List organization projects + * @description Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + get: operations["projects/list-for-org"]; + /** + * Create an organization project + * @description Creates an organization project board. Returns a `410 Gone` status if projects are disabled in the organization or if the organization does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + post: operations["projects/create-for-org"]; + }; + "/orgs/{org}/properties/schema": { + /** + * Get all custom properties for an organization + * @description Gets all custom properties defined for an organization. + * Organization members can read these properties. + */ + get: operations["orgs/get-all-custom-properties"]; + /** + * Create or update custom properties for an organization + * @description Creates new or updates existing custom properties defined for an organization in a batch. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + patch: operations["orgs/create-or-update-custom-properties"]; + }; + "/orgs/{org}/properties/schema/{custom_property_name}": { + /** + * Get a custom property for an organization + * @description Gets a custom property that is defined for an organization. + * Organization members can read these properties. + */ + get: operations["orgs/get-custom-property"]; + /** + * Create or update a custom property for an organization + * @description Creates a new or updates an existing custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + put: operations["orgs/create-or-update-custom-property"]; + /** + * Remove a custom property for an organization + * @description Removes a custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + delete: operations["orgs/remove-custom-property"]; + }; + "/orgs/{org}/properties/values": { + /** + * List custom property values for organization repositories + * @description Lists organization repositories with all of their custom property values. + * Organization members can read these properties. + */ + get: operations["orgs/list-custom-properties-values-for-repos"]; + /** + * Create or update custom property values for organization repositories + * @description Create new or update existing custom property values for repositories in a batch that belong to an organization. + * Each target repository will have its custom property values updated to match the values provided in the request. + * + * A maximum of 30 repositories can be updated in a single request. + * + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_values_editor` in the organization. + */ + patch: operations["orgs/create-or-update-custom-properties-values-for-repos"]; + }; + "/orgs/{org}/public_members": { + /** + * List public organization members + * @description Members of an organization can choose to have their membership publicized or not. + */ + get: operations["orgs/list-public-members"]; + }; + "/orgs/{org}/public_members/{username}": { + /** + * Check public organization membership for a user + * @description Check if the provided user is a public member of the organization. + */ + get: operations["orgs/check-public-membership-for-user"]; + /** + * Set public organization membership for the authenticated user + * @description The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["orgs/set-public-membership-for-authenticated-user"]; + /** + * Remove public organization membership for the authenticated user + * @description Removes the public membership for the authenticated user from the specified organization, unless public visibility is enforced by default. + */ + delete: operations["orgs/remove-public-membership-for-authenticated-user"]; + }; + "/orgs/{org}/repos": { + /** + * List organization repositories + * @description Lists repositories for the specified organization. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + get: operations["repos/list-for-org"]; + /** + * Create an organization repository + * @description Creates a new repository in the specified organization. The authenticated user must be a member of the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + post: operations["repos/create-in-org"]; + }; + "/orgs/{org}/rulesets": { + /** + * Get all organization repository rulesets + * @description Get all the repository rulesets for an organization. + */ + get: operations["repos/get-org-rulesets"]; + /** + * Create an organization repository ruleset + * @description Create a repository ruleset for an organization. + */ + post: operations["repos/create-org-ruleset"]; + }; + "/orgs/{org}/rulesets/rule-suites": { + /** + * List organization rule suites + * @description Lists suites of rule evaluations at the organization level. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + get: operations["repos/get-org-rule-suites"]; + }; + "/orgs/{org}/rulesets/rule-suites/{rule_suite_id}": { + /** + * Get an organization rule suite + * @description Gets information about a suite of rule evaluations from within an organization. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + get: operations["repos/get-org-rule-suite"]; + }; + "/orgs/{org}/rulesets/{ruleset_id}": { + /** + * Get an organization repository ruleset + * @description Get a repository ruleset for an organization. + */ + get: operations["repos/get-org-ruleset"]; + /** + * Update an organization repository ruleset + * @description Update a ruleset for an organization. + */ + put: operations["repos/update-org-ruleset"]; + /** + * Delete an organization repository ruleset + * @description Delete a ruleset for an organization. + */ + delete: operations["repos/delete-org-ruleset"]; + }; + "/orgs/{org}/secret-scanning/alerts": { + /** + * List secret scanning alerts for an organization + * @description Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["secret-scanning/list-alerts-for-org"]; + }; + "/orgs/{org}/security-advisories": { + /** + * List repository security advisories for an organization + * @description Lists repository security advisories for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + get: operations["security-advisories/list-org-repository-advisories"]; + }; + "/orgs/{org}/security-managers": { + /** + * List security manager teams + * @description Lists teams that are security managers for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + get: operations["orgs/list-security-manager-teams"]; + }; + "/orgs/{org}/security-managers/teams/{team_slug}": { + /** + * Add a security manager team + * @description Adds a team as a security manager for an organization. For more information, see "[Managing security for an organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) for an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + put: operations["orgs/add-security-manager-team"]; + /** + * Remove a security manager team + * @description Removes the security manager role from a team for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) team from an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/remove-security-manager-team"]; + }; + "/orgs/{org}/settings/billing/actions": { + /** + * Get GitHub Actions billing for an organization + * @description Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + get: operations["billing/get-github-actions-billing-org"]; + }; + "/orgs/{org}/settings/billing/packages": { + /** + * Get GitHub Packages billing for an organization + * @description Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + get: operations["billing/get-github-packages-billing-org"]; + }; + "/orgs/{org}/settings/billing/shared-storage": { + /** + * Get shared storage billing for an organization + * @description Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + get: operations["billing/get-shared-storage-billing-org"]; + }; + "/orgs/{org}/teams": { + /** + * List teams + * @description Lists all teams in an organization that are visible to the authenticated user. + */ + get: operations["teams/list"]; + /** + * Create a team + * @description To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://docs.github.com/articles/setting-team-creation-permissions-in-your-organization)." + * + * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/about-teams)". + */ + post: operations["teams/create"]; + }; + "/orgs/{org}/teams/{team_slug}": { + /** + * Get a team by name + * @description Gets a team using the team's `slug`. To create the `slug`, GitHub replaces special characters in the `name` string, changes all words to lowercase, and replaces spaces with a `-` separator. For example, `"My TEam Näme"` would become `my-team-name`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + */ + get: operations["teams/get-by-name"]; + /** + * Delete a team + * @description To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + */ + delete: operations["teams/delete-in-org"]; + /** + * Update a team + * @description To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + */ + patch: operations["teams/update-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions": { + /** + * List discussions + * @description List all discussions on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/list-discussions-in-org"]; + /** + * Create a discussion + * @description Creates a new discussion post on a team's page. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["teams/create-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": { + /** + * Get a discussion + * @description Get a specific discussion on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/get-discussion-in-org"]; + /** + * Delete a discussion + * @description Delete a discussion from a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["teams/delete-discussion-in-org"]; + /** + * Update a discussion + * @description Edits the title and body text of a discussion post. Only the parameters you provide are updated. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + patch: operations["teams/update-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": { + /** + * List discussion comments + * @description List all comments on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/list-discussion-comments-in-org"]; + /** + * Create a discussion comment + * @description Creates a new comment on a team discussion. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["teams/create-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": { + /** + * Get a discussion comment + * @description Get a specific comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/get-discussion-comment-in-org"]; + /** + * Delete a discussion comment + * @description Deletes a comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["teams/delete-discussion-comment-in-org"]; + /** + * Update a discussion comment + * @description Edits the body text of a discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + patch: operations["teams/update-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + /** + * List reactions for a team discussion comment + * @description List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["reactions/list-for-team-discussion-comment-in-org"]; + /** + * Create reaction for a team discussion comment + * @description Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["reactions/create-for-team-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}": { + /** + * Delete team discussion comment reaction + * @description **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["reactions/delete-for-team-discussion-comment"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": { + /** + * List reactions for a team discussion + * @description List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["reactions/list-for-team-discussion-in-org"]; + /** + * Create reaction for a team discussion + * @description Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["reactions/create-for-team-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}": { + /** + * Delete team discussion reaction + * @description **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["reactions/delete-for-team-discussion"]; + }; + "/orgs/{org}/teams/{team_slug}/invitations": { + /** + * List pending team invitations + * @description The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + */ + get: operations["teams/list-pending-invitations-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/members": { + /** + * List team members + * @description Team members will include the members of child teams. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + get: operations["teams/list-members-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/memberships/{username}": { + /** + * Get team membership for a user + * @description Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + */ + get: operations["teams/get-membership-for-user-in-org"]; + /** + * Add or update team membership for a user + * @description Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + put: operations["teams/add-or-update-membership-for-user-in-org"]; + /** + * Remove team membership for a user + * @description To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + delete: operations["teams/remove-membership-for-user-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/projects": { + /** + * List team projects + * @description Lists the organization projects for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. + */ + get: operations["teams/list-projects-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/projects/{project_id}": { + /** + * Check team permissions for a project + * @description Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + get: operations["teams/check-permissions-for-project-in-org"]; + /** + * Add or update team project permissions + * @description Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + put: operations["teams/add-or-update-project-permissions-in-org"]; + /** + * Remove a project from a team + * @description Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + delete: operations["teams/remove-project-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/repos": { + /** + * List team repositories + * @description Lists a team's repositories visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. + */ + get: operations["teams/list-repos-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": { + /** + * Check team permissions for a repository + * @description Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header. + * + * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. + * + * If the repository is private, you must have at least `read` permission for that repository, and your token must have the `repo` or `admin:org` scope. Otherwise, you will receive a `404 Not Found` response status. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + get: operations["teams/check-permissions-for-repo-in-org"]; + /** + * Add or update team repository permissions + * @description To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + * + * For more information about the permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + */ + put: operations["teams/add-or-update-repo-permissions-in-org"]; + /** + * Remove a repository from a team + * @description If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + delete: operations["teams/remove-repo-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/teams": { + /** + * List child teams + * @description Lists the child teams of the team specified by `{team_slug}`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. + */ + get: operations["teams/list-child-in-org"]; + }; + "/orgs/{org}/{security_product}/{enablement}": { + /** + * Enable or disable a security feature for an organization + * @description Enables or disables the specified security feature for all eligible repositories in an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an organization owner or be member of a team with the security manager role to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + post: operations["orgs/enable-or-disable-security-product-on-all-org-repos"]; + }; + "/projects/columns/cards/{card_id}": { + /** + * Get a project card + * @description Gets information about a project card. + */ + get: operations["projects/get-card"]; + /** + * Delete a project card + * @description Deletes a project card + */ + delete: operations["projects/delete-card"]; + /** Update an existing project card */ + patch: operations["projects/update-card"]; + }; + "/projects/columns/cards/{card_id}/moves": { + /** Move a project card */ + post: operations["projects/move-card"]; + }; + "/projects/columns/{column_id}": { + /** + * Get a project column + * @description Gets information about a project column. + */ + get: operations["projects/get-column"]; + /** + * Delete a project column + * @description Deletes a project column. + */ + delete: operations["projects/delete-column"]; + /** Update an existing project column */ + patch: operations["projects/update-column"]; + }; + "/projects/columns/{column_id}/cards": { + /** + * List project cards + * @description Lists the project cards in a project. + */ + get: operations["projects/list-cards"]; + /** Create a project card */ + post: operations["projects/create-card"]; + }; + "/projects/columns/{column_id}/moves": { + /** Move a project column */ + post: operations["projects/move-column"]; + }; + "/projects/{project_id}": { + /** + * Get a project + * @description Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + get: operations["projects/get"]; + /** + * Delete a project + * @description Deletes a project board. Returns a `404 Not Found` status if projects are disabled. + */ + delete: operations["projects/delete"]; + /** + * Update a project + * @description Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + patch: operations["projects/update"]; + }; + "/projects/{project_id}/collaborators": { + /** + * List project collaborators + * @description Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. + */ + get: operations["projects/list-collaborators"]; + }; + "/projects/{project_id}/collaborators/{username}": { + /** + * Add project collaborator + * @description Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. + */ + put: operations["projects/add-collaborator"]; + /** + * Remove user as a collaborator + * @description Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. + */ + delete: operations["projects/remove-collaborator"]; + }; + "/projects/{project_id}/collaborators/{username}/permission": { + /** + * Get project permission for a user + * @description Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. + */ + get: operations["projects/get-permission-for-user"]; + }; + "/projects/{project_id}/columns": { + /** + * List project columns + * @description Lists the project columns in a project. + */ + get: operations["projects/list-columns"]; + /** + * Create a project column + * @description Creates a new project column. + */ + post: operations["projects/create-column"]; + }; + "/rate_limit": { + /** + * Get rate limit status for the authenticated user + * @description **Note:** Accessing this endpoint does not count against your REST API rate limit. + * + * Some categories of endpoints have custom rate limits that are separate from the rate limit governing the other REST API endpoints. For this reason, the API response categorizes your rate limit. Under `resources`, you'll see objects relating to different categories: + * * The `core` object provides your rate limit status for all non-search-related resources in the REST API. + * * The `search` object provides your rate limit status for the REST API for searching (excluding code searches). For more information, see "[Search](https://docs.github.com/rest/search/search)." + * * The `code_search` object provides your rate limit status for the REST API for searching code. For more information, see "[Search code](https://docs.github.com/rest/search/search#search-code)." + * * The `graphql` object provides your rate limit status for the GraphQL API. For more information, see "[Resource limitations](https://docs.github.com/graphql/overview/resource-limitations#rate-limit)." + * * The `integration_manifest` object provides your rate limit status for the `POST /app-manifests/{code}/conversions` operation. For more information, see "[Creating a GitHub App from a manifest](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app-from-a-manifest#3-you-exchange-the-temporary-code-to-retrieve-the-app-configuration)." + * * The `dependency_snapshots` object provides your rate limit status for submitting snapshots to the dependency graph. For more information, see "[Dependency graph](https://docs.github.com/rest/dependency-graph)." + * * The `code_scanning_upload` object provides your rate limit status for uploading SARIF results to code scanning. For more information, see "[Uploading a SARIF file to GitHub](https://docs.github.com/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github)." + * * The `actions_runner_registration` object provides your rate limit status for registering self-hosted runners in GitHub Actions. For more information, see "[Self-hosted runners](https://docs.github.com/rest/actions/self-hosted-runners)." + * * The `source_import` object is no longer in use for any API endpoints, and it will be removed in the next API version. For more information about API versions, see "[API Versions](https://docs.github.com/rest/overview/api-versions)." + * + * **Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + */ + get: operations["rate-limit/get"]; + }; + "/repos/{owner}/{repo}": { + /** + * Get a repository + * @description The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + get: operations["repos/get"]; + /** + * Delete a repository + * @description Deleting a repository requires admin access. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned + * repositories, you will get a `403 Forbidden` response. + * + * OAuth app tokens and personal access tokens (classic) need the `delete_repo` scope to use this endpoint. + */ + delete: operations["repos/delete"]; + /** + * Update a repository + * @description **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/repos/repos#replace-all-repository-topics) endpoint. + */ + patch: operations["repos/update"]; + }; + "/repos/{owner}/{repo}/actions/artifacts": { + /** + * List artifacts for a repository + * @description Lists all artifacts for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-artifacts-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}": { + /** + * Get an artifact + * @description Gets a specific artifact for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-artifact"]; + /** + * Delete an artifact + * @description Deletes an artifact for a workflow run. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-artifact"]; + }; + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": { + /** + * Download an artifact + * @description Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + * the response header to find the URL for the download. The `:archive_format` must be `zip`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/download-artifact"]; + }; + "/repos/{owner}/{repo}/actions/cache/usage": { + /** + * Get GitHub Actions cache usage for a repository + * @description Gets GitHub Actions cache usage for a repository. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-actions-cache-usage"]; + }; + "/repos/{owner}/{repo}/actions/caches": { + /** + * List GitHub Actions caches for a repository + * @description Lists the GitHub Actions caches for a repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-actions-cache-list"]; + /** + * Delete GitHub Actions caches for a repository (using a cache key) + * @description Deletes one or more GitHub Actions caches for a repository, using a complete cache key. By default, all caches that match the provided key are deleted, but you can optionally provide a Git ref to restrict deletions to caches that match both the provided key and the Git ref. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-actions-cache-by-key"]; + }; + "/repos/{owner}/{repo}/actions/caches/{cache_id}": { + /** + * Delete a GitHub Actions cache for a repository (using a cache ID) + * @description Deletes a GitHub Actions cache for a repository, using a cache ID. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-actions-cache-by-id"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}": { + /** + * Get a job for a workflow run + * @description Gets a specific job in a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-job-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}/logs": { + /** + * Download job logs for a workflow run + * @description Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + * for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/download-job-logs-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun": { + /** + * Re-run a job from a workflow run + * @description Re-run a job and its dependent jobs in a workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/re-run-job-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/oidc/customization/sub": { + /** + * Get the customization template for an OIDC subject claim for a repository + * @description Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-custom-oidc-sub-claim-for-repo"]; + /** + * Set the customization template for an OIDC subject claim for a repository + * @description Sets the customization template and `opt-in` or `opt-out` flag for an OpenID Connect (OIDC) subject claim for a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-custom-oidc-sub-claim-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/organization-secrets": { + /** + * List repository organization secrets + * @description Lists all organization secrets shared with a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-repo-organization-secrets"]; + }; + "/repos/{owner}/{repo}/actions/organization-variables": { + /** + * List repository organization variables + * @description Lists all organization variables shared with a repository. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-repo-organization-variables"]; + }; + "/repos/{owner}/{repo}/actions/permissions": { + /** + * Get GitHub Actions permissions for a repository + * @description Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-github-actions-permissions-repository"]; + /** + * Set GitHub Actions permissions for a repository + * @description Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-github-actions-permissions-repository"]; + }; + "/repos/{owner}/{repo}/actions/permissions/access": { + /** + * Get the level of access for workflows outside of the repository + * @description Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-workflow-access-to-repository"]; + /** + * Set the level of access for workflows outside of the repository + * @description Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-workflow-access-to-repository"]; + }; + "/repos/{owner}/{repo}/actions/permissions/selected-actions": { + /** + * Get allowed actions and reusable workflows for a repository + * @description Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-allowed-actions-repository"]; + /** + * Set allowed actions and reusable workflows for a repository + * @description Sets the actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-allowed-actions-repository"]; + }; + "/repos/{owner}/{repo}/actions/permissions/workflow": { + /** + * Get default workflow permissions for a repository + * @description Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, + * as well as if GitHub Actions can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-github-actions-default-workflow-permissions-repository"]; + /** + * Set default workflow permissions for a repository + * @description Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, and sets if GitHub Actions + * can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-github-actions-default-workflow-permissions-repository"]; + }; + "/repos/{owner}/{repo}/actions/runners": { + /** + * List self-hosted runners for a repository + * @description Lists all self-hosted runners configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-self-hosted-runners-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/downloads": { + /** + * List runner applications for a repository + * @description Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-runner-applications-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/generate-jitconfig": { + /** + * Create configuration for a just-in-time runner for a repository + * @description Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the repository. + * + * OAuth tokens and personal access tokens (classic) need the`repo` scope to use this endpoint. + */ + post: operations["actions/generate-runner-jitconfig-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/registration-token": { + /** + * Create a registration token for a repository + * @description Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-registration-token-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/remove-token": { + /** + * Create a remove token for a repository + * @description Returns a token that you can pass to the `config` script to remove a self-hosted runner from an repository. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-remove-token-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/{runner_id}": { + /** + * Get a self-hosted runner for a repository + * @description Gets a specific self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-self-hosted-runner-for-repo"]; + /** + * Delete a self-hosted runner from a repository + * @description Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-self-hosted-runner-from-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels": { + /** + * List labels for a self-hosted runner for a repository + * @description Lists all labels for a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-labels-for-self-hosted-runner-for-repo"]; + /** + * Set custom labels for a self-hosted runner for a repository + * @description Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-custom-labels-for-self-hosted-runner-for-repo"]; + /** + * Add custom labels to a self-hosted runner for a repository + * @description Adds custom labels to a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/add-custom-labels-to-self-hosted-runner-for-repo"]; + /** + * Remove all custom labels from a self-hosted runner for a repository + * @description Remove all custom labels from a self-hosted runner configured in a + * repository. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/remove-all-custom-labels-from-self-hosted-runner-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}": { + /** + * Remove a custom label from a self-hosted runner for a repository + * @description Remove a custom label from a self-hosted runner configured + * in a repository. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/remove-custom-label-from-self-hosted-runner-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runs": { + /** + * List workflow runs for a repository + * @description Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-workflow-runs-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}": { + /** + * Get a workflow run + * @description Gets a specific workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow-run"]; + /** + * Delete a workflow run + * @description Deletes a specific workflow run. + * + * Anyone with write access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/approvals": { + /** + * Get the review history for a workflow run + * @description Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-reviews-for-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/approve": { + /** + * Approve a workflow run for a fork pull request + * @description Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see ["Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/approve-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": { + /** + * List workflow run artifacts + * @description Lists artifacts for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-workflow-run-artifacts"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}": { + /** + * Get a workflow run attempt + * @description Gets a specific workflow run attempt. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow-run-attempt"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": { + /** + * List jobs for a workflow run attempt + * @description Lists jobs for a specific workflow run attempt. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-jobs-for-workflow-run-attempt"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs": { + /** + * Download workflow run attempt logs + * @description Gets a redirect URL to download an archive of log files for a specific workflow run attempt. This link expires after + * 1 minute. Look for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/download-workflow-run-attempt-logs"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/cancel": { + /** + * Cancel a workflow run + * @description Cancels a workflow run using its `id`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/cancel-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule": { + /** + * Review custom deployment protection rules for a workflow run + * @description Approve or reject custom deployment protection rules provided by a GitHub App for a workflow run. For more information, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * **Note:** GitHub Apps can only review their own custom deployment protection rules. + * To approve or reject pending deployments that are waiting for review from a specific person or team, see [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + post: operations["actions/review-custom-gates-for-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel": { + /** + * Force cancel a workflow run + * @description Cancels a workflow run and bypasses conditions that would otherwise cause a workflow execution to continue, such as an `always()` condition on a job. + * You should only use this endpoint to cancel a workflow run when the workflow run is not responding to [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel`](/rest/actions/workflow-runs#cancel-a-workflow-run). + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/force-cancel-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/jobs": { + /** + * List jobs for a workflow run + * @description Lists jobs for a workflow run. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-jobs-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/logs": { + /** + * Download workflow run logs + * @description Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for + * `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/download-workflow-run-logs"]; + /** + * Delete workflow run logs + * @description Deletes all logs for a workflow run. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-workflow-run-logs"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": { + /** + * Get pending deployments for a workflow run + * @description Get all deployment environments for a workflow run that are waiting for protection rules to pass. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-pending-deployments-for-run"]; + /** + * Review pending deployments for a workflow run + * @description Approve or reject pending deployments that are waiting on approval by a required reviewer. + * + * Required reviewers with read access to the repository contents and deployments can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/review-pending-deployments-for-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun": { + /** + * Re-run a workflow + * @description Re-runs your workflow run using its `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/re-run-workflow"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs": { + /** + * Re-run failed jobs from a workflow run + * @description Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/re-run-workflow-failed-jobs"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/timing": { + /** + * Get workflow run usage + * @description Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow-run-usage"]; + }; + "/repos/{owner}/{repo}/actions/secrets": { + /** + * List repository secrets + * @description Lists all secrets available in a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-repo-secrets"]; + }; + "/repos/{owner}/{repo}/actions/secrets/public-key": { + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-repo-public-key"]; + }; + "/repos/{owner}/{repo}/actions/secrets/{secret_name}": { + /** + * Get a repository secret + * @description Gets a single repository secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-repo-secret"]; + /** + * Create or update a repository secret + * @description Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/create-or-update-repo-secret"]; + /** + * Delete a repository secret + * @description Deletes a secret in a repository using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-repo-secret"]; + }; + "/repos/{owner}/{repo}/actions/variables": { + /** + * List repository variables + * @description Lists all repository variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-repo-variables"]; + /** + * Create a repository variable + * @description Creates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-repo-variable"]; + }; + "/repos/{owner}/{repo}/actions/variables/{name}": { + /** + * Get a repository variable + * @description Gets a specific variable in a repository. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-repo-variable"]; + /** + * Delete a repository variable + * @description Deletes a repository variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-repo-variable"]; + /** + * Update a repository variable + * @description Updates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + patch: operations["actions/update-repo-variable"]; + }; + "/repos/{owner}/{repo}/actions/workflows": { + /** + * List repository workflows + * @description Lists the workflows in a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-repo-workflows"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}": { + /** + * Get a workflow + * @description Gets a specific workflow. You can replace `workflow_id` with the workflow + * file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": { + /** + * Disable a workflow + * @description Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/disable-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": { + /** + * Create a workflow dispatch event + * @description You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-workflow-dispatch"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": { + /** + * Enable a workflow + * @description Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/enable-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": { + /** + * List workflow runs for a workflow + * @description List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-workflow-runs"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": { + /** + * Get workflow usage + * @description Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow-usage"]; + }; + "/repos/{owner}/{repo}/activity": { + /** + * List repository activities + * @description Lists a detailed history of changes to a repository, such as pushes, merges, force pushes, and branch changes, and associates these changes with commits and users. + * + * For more information about viewing repository activity, + * see "[Viewing activity and data for your repository](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository)." + */ + get: operations["repos/list-activities"]; + }; + "/repos/{owner}/{repo}/assignees": { + /** + * List assignees + * @description Lists the [available assignees](https://docs.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. + */ + get: operations["issues/list-assignees"]; + }; + "/repos/{owner}/{repo}/assignees/{assignee}": { + /** + * Check if a user can be assigned + * @description Checks if a user has permission to be assigned to an issue in this repository. + * + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + get: operations["issues/check-user-can-be-assigned"]; + }; + "/repos/{owner}/{repo}/autolinks": { + /** + * Get all autolinks of a repository + * @description Gets all autolinks that are configured for a repository. + * + * Information about autolinks are only available to repository administrators. + */ + get: operations["repos/list-autolinks"]; + /** + * Create an autolink reference for a repository + * @description Users with admin access to the repository can create an autolink. + */ + post: operations["repos/create-autolink"]; + }; + "/repos/{owner}/{repo}/autolinks/{autolink_id}": { + /** + * Get an autolink reference of a repository + * @description This returns a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + get: operations["repos/get-autolink"]; + /** + * Delete an autolink reference from a repository + * @description This deletes a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + delete: operations["repos/delete-autolink"]; + }; + "/repos/{owner}/{repo}/automated-security-fixes": { + /** + * Check if automated security fixes are enabled for a repository + * @description Shows whether automated security fixes are enabled, disabled or paused for a repository. The authenticated user must have admin read access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + get: operations["repos/check-automated-security-fixes"]; + /** + * Enable automated security fixes + * @description Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + put: operations["repos/enable-automated-security-fixes"]; + /** + * Disable automated security fixes + * @description Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + delete: operations["repos/disable-automated-security-fixes"]; + }; + "/repos/{owner}/{repo}/branches": { + /** List branches */ + get: operations["repos/list-branches"]; + }; + "/repos/{owner}/{repo}/branches/{branch}": { + /** Get a branch */ + get: operations["repos/get-branch"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection": { + /** + * Get branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-branch-protection"]; + /** + * Update branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * + * **Note**: The list of users, apps, and teams in total is limited to 100 items. + */ + put: operations["repos/update-branch-protection"]; + /** + * Delete branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + delete: operations["repos/delete-branch-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": { + /** + * Get admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-admin-branch-protection"]; + /** + * Set admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + post: operations["repos/set-admin-branch-protection"]; + /** + * Delete admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + delete: operations["repos/delete-admin-branch-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": { + /** + * Get pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-pull-request-review-protection"]; + /** + * Delete pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + delete: operations["repos/delete-pull-request-review-protection"]; + /** + * Update pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + */ + patch: operations["repos/update-pull-request-review-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": { + /** + * Get commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://docs.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * + * **Note**: You must enable branch protection to require signed commits. + */ + get: operations["repos/get-commit-signature-protection"]; + /** + * Create commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + */ + post: operations["repos/create-commit-signature-protection"]; + /** + * Delete commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + */ + delete: operations["repos/delete-commit-signature-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": { + /** + * Get status checks protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-status-checks-protection"]; + /** + * Remove status check protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + delete: operations["repos/remove-status-check-protection"]; + /** + * Update status check protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + */ + patch: operations["repos/update-status-check-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": { + /** + * Get all status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-all-status-check-contexts"]; + /** + * Set status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + put: operations["repos/set-status-check-contexts"]; + /** + * Add status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + post: operations["repos/add-status-check-contexts"]; + /** + * Remove status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + delete: operations["repos/remove-status-check-contexts"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions": { + /** + * Get access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists who has access to this protected branch. + * + * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + */ + get: operations["repos/get-access-restrictions"]; + /** + * Delete access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Disables the ability to restrict who can push to this branch. + */ + delete: operations["repos/delete-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": { + /** + * Get apps with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + get: operations["repos/get-apps-with-access-to-protected-branch"]; + /** + * Set app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + put: operations["repos/set-app-access-restrictions"]; + /** + * Add app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified apps push access for this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + post: operations["repos/add-app-access-restrictions"]; + /** + * Remove app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of an app to push to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + delete: operations["repos/remove-app-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": { + /** + * Get teams with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. The list includes child teams. + */ + get: operations["repos/get-teams-with-access-to-protected-branch"]; + /** + * Set team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + */ + put: operations["repos/set-team-access-restrictions"]; + /** + * Add team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified teams push access for this branch. You can also give push access to child teams. + */ + post: operations["repos/add-team-access-restrictions"]; + /** + * Remove team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + */ + delete: operations["repos/remove-team-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": { + /** + * Get users with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + */ + get: operations["repos/get-users-with-access-to-protected-branch"]; + /** + * Set user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + put: operations["repos/set-user-access-restrictions"]; + /** + * Add user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified people push access for this branch. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + post: operations["repos/add-user-access-restrictions"]; + /** + * Remove user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a user to push to this branch. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + delete: operations["repos/remove-user-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/rename": { + /** + * Rename a branch + * @description Renames a branch in a repository. + * + * **Note:** Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)". + * + * The authenticated user must have push access to the branch. If the branch is the default branch, the authenticated user must also have admin or owner permissions. + * + * In order to rename the default branch, fine-grained access tokens also need the `administration:write` repository permission. + */ + post: operations["repos/rename-branch"]; + }; + "/repos/{owner}/{repo}/check-runs": { + /** + * Create a check run + * @description **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + * + * In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. + */ + post: operations["checks/create"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}": { + /** + * Get a check run + * @description Gets a single check run using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/get"]; + /** + * Update a check run + * @description Updates a check run for a specific commit in a repository. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + patch: operations["checks/update"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": { + /** + * List check run annotations + * @description Lists annotations for a check run using the annotation `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/list-annotations"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest": { + /** + * Rerequest a check run + * @description Triggers GitHub to rerequest an existing check run, without pushing new code to a repository. This endpoint will trigger the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) event with the action `rerequested`. When a check run is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * For more information about how to re-run GitHub Actions jobs, see "[Re-run a job from a workflow run](https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run)". + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + post: operations["checks/rerequest-run"]; + }; + "/repos/{owner}/{repo}/check-suites": { + /** + * Create a check suite + * @description Creates a check suite manually. By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/checks/runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites)". + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + post: operations["checks/create-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/preferences": { + /** + * Update repository preferences for check suites + * @description Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/checks/suites#create-a-check-suite). + * You must have admin permissions in the repository to set preferences for check suites. + */ + patch: operations["checks/set-suites-preferences"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}": { + /** + * Get a check suite + * @description Gets a single check suite using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/get-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": { + /** + * List check runs in a check suite + * @description Lists check runs for a check suite using its `id`. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/list-for-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": { + /** + * Rerequest a check suite + * @description Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + post: operations["checks/rerequest-suite"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts": { + /** + * List code scanning alerts for a repository + * @description Lists all open code scanning alerts for the default branch (usually `main` + * or `master`). You must use an access token with the `security_events` scope to use + * this endpoint with private repos, the `public_repo` scope also grants permission to read + * security events on public repos only. GitHub Apps must have the `security_events` read + * permission to use this endpoint. + * + * The response includes a `most_recent_instance` object. + * This provides details of the most recent instance of this alert + * for the default branch or for the specified Git reference + * (if you used `ref` in the request). + */ + get: operations["code-scanning/list-alerts-for-repo"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": { + /** + * Get a code scanning alert + * @description Gets a single code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-alert"]; + /** + * Update a code scanning alert + * @description Updates the status of a single code scanning alert. + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + patch: operations["code-scanning/update-alert"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": { + /** + * List instances of a code scanning alert + * @description Lists all instances of the specified code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/list-alert-instances"]; + }; + "/repos/{owner}/{repo}/code-scanning/analyses": { + /** + * List code scanning analyses for a repository + * @description Lists the details of all code scanning analyses for a repository, + * starting with the most recent. + * The response is paginated and you can use the `page` and `per_page` parameters + * to list the analyses you're interested in. + * By default 30 analyses are listed per page. + * + * The `rules_count` field in the response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * **Deprecation notice**: + * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/list-recent-analyses"]; + }; + "/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}": { + /** + * Get a code scanning analysis for a repository + * @description Gets a specified code scanning analysis for a repository. + * + * The default JSON response contains fields that describe the analysis. + * This includes the Git reference and commit SHA to which the analysis relates, + * the datetime of the analysis, the name of the code scanning tool, + * and the number of alerts. + * + * The `rules_count` field in the default response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/sarif+json`**: Instead of returning a summary of the analysis, this endpoint returns a subset of the analysis data that was uploaded. The data is formatted as [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). It also returns additional data such as the `github/alertNumber` and `github/alertUrl` properties. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-analysis"]; + /** + * Delete a code scanning analysis from a repository + * @description Deletes a specified code scanning analysis from a repository. + * + * You can delete one analysis at a time. + * To delete a series of analyses, start with the most recent analysis and work backwards. + * Conceptually, the process is similar to the undo function in a text editor. + * + * When you list the analyses for a repository, + * one or more will be identified as deletable in the response: + * + * ``` + * "deletable": true + * ``` + * + * An analysis is deletable when it's the most recent in a set of analyses. + * Typically, a repository will have multiple sets of analyses + * for each enabled code scanning tool, + * where a set is determined by a unique combination of analysis values: + * + * * `ref` + * * `tool` + * * `category` + * + * If you attempt to delete an analysis that is not the most recent in a set, + * you'll get a 400 response with the message: + * + * ``` + * Analysis specified is not deletable. + * ``` + * + * The response from a successful `DELETE` operation provides you with + * two alternative URLs for deleting the next analysis in the set: + * `next_analysis_url` and `confirm_delete_url`. + * Use the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis + * in a set. This is a useful option if you want to preserve at least one analysis + * for the specified tool in your repository. + * Use the `confirm_delete_url` URL if you are content to remove all analyses for a tool. + * When you delete the last analysis in a set, the value of `next_analysis_url` and `confirm_delete_url` + * in the 200 response is `null`. + * + * As an example of the deletion process, + * let's imagine that you added a workflow that configured a particular code scanning tool + * to analyze the code in a repository. This tool has added 15 analyses: + * 10 on the default branch, and another 5 on a topic branch. + * You therefore have two separate sets of analyses for this tool. + * You've now decided that you want to remove all of the analyses for the tool. + * To do this you must make 15 separate deletion requests. + * To start, you must find an analysis that's identified as deletable. + * Each set of analyses always has one that's identified as deletable. + * Having found the deletable analysis for one of the two sets, + * delete this analysis and then continue deleting the next analysis in the set until they're all deleted. + * Then repeat the process for the second set. + * The procedure therefore consists of a nested loop: + * + * **Outer loop**: + * * List the analyses for the repository, filtered by tool. + * * Parse this list to find a deletable analysis. If found: + * + * **Inner loop**: + * * Delete the identified analysis. + * * Parse the response for the value of `confirm_delete_url` and, if found, use this in the next iteration. + * + * The above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + delete: operations["code-scanning/delete-analysis"]; + }; + "/repos/{owner}/{repo}/code-scanning/codeql/databases": { + /** + * List CodeQL databases for a repository + * @description Lists the CodeQL databases that are available in a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/list-codeql-databases"]; + }; + "/repos/{owner}/{repo}/code-scanning/codeql/databases/{language}": { + /** + * Get a CodeQL database for a repository + * @description Gets a CodeQL database for a language in a repository. + * + * By default this endpoint returns JSON metadata about the CodeQL database. To + * download the CodeQL database binary content, set the `Accept` header of the request + * to [`application/zip`](https://docs.github.com/rest/overview/media-types), and make sure + * your HTTP client is configured to follow redirects or use the `Location` header + * to make a second request to get the redirect URL. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-codeql-database"]; + }; + "/repos/{owner}/{repo}/code-scanning/default-setup": { + /** + * Get a code scanning default setup configuration + * @description Gets a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-default-setup"]; + /** + * Update a code scanning default setup configuration + * @description Updates a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + patch: operations["code-scanning/update-default-setup"]; + }; + "/repos/{owner}/{repo}/code-scanning/sarifs": { + /** + * Upload an analysis as SARIF data + * @description Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. For troubleshooting information, see "[Troubleshooting SARIF uploads](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif)." + * + * There are two places where you can upload code scanning results. + * - If you upload to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)." + * - If you upload to a branch, for example `--ref refs/heads/my-branch`, then the results appear in the **Security** tab for your repository. For more information, see "[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)." + * + * You must compress the SARIF-formatted analysis data that you want to upload, using `gzip`, and then encode it as a Base64 format string. For example: + * + * ``` + * gzip -c analysis-data.sarif | base64 -w0 + * ``` + * + * SARIF upload supports a maximum number of entries per the following data objects, and an analysis will be rejected if any of these objects is above its maximum value. For some objects, there are additional values over which the entries will be ignored while keeping the most important entries whenever applicable. + * To get the most out of your analysis when it includes data above the supported limits, try to optimize the analysis configuration. For example, for the CodeQL tool, identify and remove the most noisy queries. For more information, see "[SARIF results exceed one or more limits](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif/results-exceed-limit)." + * + * + * | **SARIF data** | **Maximum values** | **Additional limits** | + * |----------------------------------|:------------------:|----------------------------------------------------------------------------------| + * | Runs per file | 20 | | + * | Results per run | 25,000 | Only the top 5,000 results will be included, prioritized by severity. | + * | Rules per run | 25,000 | | + * | Tool extensions per run | 100 | | + * | Thread Flow Locations per result | 10,000 | Only the top 1,000 Thread Flow Locations will be included, using prioritization. | + * | Location per result | 1,000 | Only 100 locations will be included. | + * | Tags per rule | 20 | Only 10 tags will be included. | + * + * + * The `202 Accepted` response includes an `id` value. + * You can use this ID to check the status of the upload by using it in the `/sarifs/{sarif_id}` endpoint. + * For more information, see "[Get information about a SARIF upload](/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + post: operations["code-scanning/upload-sarif"]; + }; + "/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}": { + /** + * Get information about a SARIF upload + * @description Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see "[Get a code scanning analysis for a repository](/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository)." + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-sarif"]; + }; + "/repos/{owner}/{repo}/codeowners/errors": { + /** + * List CODEOWNERS errors + * @description List any syntax errors that are detected in the CODEOWNERS + * file. + * + * For more information about the correct CODEOWNERS syntax, + * see "[About code owners](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)." + */ + get: operations["repos/codeowners-errors"]; + }; + "/repos/{owner}/{repo}/codespaces": { + /** + * List codespaces in a repository for the authenticated user + * @description Lists the codespaces associated to a specified repository and the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/list-in-repository-for-authenticated-user"]; + /** + * Create a codespace in a repository + * @description Creates a codespace owned by the authenticated user in the specified repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/create-with-repo-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/devcontainers": { + /** + * List devcontainer configurations in a repository for the authenticated user + * @description Lists the devcontainer.json files associated with a specified repository and the authenticated user. These files + * specify launchpoint configurations for codespaces created within the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/list-devcontainers-in-repository-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/machines": { + /** + * List available machine types for a repository + * @description List the machine types available for a given repository based on its configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/repo-machines-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/new": { + /** + * Get default attributes for a codespace + * @description Gets the default attributes for codespaces created by the user with the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/pre-flight-with-repo-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/permissions_check": { + /** + * Check if permissions defined by a devcontainer have been accepted by the authenticated user + * @description Checks whether the permissions defined by a given devcontainer configuration have been accepted by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/check-permissions-for-devcontainer"]; + }; + "/repos/{owner}/{repo}/codespaces/secrets": { + /** + * List repository secrets + * @description Lists all development environment secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["codespaces/list-repo-secrets"]; + }; + "/repos/{owner}/{repo}/codespaces/secrets/public-key": { + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["codespaces/get-repo-public-key"]; + }; + "/repos/{owner}/{repo}/codespaces/secrets/{secret_name}": { + /** + * Get a repository secret + * @description Gets a single repository development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["codespaces/get-repo-secret"]; + /** + * Create or update a repository secret + * @description Creates or updates a repository development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["codespaces/create-or-update-repo-secret"]; + /** + * Delete a repository secret + * @description Deletes a development environment secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["codespaces/delete-repo-secret"]; + }; + "/repos/{owner}/{repo}/collaborators": { + /** + * List repository collaborators + * @description For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * Organization members with write, maintain, or admin privileges on the organization-owned repository can use this endpoint. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + get: operations["repos/list-collaborators"]; + }; + "/repos/{owner}/{repo}/collaborators/{username}": { + /** + * Check if a user is a repository collaborator + * @description For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + get: operations["repos/check-collaborator"]; + /** + * Add a repository collaborator + * @description This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Adding an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + * + * For more information on permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with: + * + * ``` + * Cannot assign {member} permission of {role name} + * ``` + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [API](https://docs.github.com/rest/collaborators/invitations). + * + * **Updating an existing collaborator's permission level** + * + * The endpoint can also be used to change the permissions of an existing collaborator without first removing and re-adding the collaborator. To change the permissions, use the same endpoint and pass a different `permission` parameter. The response will be a `204`, with no other indication that the permission level changed. + * + * **Rate limits** + * + * You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + */ + put: operations["repos/add-collaborator"]; + /** + * Remove a repository collaborator + * @description Removes a collaborator from a repository. + * + * To use this endpoint, the authenticated user must either be an administrator of the repository or target themselves for removal. + * + * This endpoint also: + * - Cancels any outstanding invitations + * - Unasigns the user from any issues + * - Removes access to organization projects if the user is not an organization member and is not a collaborator on any other organization repositories. + * - Unstars the repository + * - Updates access permissions to packages + * + * Removing a user as a collaborator has the following effects on forks: + * - If the user had access to a fork through their membership to this repository, the user will also be removed from the fork. + * - If the user had their own fork of the repository, the fork will be deleted. + * - If the user still has read access to the repository, open pull requests by this user from a fork will be denied. + * + * **Note**: A user can still have access to the repository through organization permissions like base repository permissions. + * + * Although the API responds immediately, the additional permission updates might take some extra time to complete in the background. + * + * For more information on fork permissions, see "[About permissions and visibility of forks](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks)". + */ + delete: operations["repos/remove-collaborator"]; + }; + "/repos/{owner}/{repo}/collaborators/{username}/permission": { + /** + * Get repository permissions for a user + * @description Checks the repository permission of a collaborator. The possible repository + * permissions are `admin`, `write`, `read`, and `none`. + * + * *Note*: The `permission` attribute provides the legacy base roles of `admin`, `write`, `read`, and `none`, where the + * `maintain` role is mapped to `write` and the `triage` role is mapped to `read`. To determine the role assigned to the + * collaborator, see the `role_name` attribute, which will provide the full role name, including custom roles. The + * `permissions` hash can also be used to determine which base level of access the collaborator has to the repository. + */ + get: operations["repos/get-collaborator-permission-level"]; + }; + "/repos/{owner}/{repo}/comments": { + /** + * List commit comments for a repository + * @description Lists the commit comments for a specified repository. Comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["repos/list-commit-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}": { + /** + * Get a commit comment + * @description Gets a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["repos/get-commit-comment"]; + /** Delete a commit comment */ + delete: operations["repos/delete-commit-comment"]; + /** + * Update a commit comment + * @description Updates the contents of a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + patch: operations["repos/update-commit-comment"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}/reactions": { + /** + * List reactions for a commit comment + * @description List the reactions to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + get: operations["reactions/list-for-commit-comment"]; + /** + * Create reaction for a commit comment + * @description Create a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). A response with an HTTP `200` status means that you already added the reaction type to this commit comment. + */ + post: operations["reactions/create-for-commit-comment"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": { + /** + * Delete a commit comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + delete: operations["reactions/delete-for-commit-comment"]; + }; + "/repos/{owner}/{repo}/commits": { + /** + * List commits + * @description **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/list-commits"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": { + /** + * List branches for HEAD commit + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + */ + get: operations["repos/list-branches-for-head-commit"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/comments": { + /** + * List commit comments + * @description Lists the comments for a specified commit. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["repos/list-comments-for-commit"]; + /** + * Create a commit comment + * @description Create a comment for a commit using its `:commit_sha`. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["repos/create-commit-comment"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/pulls": { + /** + * List pull requests associated with a commit + * @description Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, will only return open pull requests associated with the commit. + * + * To list the open or merged pull requests associated with a branch, you can set the `commit_sha` parameter to the branch name. + */ + get: operations["repos/list-pull-requests-associated-with-commit"]; + }; + "/repos/{owner}/{repo}/commits/{ref}": { + /** + * Get a commit + * @description Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * **Note:** If there are more than 300 files in the commit diff and the default JSON media type is requested, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." Pagination query parameters are not supported for these media types. + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.sha`**: Returns the commit's SHA-1 hash. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/get-commit"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/check-runs": { + /** + * List check runs for a Git reference + * @description Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * If there are more than 1000 check suites on a single git reference, this endpoint will limit check runs to the 1000 most recent check suites. To iterate over all possible check runs, use the [List check suites for a Git reference](https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference) endpoint and provide the `check_suite_id` parameter to the [List check runs in a check suite](https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite) endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/list-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/check-suites": { + /** + * List check suites for a Git reference + * @description Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/list-suites-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/status": { + /** + * Get the combined status for a specific reference + * @description Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + */ + get: operations["repos/get-combined-status-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/statuses": { + /** + * List commit statuses for a reference + * @description Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + */ + get: operations["repos/list-commit-statuses-for-ref"]; + }; + "/repos/{owner}/{repo}/community/profile": { + /** + * Get community profile metrics + * @description Returns all community profile metrics for a repository. The repository cannot be a fork. + * + * The returned metrics include an overall health score, the repository description, the presence of documentation, the + * detected code of conduct, the detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + * README, and CONTRIBUTING files. + * + * The `health_percentage` score is defined as a percentage of how many of + * the recommended community health files are present. For more information, see + * "[About community profiles for public repositories](https://docs.github.com/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories)." + * + * `content_reports_enabled` is only returned for organization-owned repositories. + */ + get: operations["repos/get-community-profile-metrics"]; + }; + "/repos/{owner}/{repo}/compare/{basehead}": { + /** + * Compare two commits + * @description Compares two commits against one another. You can compare branches in the same repository, or you can compare branches that exist in different repositories within the same repository network, including fork branches. For more information about how to view a repository's network, see "[Understanding connections between repositories](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository/understanding-connections-between-repositories)." + * + * This endpoint is equivalent to running the `git log BASE..HEAD` command, but it returns commits in a different order. The `git log BASE..HEAD` command returns commits in reverse chronological order, whereas the API returns commits in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. + * + * The API response includes details about the files that were changed between the two commits. This includes the status of the change (if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * When calling this endpoint without any paging parameter (`per_page` or `page`), the returned list is limited to 250 commits, and the last commit in the list is the most recent of the entire comparison. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, use a query parameter (`per_page` or `page`) to paginate the results. When using pagination: + * + * - The list of changed files is only shown on the first page of results, but it includes all changed files for the entire comparison. + * - The results are returned in chronological order, but the last commit in the returned list may not be the most recent one in the entire set if there are more pages of results. + * + * For more information on working with pagination, see "[Using pagination in the REST API](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The `verification` object includes the following fields: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/compare-commits-with-basehead"]; + }; + "/repos/{owner}/{repo}/contents/{path}": { + /** + * Get repository content + * @description Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks. + * - **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * - **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects. + * + * If the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + * + * If the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself. + * + * If the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + * + * **Notes**: + * + * - To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree). + * - This API has an upper limit of 1,000 files for a directory. If you need to retrieve + * more files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree). + * - Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. + * - If the requested file's size is: + * - 1 MB or smaller: All features of this endpoint are supported. + * - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty + * string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * - Greater than 100 MB: This endpoint is not supported. + */ + get: operations["repos/get-content"]; + /** + * Create or update file contents + * @description Creates a new file or replaces an existing file in a repository. + * + * **Note:** If you use this endpoint and the "[Delete a file](https://docs.github.com/rest/repos/contents/#delete-a-file)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The `workflow` scope is also required in order to modify files in the `.github/workflows` directory. + */ + put: operations["repos/create-or-update-file-contents"]; + /** + * Delete a file + * @description Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + * + * **Note:** If you use this endpoint and the "[Create or update file contents](https://docs.github.com/rest/repos/contents/#create-or-update-file-contents)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + */ + delete: operations["repos/delete-file"]; + }; + "/repos/{owner}/{repo}/contributors": { + /** + * List repository contributors + * @description Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + */ + get: operations["repos/list-contributors"]; + }; + "/repos/{owner}/{repo}/dependabot/alerts": { + /** + * List Dependabot alerts for a repository + * @description OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["dependabot/list-alerts-for-repo"]; + }; + "/repos/{owner}/{repo}/dependabot/alerts/{alert_number}": { + /** + * Get a Dependabot alert + * @description OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["dependabot/get-alert"]; + /** + * Update a Dependabot alert + * @description The authenticated user must have access to security alerts for the repository to use this endpoint. For more information, see "[Granting access to security alerts](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + patch: operations["dependabot/update-alert"]; + }; + "/repos/{owner}/{repo}/dependabot/secrets": { + /** + * List repository secrets + * @description Lists all secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["dependabot/list-repo-secrets"]; + }; + "/repos/{owner}/{repo}/dependabot/secrets/public-key": { + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. Anyone with read access + * to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the repository is private. + */ + get: operations["dependabot/get-repo-public-key"]; + }; + "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}": { + /** + * Get a repository secret + * @description Gets a single repository secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["dependabot/get-repo-secret"]; + /** + * Create or update a repository secret + * @description Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["dependabot/create-or-update-repo-secret"]; + /** + * Delete a repository secret + * @description Deletes a secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["dependabot/delete-repo-secret"]; + }; + "/repos/{owner}/{repo}/dependency-graph/compare/{basehead}": { + /** + * Get a diff of the dependencies between commits + * @description Gets the diff of the dependency changes between two commits of a repository, based on the changes to the dependency manifests made in those commits. + */ + get: operations["dependency-graph/diff-range"]; + }; + "/repos/{owner}/{repo}/dependency-graph/sbom": { + /** + * Export a software bill of materials (SBOM) for a repository. + * @description Exports the software bill of materials (SBOM) for a repository in SPDX JSON format. + */ + get: operations["dependency-graph/export-sbom"]; + }; + "/repos/{owner}/{repo}/dependency-graph/snapshots": { + /** + * Create a snapshot of dependencies for a repository + * @description Create a new snapshot of a repository's dependencies. + * + * The authenticated user must have access to the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["dependency-graph/create-repository-snapshot"]; + }; + "/repos/{owner}/{repo}/deployments": { + /** + * List deployments + * @description Simple filtering of deployments is available via query parameters: + */ + get: operations["repos/list-deployments"]; + /** + * Create a deployment + * @description Deployments offer a few configurable parameters with certain defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + * before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + * makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + * return a failure response. + * + * By default, [commit statuses](https://docs.github.com/rest/commits/statuses) for every submitted context must be in a `success` + * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + * not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + * field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + * application with debugging enabled. + * + * Merged branch response: + * + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + * a deployment. This auto-merge happens when: + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful + * response. + * + * Merge conflict response: + * + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * Failed commit status checks: + * + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + post: operations["repos/create-deployment"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}": { + /** Get a deployment */ + get: operations["repos/get-deployment"]; + /** + * Delete a deployment + * @description If the repository only has one deployment, you can delete the deployment regardless of its status. If the repository has more than one deployment, you can only delete inactive deployments. This ensures that repositories with multiple deployments will always have an active deployment. + * + * To set a deployment as inactive, you must: + * + * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * * Mark the active deployment as inactive by adding any non-successful deployment status. + * + * For more information, see "[Create a deployment](https://docs.github.com/rest/deployments/deployments/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/deployments/statuses#create-a-deployment-status)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + delete: operations["repos/delete-deployment"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses": { + /** + * List deployment statuses + * @description Users with pull access can view deployment statuses for a deployment: + */ + get: operations["repos/list-deployment-statuses"]; + /** + * Create a deployment status + * @description Users with `push` access can create deployment statuses for a given deployment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo_deployment` scope to use this endpoint. + */ + post: operations["repos/create-deployment-status"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": { + /** + * Get a deployment status + * @description Users with pull access can view a deployment status for a deployment: + */ + get: operations["repos/get-deployment-status"]; + }; + "/repos/{owner}/{repo}/dispatches": { + /** + * Create a repository dispatch event + * @description You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["repos/create-dispatch-event"]; + }; + "/repos/{owner}/{repo}/environments": { + /** + * List environments + * @description Lists the environments for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-all-environments"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}": { + /** + * Get an environment + * @description **Note:** To get information about name patterns that branches must match in order to deploy to this environment, see "[Get a deployment branch policy](/rest/deployments/branch-policies#get-a-deployment-branch-policy)." + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-environment"]; + /** + * Create or update an environment + * @description Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "[Environments](/actions/reference/environments#environment-protection-rules)." + * + * **Note:** To create or update name patterns that branches must match in order to deploy to this environment, see "[Deployment branch policies](/rest/deployments/branch-policies)." + * + * **Note:** To create or update secrets for an environment, see "[GitHub Actions secrets](/rest/actions/secrets)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["repos/create-or-update-environment"]; + /** + * Delete an environment + * @description OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["repos/delete-an-environment"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": { + /** + * List deployment branch policies + * @description Lists the deployment branch policies for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/list-deployment-branch-policies"]; + /** + * Create a deployment branch policy + * @description Creates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["repos/create-deployment-branch-policy"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": { + /** + * Get a deployment branch policy + * @description Gets a deployment branch or tag policy for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-deployment-branch-policy"]; + /** + * Update a deployment branch policy + * @description Updates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["repos/update-deployment-branch-policy"]; + /** + * Delete a deployment branch policy + * @description Deletes a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["repos/delete-deployment-branch-policy"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules": { + /** + * Get all deployment protection rules for an environment + * @description Gets all custom deployment protection rules that are enabled for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-all-deployment-protection-rules"]; + /** + * Create a custom deployment protection rule on an environment + * @description Enable a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["repos/create-deployment-protection-rule"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps": { + /** + * List custom deployment rule integrations available for an environment + * @description Gets all custom deployment protection rule integrations that are available for an environment. Anyone with read access to the repository can use this endpoint. + * + * For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see "[GET an app](https://docs.github.com/rest/apps/apps#get-an-app)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/list-custom-deployment-rule-integrations"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}": { + /** + * Get a custom deployment protection rule + * @description Gets an enabled custom deployment protection rule for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see [`GET /apps/{app_slug}`](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-custom-deployment-protection-rule"]; + /** + * Disable a custom protection rule for an environment + * @description Disables a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["repos/disable-deployment-protection-rule"]; + }; + "/repos/{owner}/{repo}/events": { + /** + * List repository events + * @description **Note**: This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + */ + get: operations["activity/list-repo-events"]; + }; + "/repos/{owner}/{repo}/forks": { + /** List forks */ + get: operations["repos/list-forks"]; + /** + * Create a fork + * @description Create a fork for the authenticated user. + * + * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * + * **Note**: Although this endpoint works with GitHub Apps, the GitHub App must be installed on the destination account with access to all repositories and on the source account with access to the source repository. + */ + post: operations["repos/create-fork"]; + }; + "/repos/{owner}/{repo}/git/blobs": { + /** Create a blob */ + post: operations["git/create-blob"]; + }; + "/repos/{owner}/{repo}/git/blobs/{file_sha}": { + /** + * Get a blob + * @description The `content` in the response will always be Base64 encoded. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw blob data. + * - **`application/vnd.github+json`**: Returns a JSON representation of the blob with `content` as a base64 encoded string. This is the default if no media type is specified. + * + * **Note** This endpoint supports blobs up to 100 megabytes in size. + */ + get: operations["git/get-blob"]; + }; + "/repos/{owner}/{repo}/git/commits": { + /** + * Create a commit + * @description Creates a new Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + post: operations["git/create-commit"]; + }; + "/repos/{owner}/{repo}/git/commits/{commit_sha}": { + /** + * Get a commit object + * @description Gets a Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * To get the contents of a commit, see "[Get a commit](/rest/commits/commits#get-a-commit)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["git/get-commit"]; + }; + "/repos/{owner}/{repo}/git/matching-refs/{ref}": { + /** + * List matching references + * @description Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + * + * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + */ + get: operations["git/list-matching-refs"]; + }; + "/repos/{owner}/{repo}/git/ref/{ref}": { + /** + * Get a reference + * @description Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + */ + get: operations["git/get-ref"]; + }; + "/repos/{owner}/{repo}/git/refs": { + /** + * Create a reference + * @description Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. + */ + post: operations["git/create-ref"]; + }; + "/repos/{owner}/{repo}/git/refs/{ref}": { + /** Delete a reference */ + delete: operations["git/delete-ref"]; + /** Update a reference */ + patch: operations["git/update-ref"]; + }; + "/repos/{owner}/{repo}/git/tags": { + /** + * Create a tag object + * @description Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/git/refs#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/git/refs#create-a-reference) the tag reference - this call would be unnecessary. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + post: operations["git/create-tag"]; + }; + "/repos/{owner}/{repo}/git/tags/{tag_sha}": { + /** + * Get a tag + * @description **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["git/get-tag"]; + }; + "/repos/{owner}/{repo}/git/trees": { + /** + * Create a tree + * @description The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + * + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/git/commits#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/git/refs#update-a-reference)." + * + * Returns an error if you try to delete a file that does not exist. + */ + post: operations["git/create-tree"]; + }; + "/repos/{owner}/{repo}/git/trees/{tree_sha}": { + /** + * Get a tree + * @description Returns a single tree using the SHA1 value or ref name for that tree. + * + * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. + * + * + * **Note**: The limit for the `tree` array is 100,000 entries with a maximum size of 7 MB when using the `recursive` parameter. + */ + get: operations["git/get-tree"]; + }; + "/repos/{owner}/{repo}/hooks": { + /** + * List repository webhooks + * @description Lists webhooks for a repository. `last response` may return null if there have not been any deliveries within 30 days. + */ + get: operations["repos/list-webhooks"]; + /** + * Create a repository webhook + * @description Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + * share the same `config` as long as those webhooks do not have any `events` that overlap. + */ + post: operations["repos/create-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}": { + /** + * Get a repository webhook + * @description Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository)." + */ + get: operations["repos/get-webhook"]; + /** Delete a repository webhook */ + delete: operations["repos/delete-webhook"]; + /** + * Update a repository webhook + * @description Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/webhooks/repo-config#update-a-webhook-configuration-for-a-repository)." + */ + patch: operations["repos/update-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/config": { + /** + * Get a webhook configuration for a repository + * @description Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/webhooks/repos#get-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:repo_hook` or `repo` scope to use this endpoint. + */ + get: operations["repos/get-webhook-config-for-repo"]; + /** + * Update a webhook configuration for a repository + * @description Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/webhooks/repos#update-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:repo_hook` or `repo` scope to use this endpoint. + */ + patch: operations["repos/update-webhook-config-for-repo"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries": { + /** + * List deliveries for a repository webhook + * @description Returns a list of webhook deliveries for a webhook configured in a repository. + */ + get: operations["repos/list-webhook-deliveries"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}": { + /** + * Get a delivery for a repository webhook + * @description Returns a delivery for a webhook configured in a repository. + */ + get: operations["repos/get-webhook-delivery"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": { + /** + * Redeliver a delivery for a repository webhook + * @description Redeliver a webhook delivery for a webhook configured in a repository. + */ + post: operations["repos/redeliver-webhook-delivery"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/pings": { + /** + * Ping a repository webhook + * @description This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + post: operations["repos/ping-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/tests": { + /** + * Test the push repository webhook + * @description This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * + * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + */ + post: operations["repos/test-push-webhook"]; + }; + "/repos/{owner}/{repo}/import": { + /** + * Get an import status + * @deprecated + * @description View the progress of an import. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * **Import status** + * + * This section includes details about the possible values of the `status` field of the Import Progress response. + * + * An import that does not have errors will progress through these steps: + * + * * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * * `complete` - the import is complete, and the repository is ready on GitHub. + * + * If there are problems, you will see one of these in the `status` field: + * + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/migrations/source-imports#cancel-an-import) and [retry](https://docs.github.com/rest/migrations/source-imports#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * + * **The project_choices field** + * + * When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + * + * **Git LFS related fields** + * + * This section includes details about Git LFS related fields that may be present in the Import Progress response. + * + * * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + */ + get: operations["migrations/get-import-status"]; + /** + * Start an import + * @deprecated + * @description Start a source import to a GitHub repository using GitHub Importer. + * Importing into a GitHub repository with GitHub Actions enabled is not supported and will + * return a status `422 Unprocessable Entity` response. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + put: operations["migrations/start-import"]; + /** + * Cancel an import + * @deprecated + * @description Stop an import for a repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + delete: operations["migrations/cancel-import"]; + /** + * Update an import + * @deprecated + * @description An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API + * request. If no parameters are provided, the import will be restarted. + * + * Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will + * have the status `detection_found_multiple` and the Import Progress response will include a `project_choices` array. + * You can select the project to import by providing one of the objects in the `project_choices` array in the update request. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + patch: operations["migrations/update-import"]; + }; + "/repos/{owner}/{repo}/import/authors": { + /** + * Get commit authors + * @deprecated + * @description Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + * + * This endpoint and the [Map a commit author](https://docs.github.com/rest/migrations/source-imports#map-a-commit-author) endpoint allow you to provide correct Git author information. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + get: operations["migrations/get-commit-authors"]; + }; + "/repos/{owner}/{repo}/import/authors/{author_id}": { + /** + * Map a commit author + * @deprecated + * @description Update an author's identity for the import. Your application can continue updating authors any time before you push + * new commits to the repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + patch: operations["migrations/map-commit-author"]; + }; + "/repos/{owner}/{repo}/import/large_files": { + /** + * Get large files + * @deprecated + * @description List files larger than 100MB found during the import + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + get: operations["migrations/get-large-files"]; + }; + "/repos/{owner}/{repo}/import/lfs": { + /** + * Update Git LFS preference + * @deprecated + * @description You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability + * is powered by [Git LFS](https://git-lfs.com). + * + * You can learn more about our LFS feature and working with large files [on our help + * site](https://docs.github.com/repositories/working-with-files/managing-large-files). + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + patch: operations["migrations/set-lfs-preference"]; + }; + "/repos/{owner}/{repo}/installation": { + /** + * Get a repository installation for the authenticated app + * @description Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-repo-installation"]; + }; + "/repos/{owner}/{repo}/interaction-limits": { + /** + * Get interaction restrictions for a repository + * @description Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + get: operations["interactions/get-restrictions-for-repo"]; + /** + * Set interaction restrictions for a repository + * @description Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + put: operations["interactions/set-restrictions-for-repo"]; + /** + * Remove interaction restrictions for a repository + * @description Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + delete: operations["interactions/remove-restrictions-for-repo"]; + }; + "/repos/{owner}/{repo}/invitations": { + /** + * List repository invitations + * @description When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. + */ + get: operations["repos/list-invitations"]; + }; + "/repos/{owner}/{repo}/invitations/{invitation_id}": { + /** Delete a repository invitation */ + delete: operations["repos/delete-invitation"]; + /** Update a repository invitation */ + patch: operations["repos/update-invitation"]; + }; + "/repos/{owner}/{repo}/issues": { + /** + * List repository issues + * @description List issues in a repository. Only open issues will be listed. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-for-repo"]; + /** + * Create an issue + * @description Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://docs.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["issues/create"]; + }; + "/repos/{owner}/{repo}/issues/comments": { + /** + * List issue comments for a repository + * @description You can use the REST API to list comments on issues and pull requests for a repository. Every pull request is an issue, but not every issue is a pull request. + * + * By default, issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}": { + /** + * Get an issue comment + * @description You can use the REST API to get comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/get-comment"]; + /** + * Delete an issue comment + * @description You can use the REST API to delete comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + */ + delete: operations["issues/delete-comment"]; + /** + * Update an issue comment + * @description You can use the REST API to update comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + patch: operations["issues/update-comment"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": { + /** + * List reactions for an issue comment + * @description List the reactions to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + get: operations["reactions/list-for-issue-comment"]; + /** + * Create reaction for an issue comment + * @description Create a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). A response with an HTTP `200` status means that you already added the reaction type to this issue comment. + */ + post: operations["reactions/create-for-issue-comment"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": { + /** + * Delete an issue comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + delete: operations["reactions/delete-for-issue-comment"]; + }; + "/repos/{owner}/{repo}/issues/events": { + /** + * List issue events for a repository + * @description Lists events for a repository. + */ + get: operations["issues/list-events-for-repo"]; + }; + "/repos/{owner}/{repo}/issues/events/{event_id}": { + /** + * Get an issue event + * @description Gets a single event by the event id. + */ + get: operations["issues/get-event"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}": { + /** + * Get an issue + * @description The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api#follow-redirects) if the issue was + * [transferred](https://docs.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API + * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read + * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe + * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/get"]; + /** + * Update an issue + * @description Issue owners and users with push access can edit an issue. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + patch: operations["issues/update"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/assignees": { + /** + * Add assignees to an issue + * @description Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. + */ + post: operations["issues/add-assignees"]; + /** + * Remove assignees from an issue + * @description Removes one or more assignees from an issue. + */ + delete: operations["issues/remove-assignees"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}": { + /** + * Check if a user can be assigned to a issue + * @description Checks if a user has permission to be assigned to a specific issue. + * + * If the `assignee` can be assigned to this issue, a `204` status code with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + get: operations["issues/check-user-can-be-assigned-to-issue"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/comments": { + /** + * List issue comments + * @description You can use the REST API to list comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * Issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-comments"]; + /** + * Create an issue comment + * @description You can use the REST API to create comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + * Creating content too quickly using this endpoint may result in secondary rate limiting. + * For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["issues/create-comment"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/events": { + /** + * List issue events + * @description Lists all events for an issue. + */ + get: operations["issues/list-events"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/labels": { + /** + * List labels for an issue + * @description Lists all labels for an issue. + */ + get: operations["issues/list-labels-on-issue"]; + /** + * Set labels for an issue + * @description Removes any previous labels and sets the new labels for an issue. + */ + put: operations["issues/set-labels"]; + /** + * Add labels to an issue + * @description Adds labels to an issue. If you provide an empty array of labels, all labels are removed from the issue. + */ + post: operations["issues/add-labels"]; + /** + * Remove all labels from an issue + * @description Removes all labels from an issue. + */ + delete: operations["issues/remove-all-labels"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": { + /** + * Remove a label from an issue + * @description Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. + */ + delete: operations["issues/remove-label"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/lock": { + /** + * Lock an issue + * @description Users with push access can lock an issue or pull request's conversation. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["issues/lock"]; + /** + * Unlock an issue + * @description Users with push access can unlock an issue's conversation. + */ + delete: operations["issues/unlock"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/reactions": { + /** + * List reactions for an issue + * @description List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + get: operations["reactions/list-for-issue"]; + /** + * Create reaction for an issue + * @description Create a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). A response with an HTTP `200` status means that you already added the reaction type to this issue. + */ + post: operations["reactions/create-for-issue"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": { + /** + * Delete an issue reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + * + * Delete a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + delete: operations["reactions/delete-for-issue"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/timeline": { + /** + * List timeline events for an issue + * @description List all timeline events for an issue. + */ + get: operations["issues/list-events-for-timeline"]; + }; + "/repos/{owner}/{repo}/keys": { + /** List deploy keys */ + get: operations["repos/list-deploy-keys"]; + /** + * Create a deploy key + * @description You can create a read-only deploy key. + */ + post: operations["repos/create-deploy-key"]; + }; + "/repos/{owner}/{repo}/keys/{key_id}": { + /** Get a deploy key */ + get: operations["repos/get-deploy-key"]; + /** + * Delete a deploy key + * @description Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. + */ + delete: operations["repos/delete-deploy-key"]; + }; + "/repos/{owner}/{repo}/labels": { + /** + * List labels for a repository + * @description Lists all labels for a repository. + */ + get: operations["issues/list-labels-for-repo"]; + /** + * Create a label + * @description Creates a label for the specified repository with the given name and color. The name and color parameters are required. The color must be a valid [hexadecimal color code](http://www.color-hex.com/). + */ + post: operations["issues/create-label"]; + }; + "/repos/{owner}/{repo}/labels/{name}": { + /** + * Get a label + * @description Gets a label using the given name. + */ + get: operations["issues/get-label"]; + /** + * Delete a label + * @description Deletes a label using the given label name. + */ + delete: operations["issues/delete-label"]; + /** + * Update a label + * @description Updates a label using the given label name. + */ + patch: operations["issues/update-label"]; + }; + "/repos/{owner}/{repo}/languages": { + /** + * List repository languages + * @description Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. + */ + get: operations["repos/list-languages"]; + }; + "/repos/{owner}/{repo}/license": { + /** + * Get the license for a repository + * @description This method returns the contents of the repository's license file, if one is detected. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw contents of the license. + * - **`application/vnd.github.html+json`**: Returns the license contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + get: operations["licenses/get-for-repo"]; + }; + "/repos/{owner}/{repo}/merge-upstream": { + /** + * Sync a fork branch with the upstream repository + * @description Sync a branch of a forked repository to keep it up-to-date with the upstream repository. + */ + post: operations["repos/merge-upstream"]; + }; + "/repos/{owner}/{repo}/merges": { + /** Merge a branch */ + post: operations["repos/merge"]; + }; + "/repos/{owner}/{repo}/milestones": { + /** + * List milestones + * @description Lists milestones for a repository. + */ + get: operations["issues/list-milestones"]; + /** + * Create a milestone + * @description Creates a milestone. + */ + post: operations["issues/create-milestone"]; + }; + "/repos/{owner}/{repo}/milestones/{milestone_number}": { + /** + * Get a milestone + * @description Gets a milestone using the given milestone number. + */ + get: operations["issues/get-milestone"]; + /** + * Delete a milestone + * @description Deletes a milestone using the given milestone number. + */ + delete: operations["issues/delete-milestone"]; + /** Update a milestone */ + patch: operations["issues/update-milestone"]; + }; + "/repos/{owner}/{repo}/milestones/{milestone_number}/labels": { + /** + * List labels for issues in a milestone + * @description Lists labels for issues in a milestone. + */ + get: operations["issues/list-labels-for-milestone"]; + }; + "/repos/{owner}/{repo}/notifications": { + /** + * List repository notifications for the authenticated user + * @description Lists all notifications for the current user in the specified repository. + */ + get: operations["activity/list-repo-notifications-for-authenticated-user"]; + /** + * Mark repository notifications as read + * @description Marks all notifications in a repository as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + put: operations["activity/mark-repo-notifications-as-read"]; + }; + "/repos/{owner}/{repo}/pages": { + /** + * Get a GitHub Pages site + * @description Gets information about a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/get-pages"]; + /** + * Update information about a GitHub Pages site + * @description Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["repos/update-information-about-pages-site"]; + /** + * Create a GitHub Pages site + * @description Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["repos/create-pages-site"]; + /** + * Delete a GitHub Pages site + * @description Deletes a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["repos/delete-pages-site"]; + }; + "/repos/{owner}/{repo}/pages/builds": { + /** + * List GitHub Pages builds + * @description Lists builts of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/list-pages-builds"]; + /** + * Request a GitHub Pages build + * @description You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + */ + post: operations["repos/request-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/builds/latest": { + /** + * Get latest Pages build + * @description Gets information about the single most recent build of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/get-latest-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/builds/{build_id}": { + /** + * Get GitHub Pages build + * @description Gets information about a GitHub Pages build. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/get-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/deployments": { + /** + * Create a GitHub Pages deployment + * @description Create a GitHub Pages deployment for a repository. + * + * The authenticated user must have write permission to the repository. + */ + post: operations["repos/create-pages-deployment"]; + }; + "/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}": { + /** + * Get the status of a GitHub Pages deployment + * @description Gets the current status of a GitHub Pages deployment. + * + * The authenticated user must have read permission for the GitHub Pages site. + */ + get: operations["repos/get-pages-deployment"]; + }; + "/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel": { + /** + * Cancel a GitHub Pages deployment + * @description Cancels a GitHub Pages deployment. + * + * The authenticated user must have write permissions for the GitHub Pages site. + */ + post: operations["repos/cancel-pages-deployment"]; + }; + "/repos/{owner}/{repo}/pages/health": { + /** + * Get a DNS health check for GitHub Pages + * @description Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages. + * + * The first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response. + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/get-pages-health-check"]; + }; + "/repos/{owner}/{repo}/private-vulnerability-reporting": { + /** + * Enable private vulnerability reporting for a repository + * @description Enables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)." + */ + put: operations["repos/enable-private-vulnerability-reporting"]; + /** + * Disable private vulnerability reporting for a repository + * @description Disables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)". + */ + delete: operations["repos/disable-private-vulnerability-reporting"]; + }; + "/repos/{owner}/{repo}/projects": { + /** + * List repository projects + * @description Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + get: operations["projects/list-for-repo"]; + /** + * Create a repository project + * @description Creates a repository project board. Returns a `410 Gone` status if projects are disabled in the repository or if the repository does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + post: operations["projects/create-for-repo"]; + }; + "/repos/{owner}/{repo}/properties/values": { + /** + * Get all custom property values for a repository + * @description Gets all custom property values that are set for a repository. + * Users with read access to the repository can use this endpoint. + */ + get: operations["repos/get-custom-properties-values"]; + /** + * Create or update custom property values for a repository + * @description Create new or update existing custom property values for a repository. + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * Repository admins and other users with the repository-level "edit custom property values" fine-grained permission can use this endpoint. + */ + patch: operations["repos/create-or-update-custom-properties-values"]; + }; + "/repos/{owner}/{repo}/pulls": { + /** + * List pull requests + * @description Lists pull requests in a specified repository. + * + * Draft pull requests are available in public repositories with GitHub + * Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing + * plans, and in public and private repositories with GitHub Team and GitHub Enterprise + * Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + * in the GitHub Help documentation. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + * - **`application/vnd.github.patch`**: For more information, see "[git-format-patch](https://git-scm.com/docs/git-format-patch)" in the Git documentation. + */ + get: operations["pulls/list"]; + /** + * Create a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + post: operations["pulls/create"]; + }; + "/repos/{owner}/{repo}/pulls/comments": { + /** + * List review comments in a repository + * @description Lists review comments for all pull requests in a repository. By default, + * review comments are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-review-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}": { + /** + * Get a review comment for a pull request + * @description Provides details for a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/get-review-comment"]; + /** + * Delete a review comment for a pull request + * @description Deletes a review comment. + */ + delete: operations["pulls/delete-review-comment"]; + /** + * Update a review comment for a pull request + * @description Edits the content of a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + patch: operations["pulls/update-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": { + /** + * List reactions for a pull request review comment + * @description List the reactions to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + get: operations["reactions/list-for-pull-request-review-comment"]; + /** + * Create reaction for a pull request review comment + * @description Create a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment. + */ + post: operations["reactions/create-for-pull-request-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": { + /** + * Delete a pull request comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + * + * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + delete: operations["reactions/delete-for-pull-request-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}": { + /** + * Get a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists details of a pull request by providing its number. + * + * When you get, [create](https://docs.github.com/rest/pulls/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/pulls/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + * + * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + * + * * If merged as a [merge commit](https://docs.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://docs.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://docs.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + get: operations["pulls/get"]; + /** + * Update a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + patch: operations["pulls/update"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/codespaces": { + /** + * Create a codespace from a pull request + * @description Creates a codespace owned by the authenticated user for the specified pull request. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/create-with-pr-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/comments": { + /** + * List review comments on a pull request + * @description Lists all review comments for a specified pull request. By default, review comments + * are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-review-comments"]; + /** + * Create a review comment for a pull request + * @description Creates a review comment on the diff of a specified pull request. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/issues/comments#create-an-issue-comment)." + * + * If your comment applies to more than one line in the pull request diff, you should use the parameters `line`, `side`, and optionally `start_line` and `start_side` in your request. + * + * The `position` parameter is deprecated. If you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["pulls/create-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": { + /** + * Create a reply for a review comment + * @description Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["pulls/create-reply-for-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/commits": { + /** + * List commits on a pull request + * @description Lists a maximum of 250 commits for a pull request. To receive a complete + * commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/commits/commits#list-commits) + * endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + get: operations["pulls/list-commits"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/files": { + /** + * List pull requests files + * @description Lists the files in a specified pull request. + * + * **Note:** Responses include a maximum of 3000 files. The paginated response + * returns 30 files per page by default. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + get: operations["pulls/list-files"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/merge": { + /** + * Check if a pull request has been merged + * @description Checks if a pull request has been merged into the base branch. The HTTP status of the response indicates whether or not the pull request has been merged; the response body is empty. + */ + get: operations["pulls/check-if-merged"]; + /** + * Merge a pull request + * @description Merges a pull request into the base branch. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + put: operations["pulls/merge"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": { + /** + * Get all requested reviewers for a pull request + * @description Gets the users or teams whose review is requested for a pull request. Once a requested reviewer submits a review, they are no longer considered a requested reviewer. Their review will instead be returned by the [List reviews for a pull request](https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request) operation. + */ + get: operations["pulls/list-requested-reviewers"]; + /** + * Request reviewers for a pull request + * @description This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + post: operations["pulls/request-reviewers"]; + /** + * Remove requested reviewers from a pull request + * @description Removes review requests from a pull request for a given set of users and/or teams. + */ + delete: operations["pulls/remove-requested-reviewers"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews": { + /** + * List reviews for a pull request + * @description Lists all reviews for a specified pull request. The list of reviews returns in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-reviews"]; + /** + * Create a review for a pull request + * @description Creates a review on a specified pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Pull request reviews created in the `PENDING` state are not submitted and therefore do not include the `submitted_at` property in the response. To create a pending review for a pull request, leave the `event` parameter blank. For more information about submitting a `PENDING` review, see "[Submit a review for a pull request](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request)." + * + * **Note:** To comment on a specific line in a file, you need to first determine the position of that line in the diff. To see a pull request diff, add the `application/vnd.github.v3.diff` media type to the `Accept` header of a call to the [Get a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) endpoint. + * + * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["pulls/create-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": { + /** + * Get a review for a pull request + * @description Retrieves a pull request review by its ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/get-review"]; + /** + * Update a review for a pull request + * @description Updates the contents of a specified review summary comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + put: operations["pulls/update-review"]; + /** + * Delete a pending review for a pull request + * @description Deletes a pull request review that has not been submitted. Submitted reviews cannot be deleted. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + delete: operations["pulls/delete-pending-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": { + /** + * List comments for a pull request review + * @description Lists comments for a specific pull request review. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-comments-for-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": { + /** + * Dismiss a review for a pull request + * @description Dismisses a specified review on a pull request. + * + * **Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/branches/branch-protection), + * you must be a repository administrator or be included in the list of people or teams + * who can dismiss pull request reviews. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + put: operations["pulls/dismiss-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": { + /** + * Submit a review for a pull request + * @description Submits a pending review for a pull request. For more information about creating a pending review for a pull request, see "[Create a review for a pull request](https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["pulls/submit-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/update-branch": { + /** + * Update a pull request branch + * @description Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. + */ + put: operations["pulls/update-branch"]; + }; + "/repos/{owner}/{repo}/readme": { + /** + * Get a repository README + * @description Gets the preferred README for a repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + get: operations["repos/get-readme"]; + }; + "/repos/{owner}/{repo}/readme/{dir}": { + /** + * Get a repository README for a directory + * @description Gets the README from a repository directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + get: operations["repos/get-readme-in-directory"]; + }; + "/repos/{owner}/{repo}/releases": { + /** + * List releases + * @description This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/repos/repos#list-repository-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + */ + get: operations["repos/list-releases"]; + /** + * Create a release + * @description Users with push access to the repository can create a release. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + post: operations["repos/create-release"]; + }; + "/repos/{owner}/{repo}/releases/assets/{asset_id}": { + /** + * Get a release asset + * @description To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. + */ + get: operations["repos/get-release-asset"]; + /** Delete a release asset */ + delete: operations["repos/delete-release-asset"]; + /** + * Update a release asset + * @description Users with push access to the repository can edit a release asset. + */ + patch: operations["repos/update-release-asset"]; + }; + "/repos/{owner}/{repo}/releases/generate-notes": { + /** + * Generate release notes content for a release + * @description Generate a name and body describing a [release](https://docs.github.com/rest/releases/releases#get-a-release). The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release. + */ + post: operations["repos/generate-release-notes"]; + }; + "/repos/{owner}/{repo}/releases/latest": { + /** + * Get the latest release + * @description View the latest published full release for the repository. + * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + */ + get: operations["repos/get-latest-release"]; + }; + "/repos/{owner}/{repo}/releases/tags/{tag}": { + /** + * Get a release by tag name + * @description Get a published release with the specified tag. + */ + get: operations["repos/get-release-by-tag"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}": { + /** + * Get a release + * @description Gets a public release with the specified release ID. + * + * **Note:** This returns an `upload_url` key corresponding to the endpoint + * for uploading release assets. This key is a hypermedia resource. For more information, see + * "[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + */ + get: operations["repos/get-release"]; + /** + * Delete a release + * @description Users with push access to the repository can delete a release. + */ + delete: operations["repos/delete-release"]; + /** + * Update a release + * @description Users with push access to the repository can edit a release. + */ + patch: operations["repos/update-release"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}/assets": { + /** List release assets */ + get: operations["repos/list-release-assets"]; + /** + * Upload a release asset + * @description This endpoint makes use of a [Hypermedia relation](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in + * the response of the [Create a release endpoint](https://docs.github.com/rest/releases/releases#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, + * you'll still need to pass your authentication to be able to upload an asset. + * + * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. + * + * **Notes:** + * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List release assets](https://docs.github.com/rest/releases/assets#list-release-assets)" + * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * * To find the `release_id` query the [`GET /repos/{owner}/{repo}/releases/latest` endpoint](https://docs.github.com/rest/releases/releases#get-the-latest-release). + * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. + */ + post: operations["repos/upload-release-asset"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}/reactions": { + /** + * List reactions for a release + * @description List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + get: operations["reactions/list-for-release"]; + /** + * Create reaction for a release + * @description Create a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). A response with a `Status: 200 OK` means that you already added the reaction type to this release. + */ + post: operations["reactions/create-for-release"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}": { + /** + * Delete a release reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id`. + * + * Delete a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + delete: operations["reactions/delete-for-release"]; + }; + "/repos/{owner}/{repo}/rules/branches/{branch}": { + /** + * Get rules for a branch + * @description Returns all active rules that apply to the specified branch. The branch does not need to exist; rules that would apply + * to a branch with that name will be returned. All active rules that apply will be returned, regardless of the level + * at which they are configured (e.g. repository or organization). Rules in rulesets with "evaluate" or "disabled" + * enforcement statuses are not returned. + */ + get: operations["repos/get-branch-rules"]; + }; + "/repos/{owner}/{repo}/rulesets": { + /** + * Get all repository rulesets + * @description Get all the rulesets for a repository. + */ + get: operations["repos/get-repo-rulesets"]; + /** + * Create a repository ruleset + * @description Create a ruleset for a repository. + */ + post: operations["repos/create-repo-ruleset"]; + }; + "/repos/{owner}/{repo}/rulesets/rule-suites": { + /** + * List repository rule suites + * @description Lists suites of rule evaluations at the repository level. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + get: operations["repos/get-repo-rule-suites"]; + }; + "/repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}": { + /** + * Get a repository rule suite + * @description Gets information about a suite of rule evaluations from within a repository. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + get: operations["repos/get-repo-rule-suite"]; + }; + "/repos/{owner}/{repo}/rulesets/{ruleset_id}": { + /** + * Get a repository ruleset + * @description Get a ruleset for a repository. + */ + get: operations["repos/get-repo-ruleset"]; + /** + * Update a repository ruleset + * @description Update a ruleset for a repository. + */ + put: operations["repos/update-repo-ruleset"]; + /** + * Delete a repository ruleset + * @description Delete a ruleset for a repository. + */ + delete: operations["repos/delete-repo-ruleset"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts": { + /** + * List secret scanning alerts for a repository + * @description Lists secret scanning alerts for an eligible repository, from newest to oldest. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["secret-scanning/list-alerts-for-repo"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": { + /** + * Get a secret scanning alert + * @description Gets a single secret scanning alert detected in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["secret-scanning/get-alert"]; + /** + * Update a secret scanning alert + * @description Updates the status of a secret scanning alert in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + patch: operations["secret-scanning/update-alert"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations": { + /** + * List locations for a secret scanning alert + * @description Lists all locations for a given secret scanning alert for an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["secret-scanning/list-locations-for-alert"]; + }; + "/repos/{owner}/{repo}/security-advisories": { + /** + * List repository security advisories + * @description Lists security advisories in a repository. + * + * The authenticated user can access unpublished security advisories from a repository if they are a security manager or administrator of that repository, or if they are a collaborator on any security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + get: operations["security-advisories/list-repository-advisories"]; + /** + * Create a repository security advisory + * @description Creates a new repository security advisory. + * + * In order to create a draft repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + post: operations["security-advisories/create-repository-advisory"]; + }; + "/repos/{owner}/{repo}/security-advisories/reports": { + /** + * Privately report a security vulnerability + * @description Report a security vulnerability to the maintainers of the repository. + * See "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)" for more information about private vulnerability reporting. + */ + post: operations["security-advisories/create-private-vulnerability-report"]; + }; + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}": { + /** + * Get a repository security advisory + * @description Get a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * Anyone can access any published security advisory on a public repository. + * + * The authenticated user can access an unpublished security advisory from a repository if they are a security manager or administrator of that repository, or if they are a + * collaborator on the security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + get: operations["security-advisories/get-repository-advisory"]; + /** + * Update a repository security advisory + * @description Update a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * In order to update any security advisory, the authenticated user must be a security manager or administrator of that repository, + * or a collaborator on the repository security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + patch: operations["security-advisories/update-repository-advisory"]; + }; + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve": { + /** + * Request a CVE for a repository security advisory + * @description If you want a CVE identification number for the security vulnerability in your project, and don't already have one, you can request a CVE identification number from GitHub. For more information see "[Requesting a CVE identification number](https://docs.github.com/code-security/security-advisories/repository-security-advisories/publishing-a-repository-security-advisory#requesting-a-cve-identification-number-optional)." + * + * You may request a CVE for public repositories, but cannot do so for private repositories. + * + * In order to request a CVE for a repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + post: operations["security-advisories/create-repository-advisory-cve-request"]; + }; + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks": { + /** + * Create a temporary private fork + * @description Create a temporary private fork to collaborate on fixing a security vulnerability in your repository. + * + * **Note**: Forking a repository happens asynchronously. You may have to wait up to 5 minutes before you can access the fork. + */ + post: operations["security-advisories/create-fork"]; + }; + "/repos/{owner}/{repo}/stargazers": { + /** + * List stargazers + * @description Lists the people that have starred the repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + get: operations["activity/list-stargazers-for-repo"]; + }; + "/repos/{owner}/{repo}/stats/code_frequency": { + /** + * Get the weekly commit activity + * @description + * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. + * + * **Note:** This endpoint can only be used for repositories with fewer than 10,000 commits. If the repository contains + * 10,000 or more commits, a 422 status code will be returned. + */ + get: operations["repos/get-code-frequency-stats"]; + }; + "/repos/{owner}/{repo}/stats/commit_activity": { + /** + * Get the last year of commit activity + * @description Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. + */ + get: operations["repos/get-commit-activity-stats"]; + }; + "/repos/{owner}/{repo}/stats/contributors": { + /** + * Get all contributor commit activity + * @description + * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: + * + * * `w` - Start of the week, given as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + * + * **Note:** This endpoint will return `0` values for all addition and deletion counts in repositories with 10,000 or more commits. + */ + get: operations["repos/get-contributors-stats"]; + }; + "/repos/{owner}/{repo}/stats/participation": { + /** + * Get the weekly commit count + * @description Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + * + * The array order is oldest week (index 0) to most recent week. + * + * The most recent week is seven days ago at UTC midnight to today at UTC midnight. + */ + get: operations["repos/get-participation-stats"]; + }; + "/repos/{owner}/{repo}/stats/punch_card": { + /** + * Get the hourly commit count for each day + * @description Each array contains the day number, hour number, and number of commits: + * + * * `0-6`: Sunday - Saturday + * * `0-23`: Hour of day + * * Number of commits + * + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + get: operations["repos/get-punch-card-stats"]; + }; + "/repos/{owner}/{repo}/statuses/{sha}": { + /** + * Create a commit status + * @description Users with push access in a repository can create commit statuses for a given SHA. + * + * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + */ + post: operations["repos/create-commit-status"]; + }; + "/repos/{owner}/{repo}/subscribers": { + /** + * List watchers + * @description Lists the people watching the specified repository. + */ + get: operations["activity/list-watchers-for-repo"]; + }; + "/repos/{owner}/{repo}/subscription": { + /** + * Get a repository subscription + * @description Gets information about whether the authenticated user is subscribed to the repository. + */ + get: operations["activity/get-repo-subscription"]; + /** + * Set a repository subscription + * @description If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/activity/watching#delete-a-repository-subscription) completely. + */ + put: operations["activity/set-repo-subscription"]; + /** + * Delete a repository subscription + * @description This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/activity/watching#set-a-repository-subscription). + */ + delete: operations["activity/delete-repo-subscription"]; + }; + "/repos/{owner}/{repo}/tags": { + /** List repository tags */ + get: operations["repos/list-tags"]; + }; + "/repos/{owner}/{repo}/tags/protection": { + /** + * List tag protection states for a repository + * @description This returns the tag protection states of a repository. + * + * This information is only available to repository administrators. + */ + get: operations["repos/list-tag-protection"]; + /** + * Create a tag protection state for a repository + * @description This creates a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + post: operations["repos/create-tag-protection"]; + }; + "/repos/{owner}/{repo}/tags/protection/{tag_protection_id}": { + /** + * Delete a tag protection state for a repository + * @description This deletes a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + delete: operations["repos/delete-tag-protection"]; + }; + "/repos/{owner}/{repo}/tarball/{ref}": { + /** + * Download a repository archive (tar) + * @description Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + get: operations["repos/download-tarball-archive"]; + }; + "/repos/{owner}/{repo}/teams": { + /** + * List repository teams + * @description Lists the teams that have access to the specified repository and that are also visible to the authenticated user. + * + * For a public repository, a team is listed only if that team added the public repository explicitly. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to use this endpoint with a public repository, and `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/list-teams"]; + }; + "/repos/{owner}/{repo}/topics": { + /** Get all repository topics */ + get: operations["repos/get-all-topics"]; + /** Replace all repository topics */ + put: operations["repos/replace-all-topics"]; + }; + "/repos/{owner}/{repo}/traffic/clones": { + /** + * Get repository clones + * @description Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + get: operations["repos/get-clones"]; + }; + "/repos/{owner}/{repo}/traffic/popular/paths": { + /** + * Get top referral paths + * @description Get the top 10 popular contents over the last 14 days. + */ + get: operations["repos/get-top-paths"]; + }; + "/repos/{owner}/{repo}/traffic/popular/referrers": { + /** + * Get top referral sources + * @description Get the top 10 referrers over the last 14 days. + */ + get: operations["repos/get-top-referrers"]; + }; + "/repos/{owner}/{repo}/traffic/views": { + /** + * Get page views + * @description Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + get: operations["repos/get-views"]; + }; + "/repos/{owner}/{repo}/transfer": { + /** + * Transfer a repository + * @description A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://docs.github.com/articles/about-repository-transfers/). + */ + post: operations["repos/transfer"]; + }; + "/repos/{owner}/{repo}/vulnerability-alerts": { + /** + * Check if vulnerability alerts are enabled for a repository + * @description Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin read access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + get: operations["repos/check-vulnerability-alerts"]; + /** + * Enable vulnerability alerts + * @description Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + put: operations["repos/enable-vulnerability-alerts"]; + /** + * Disable vulnerability alerts + * @description Disables dependency alerts and the dependency graph for a repository. + * The authenticated user must have admin access to the repository. For more information, + * see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + delete: operations["repos/disable-vulnerability-alerts"]; + }; + "/repos/{owner}/{repo}/zipball/{ref}": { + /** + * Download a repository archive (zip) + * @description Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * + * **Note**: For private repositories, these links are temporary and expire after five minutes. If the repository is empty, you will receive a 404 when you follow the redirect. + */ + get: operations["repos/download-zipball-archive"]; + }; + "/repos/{template_owner}/{template_repo}/generate": { + /** + * Create a repository using a template + * @description Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. If the repository is not public, the authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + post: operations["repos/create-using-template"]; + }; + "/repositories": { + /** + * List public repositories + * @description Lists all public repositories in the order that they were created. + * + * Note: + * - For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise. + * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of repositories. + */ + get: operations["repos/list-public"]; + }; + "/repositories/{repository_id}/environments/{environment_name}/secrets": { + /** + * List environment secrets + * @description Lists all secrets available in an environment without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-environment-secrets"]; + }; + "/repositories/{repository_id}/environments/{environment_name}/secrets/public-key": { + /** + * Get an environment public key + * @description Get the public key for an environment, which you need to encrypt environment + * secrets. You need to encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-environment-public-key"]; + }; + "/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}": { + /** + * Get an environment secret + * @description Gets a single environment secret without revealing its encrypted value. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-environment-secret"]; + /** + * Create or update an environment secret + * @description Creates or updates an environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/create-or-update-environment-secret"]; + /** + * Delete an environment secret + * @description Deletes a secret in an environment using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-environment-secret"]; + }; + "/repositories/{repository_id}/environments/{environment_name}/variables": { + /** + * List environment variables + * @description Lists all environment variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-environment-variables"]; + /** + * Create an environment variable + * @description Create an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-environment-variable"]; + }; + "/repositories/{repository_id}/environments/{environment_name}/variables/{name}": { + /** + * Get an environment variable + * @description Gets a specific variable in an environment. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-environment-variable"]; + /** + * Delete an environment variable + * @description Deletes an environment variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-environment-variable"]; + /** + * Update an environment variable + * @description Updates an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + patch: operations["actions/update-environment-variable"]; + }; + "/search/code": { + /** + * Search code + * @description Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: + * + * `q=addClass+in:file+language:js+repo:jquery/jquery` + * + * This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. + * + * Considerations for code search: + * + * Due to the complexity of searching code, there are a few restrictions on how searches are performed: + * + * * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * * Only files smaller than 384 KB are searchable. + * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing + * language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + * + * This endpoint requires you to authenticate and limits you to 10 requests per minute. + */ + get: operations["search/code"]; + }; + "/search/commits": { + /** + * Search commits + * @description Find commits via various criteria on the default branch (usually `main`). This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match + * metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + * + * `q=repo:octocat/Spoon-Knife+css` + */ + get: operations["search/commits"]; + }; + "/search/issues": { + /** + * Search issues and pull requests + * @description Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted + * search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * `q=windows+label:bug+language:python+state:open&sort=created&order=asc` + * + * This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. + * + * **Note:** For requests made by GitHub Apps with a user access token, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + */ + get: operations["search/issues-and-pull-requests"]; + }; + "/search/labels": { + /** + * Search labels + * @description Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + * + * `q=bug+defect+enhancement&repository_id=64778136` + * + * The labels that best match the query appear first in the search results. + */ + get: operations["search/labels"]; + }; + "/search/repositories": { + /** + * Search repositories + * @description Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: + * + * `q=tetris+language:assembly&sort=stars&order=desc` + * + * This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. + */ + get: operations["search/repos"]; + }; + "/search/topics": { + /** + * Search topics + * @description Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). See "[Searching topics](https://docs.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: + * + * `q=ruby+is:featured` + * + * This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + */ + get: operations["search/topics"]; + }; + "/search/users": { + /** + * Search users + * @description Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for users, you can get text match metadata for the issue **login**, public **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you're looking for a list of popular users, you might try this query: + * + * `q=tom+repos:%3E42+followers:%3E1000` + * + * This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. + * + * This endpoint does not accept authentication and will only include publicly visible users. As an alternative, you can use the GraphQL API. The GraphQL API requires authentication and will return private users, including Enterprise Managed Users (EMUs), that you are authorized to view. For more information, see "[GraphQL Queries](https://docs.github.com/graphql/reference/queries#search)." + */ + get: operations["search/users"]; + }; + "/teams/{team_id}": { + /** + * Get a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/teams/teams#get-a-team-by-name) endpoint. + */ + get: operations["teams/get-legacy"]; + /** + * Delete a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/teams/teams#delete-a-team) endpoint. + * + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + */ + delete: operations["teams/delete-legacy"]; + /** + * Update a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/teams/teams#update-a-team) endpoint. + * + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** With nested teams, the `privacy` for parent teams cannot be `secret`. + */ + patch: operations["teams/update-legacy"]; + }; + "/teams/{team_id}/discussions": { + /** + * List discussions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List discussions`](https://docs.github.com/rest/teams/discussions#list-discussions) endpoint. + * + * List all discussions on a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/list-discussions-legacy"]; + /** + * Create a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create a discussion`](https://docs.github.com/rest/teams/discussions#create-a-discussion) endpoint. + * + * Creates a new discussion post on a team's page. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["teams/create-discussion-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}": { + /** + * Get a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion) endpoint. + * + * Get a specific discussion on a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/get-discussion-legacy"]; + /** + * Delete a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Delete a discussion`](https://docs.github.com/rest/teams/discussions#delete-a-discussion) endpoint. + * + * Delete a discussion from a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["teams/delete-discussion-legacy"]; + /** + * Update a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion](https://docs.github.com/rest/teams/discussions#update-a-discussion) endpoint. + * + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + patch: operations["teams/update-discussion-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments": { + /** + * List discussion comments (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List discussion comments](https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments) endpoint. + * + * List all comments on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/list-discussion-comments-legacy"]; + /** + * Create a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Create a discussion comment](https://docs.github.com/rest/teams/discussion-comments#create-a-discussion-comment) endpoint. + * + * Creates a new comment on a team discussion. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["teams/create-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": { + /** + * Get a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment) endpoint. + * + * Get a specific comment on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/get-discussion-comment-legacy"]; + /** + * Delete a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a discussion comment](https://docs.github.com/rest/teams/discussion-comments#delete-a-discussion-comment) endpoint. + * + * Deletes a comment on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["teams/delete-discussion-comment-legacy"]; + /** + * Update a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion comment](https://docs.github.com/rest/teams/discussion-comments#update-a-discussion-comment) endpoint. + * + * Edits the body text of a discussion comment. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + patch: operations["teams/update-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + /** + * List reactions for a team discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment) endpoint. + * + * List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["reactions/list-for-team-discussion-comment-legacy"]; + /** + * Create reaction for a team discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Create reaction for a team discussion comment](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment)" endpoint. + * + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["reactions/create-for-team-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/reactions": { + /** + * List reactions for a team discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion) endpoint. + * + * List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["reactions/list-for-team-discussion-legacy"]; + /** + * Create reaction for a team discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion`](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion) endpoint. + * + * Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["reactions/create-for-team-discussion-legacy"]; + }; + "/teams/{team_id}/invitations": { + /** + * List pending team invitations (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/teams/members#list-pending-team-invitations) endpoint. + * + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + get: operations["teams/list-pending-invitations-legacy"]; + }; + "/teams/{team_id}/members": { + /** + * List team members (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/teams/members#list-team-members) endpoint. + * + * Team members will include the members of child teams. + */ + get: operations["teams/list-members-legacy"]; + }; + "/teams/{team_id}/members/{username}": { + /** + * Get team member (Legacy) + * @deprecated + * @description The "Get team member" endpoint (described below) is deprecated. + * + * We recommend using the [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + get: operations["teams/get-member-legacy"]; + /** + * Add team member (Legacy) + * @deprecated + * @description The "Add team member" endpoint (described below) is deprecated. + * + * We recommend using the [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["teams/add-member-legacy"]; + /** + * Remove team member (Legacy) + * @deprecated + * @description The "Remove team member" endpoint (described below) is deprecated. + * + * We recommend using the [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + delete: operations["teams/remove-member-legacy"]; + }; + "/teams/{team_id}/memberships/{username}": { + /** + * Get team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint. + * + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + */ + get: operations["teams/get-membership-for-user-legacy"]; + /** + * Add or update team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + */ + put: operations["teams/add-or-update-membership-for-user-legacy"]; + /** + * Remove team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + delete: operations["teams/remove-membership-for-user-legacy"]; + }; + "/teams/{team_id}/projects": { + /** + * List team projects (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team projects`](https://docs.github.com/rest/teams/teams#list-team-projects) endpoint. + * + * Lists the organization projects for a team. + */ + get: operations["teams/list-projects-legacy"]; + }; + "/teams/{team_id}/projects/{project_id}": { + /** + * Check team permissions for a project (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a project](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-project) endpoint. + * + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + */ + get: operations["teams/check-permissions-for-project-legacy"]; + /** + * Add or update team project permissions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team project permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-project-permissions) endpoint. + * + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + */ + put: operations["teams/add-or-update-project-permissions-legacy"]; + /** + * Remove a project from a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a project from a team](https://docs.github.com/rest/teams/teams#remove-a-project-from-a-team) endpoint. + * + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. **Note:** This endpoint removes the project from the team, but does not delete it. + */ + delete: operations["teams/remove-project-legacy"]; + }; + "/teams/{team_id}/repos": { + /** + * List team repositories (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/teams/teams#list-team-repositories) endpoint. + */ + get: operations["teams/list-repos-legacy"]; + }; + "/teams/{team_id}/repos/{owner}/{repo}": { + /** + * Check team permissions for a repository (Legacy) + * @deprecated + * @description **Note**: Repositories inherited through a parent team will also be checked. + * + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository) endpoint. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + get: operations["teams/check-permissions-for-repo-legacy"]; + /** + * Add or update team repository permissions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Add or update team repository permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions)" endpoint. + * + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["teams/add-or-update-repo-permissions-legacy"]; + /** + * Remove a repository from a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team) endpoint. + * + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team. + */ + delete: operations["teams/remove-repo-legacy"]; + }; + "/teams/{team_id}/teams": { + /** + * List child teams (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/teams/teams#list-child-teams) endpoint. + */ + get: operations["teams/list-child-legacy"]; + }; + "/user": { + /** + * Get the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information. + */ + get: operations["users/get-authenticated"]; + /** + * Update the authenticated user + * @description **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API. + */ + patch: operations["users/update-authenticated"]; + }; + "/user/blocks": { + /** + * List users blocked by the authenticated user + * @description List the users you've blocked on your personal account. + */ + get: operations["users/list-blocked-by-authenticated-user"]; + }; + "/user/blocks/{username}": { + /** + * Check if a user is blocked by the authenticated user + * @description Returns a 204 if the given user is blocked by the authenticated user. Returns a 404 if the given user is not blocked by the authenticated user, or if the given user account has been identified as spam by GitHub. + */ + get: operations["users/check-blocked"]; + /** + * Block a user + * @description Blocks the given user and returns a 204. If the authenticated user cannot block the given user a 422 is returned. + */ + put: operations["users/block"]; + /** + * Unblock a user + * @description Unblocks the given user and returns a 204. + */ + delete: operations["users/unblock"]; + }; + "/user/codespaces": { + /** + * List codespaces for the authenticated user + * @description Lists the authenticated user's codespaces. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/list-for-authenticated-user"]; + /** + * Create a codespace for the authenticated user + * @description Creates a new codespace, owned by the authenticated user. + * + * This endpoint requires either a `repository_id` OR a `pull_request` but not both. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/create-for-authenticated-user"]; + }; + "/user/codespaces/secrets": { + /** + * List secrets for the authenticated user + * @description Lists all development environment secrets available for a user's codespaces without revealing their + * encrypted values. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + get: operations["codespaces/list-secrets-for-authenticated-user"]; + }; + "/user/codespaces/secrets/public-key": { + /** + * Get public key for the authenticated user + * @description Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + get: operations["codespaces/get-public-key-for-authenticated-user"]; + }; + "/user/codespaces/secrets/{secret_name}": { + /** + * Get a secret for the authenticated user + * @description Gets a development environment secret available to a user's codespaces without revealing its encrypted value. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + get: operations["codespaces/get-secret-for-authenticated-user"]; + /** + * Create or update a secret for the authenticated user + * @description Creates or updates a development environment secret for a user's codespace with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + put: operations["codespaces/create-or-update-secret-for-authenticated-user"]; + /** + * Delete a secret for the authenticated user + * @description Deletes a development environment secret from a user's codespaces using the secret name. Deleting the secret will remove access from all codespaces that were allowed to access the secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + delete: operations["codespaces/delete-secret-for-authenticated-user"]; + }; + "/user/codespaces/secrets/{secret_name}/repositories": { + /** + * List selected repositories for a user secret + * @description List the repositories that have been granted the ability to use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + get: operations["codespaces/list-repositories-for-secret-for-authenticated-user"]; + /** + * Set selected repositories for a user secret + * @description Select the repositories that will use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + put: operations["codespaces/set-repositories-for-secret-for-authenticated-user"]; + }; + "/user/codespaces/secrets/{secret_name}/repositories/{repository_id}": { + /** + * Add a selected repository to a user secret + * @description Adds a repository to the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + put: operations["codespaces/add-repository-for-secret-for-authenticated-user"]; + /** + * Remove a selected repository from a user secret + * @description Removes a repository from the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + delete: operations["codespaces/remove-repository-for-secret-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}": { + /** + * Get a codespace for the authenticated user + * @description Gets information about a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/get-for-authenticated-user"]; + /** + * Delete a codespace for the authenticated user + * @description Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + delete: operations["codespaces/delete-for-authenticated-user"]; + /** + * Update a codespace for the authenticated user + * @description Updates a codespace owned by the authenticated user. Currently only the codespace's machine type and recent folders can be modified using this endpoint. + * + * If you specify a new machine type it will be applied the next time your codespace is started. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + patch: operations["codespaces/update-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/exports": { + /** + * Export a codespace for the authenticated user + * @description Triggers an export of the specified codespace and returns a URL and ID where the status of the export can be monitored. + * + * If changes cannot be pushed to the codespace's repository, they will be pushed to a new or previously-existing fork instead. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/export-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/exports/{export_id}": { + /** + * Get details about a codespace export + * @description Gets information about an export of a codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/get-export-details-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/machines": { + /** + * List machine types for a codespace + * @description List the machine types a codespace can transition to use. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/codespace-machines-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/publish": { + /** + * Create a repository from an unpublished codespace + * @description Publishes an unpublished codespace, creating a new repository and assigning it to the codespace. + * + * The codespace's token is granted write permissions to the repository, allowing the user to push their changes. + * + * This will fail for a codespace that is already published, meaning it has an associated repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/publish-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/start": { + /** + * Start a codespace for the authenticated user + * @description Starts a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/start-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/stop": { + /** + * Stop a codespace for the authenticated user + * @description Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/stop-for-authenticated-user"]; + }; + "/user/docker/conflicts": { + /** + * Get list of conflicting packages during Docker migration for authenticated-user + * @description Lists all packages that are owned by the authenticated user within the user's namespace, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + get: operations["packages/list-docker-migration-conflicting-packages-for-authenticated-user"]; + }; + "/user/email/visibility": { + /** + * Set primary email visibility for the authenticated user + * @description Sets the visibility for your primary email addresses. + */ + patch: operations["users/set-primary-email-visibility-for-authenticated-user"]; + }; + "/user/emails": { + /** + * List email addresses for the authenticated user + * @description Lists all of your email addresses, and specifies which one is visible + * to the public. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + get: operations["users/list-emails-for-authenticated-user"]; + /** + * Add an email address for the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + post: operations["users/add-email-for-authenticated-user"]; + /** + * Delete an email address for the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + delete: operations["users/delete-email-for-authenticated-user"]; + }; + "/user/followers": { + /** + * List followers of the authenticated user + * @description Lists the people following the authenticated user. + */ + get: operations["users/list-followers-for-authenticated-user"]; + }; + "/user/following": { + /** + * List the people the authenticated user follows + * @description Lists the people who the authenticated user follows. + */ + get: operations["users/list-followed-by-authenticated-user"]; + }; + "/user/following/{username}": { + /** Check if a person is followed by the authenticated user */ + get: operations["users/check-person-is-followed-by-authenticated"]; + /** + * Follow a user + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + put: operations["users/follow"]; + /** + * Unfollow a user + * @description OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + delete: operations["users/unfollow"]; + }; + "/user/gpg_keys": { + /** + * List GPG keys for the authenticated user + * @description Lists the current user's GPG keys. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + get: operations["users/list-gpg-keys-for-authenticated-user"]; + /** + * Create a GPG key for the authenticated user + * @description Adds a GPG key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + post: operations["users/create-gpg-key-for-authenticated-user"]; + }; + "/user/gpg_keys/{gpg_key_id}": { + /** + * Get a GPG key for the authenticated user + * @description View extended details for a single GPG key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + get: operations["users/get-gpg-key-for-authenticated-user"]; + /** + * Delete a GPG key for the authenticated user + * @description Removes a GPG key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:gpg_key` scope to use this endpoint. + */ + delete: operations["users/delete-gpg-key-for-authenticated-user"]; + }; + "/user/installations": { + /** + * List app installations accessible to the user access token + * @description Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You can find the permissions for the installation under the `permissions` key. + */ + get: operations["apps/list-installations-for-authenticated-user"]; + }; + "/user/installations/{installation_id}/repositories": { + /** + * List repositories accessible to the user access token + * @description List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + get: operations["apps/list-installation-repos-for-authenticated-user"]; + }; + "/user/installations/{installation_id}/repositories/{repository_id}": { + /** + * Add a repository to an app installation + * @description Add a single repository to an installation. The authenticated user must have admin access to the repository. + */ + put: operations["apps/add-repo-to-installation-for-authenticated-user"]; + /** + * Remove a repository from an app installation + * @description Remove a single repository from an installation. The authenticated user must have admin access to the repository. The installation must have the `repository_selection` of `selected`. + */ + delete: operations["apps/remove-repo-from-installation-for-authenticated-user"]; + }; + "/user/interaction-limits": { + /** + * Get interaction restrictions for your public repositories + * @description Shows which type of GitHub user can interact with your public repositories and when the restriction expires. + */ + get: operations["interactions/get-restrictions-for-authenticated-user"]; + /** + * Set interaction restrictions for your public repositories + * @description Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. + */ + put: operations["interactions/set-restrictions-for-authenticated-user"]; + /** + * Remove interaction restrictions from your public repositories + * @description Removes any interaction restrictions from your public repositories. + */ + delete: operations["interactions/remove-restrictions-for-authenticated-user"]; + }; + "/user/issues": { + /** + * List user account issues assigned to the authenticated user + * @description List issues across owned and member repositories assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-for-authenticated-user"]; + }; + "/user/keys": { + /** + * List public SSH keys for the authenticated user + * @description Lists the public SSH keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + get: operations["users/list-public-ssh-keys-for-authenticated-user"]; + /** + * Create a public SSH key for the authenticated user + * @description Adds a public SSH key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + post: operations["users/create-public-ssh-key-for-authenticated-user"]; + }; + "/user/keys/{key_id}": { + /** + * Get a public SSH key for the authenticated user + * @description View extended details for a single public SSH key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + get: operations["users/get-public-ssh-key-for-authenticated-user"]; + /** + * Delete a public SSH key for the authenticated user + * @description Removes a public SSH key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:public_key` scope to use this endpoint. + */ + delete: operations["users/delete-public-ssh-key-for-authenticated-user"]; + }; + "/user/marketplace_purchases": { + /** + * List subscriptions for the authenticated user + * @description Lists the active subscriptions for the authenticated user. + */ + get: operations["apps/list-subscriptions-for-authenticated-user"]; + }; + "/user/marketplace_purchases/stubbed": { + /** + * List subscriptions for the authenticated user (stubbed) + * @description Lists the active subscriptions for the authenticated user. + */ + get: operations["apps/list-subscriptions-for-authenticated-user-stubbed"]; + }; + "/user/memberships/orgs": { + /** + * List organization memberships for the authenticated user + * @description Lists all of the authenticated user's organization memberships. + */ + get: operations["orgs/list-memberships-for-authenticated-user"]; + }; + "/user/memberships/orgs/{org}": { + /** + * Get an organization membership for the authenticated user + * @description If the authenticated user is an active or pending member of the organization, this endpoint will return the user's membership. If the authenticated user is not affiliated with the organization, a `404` is returned. This endpoint will return a `403` if the request is made by a GitHub App that is blocked by the organization. + */ + get: operations["orgs/get-membership-for-authenticated-user"]; + /** + * Update an organization membership for the authenticated user + * @description Converts the authenticated user to an active member of the organization, if that user has a pending invitation from the organization. + */ + patch: operations["orgs/update-membership-for-authenticated-user"]; + }; + "/user/migrations": { + /** + * List user migrations + * @description Lists all migrations a user has started. + */ + get: operations["migrations/list-for-authenticated-user"]; + /** + * Start a user migration + * @description Initiates the generation of a user migration archive. + */ + post: operations["migrations/start-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}": { + /** + * Get a user migration status + * @description Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + * + * * `pending` - the migration hasn't started yet. + * * `exporting` - the migration is in progress. + * * `exported` - the migration finished successfully. + * * `failed` - the migration failed. + * + * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/migrations/users#download-a-user-migration-archive). + */ + get: operations["migrations/get-status-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/archive": { + /** + * Download a user migration archive + * @description Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + * + * * attachments + * * bases + * * commit\_comments + * * issue\_comments + * * issue\_events + * * issues + * * milestones + * * organizations + * * projects + * * protected\_branches + * * pull\_request\_reviews + * * pull\_requests + * * releases + * * repositories + * * review\_comments + * * schema + * * users + * + * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + */ + get: operations["migrations/get-archive-for-authenticated-user"]; + /** + * Delete a user migration archive + * @description Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/migrations/users#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/migrations/users#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. + */ + delete: operations["migrations/delete-archive-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/repos/{repo_name}/lock": { + /** + * Unlock a user repository + * @description Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/migrations/users#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/repos/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. + */ + delete: operations["migrations/unlock-repo-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/repositories": { + /** + * List repositories for a user migration + * @description Lists all the repositories for this user migration. + */ + get: operations["migrations/list-repos-for-authenticated-user"]; + }; + "/user/orgs": { + /** + * List organizations for the authenticated user + * @description List organizations for the authenticated user. + * + * For OAuth app tokens and personal access tokens (classic), this endpoint only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope for OAuth app tokens and personal access tokens (classic). Requests with insufficient scope will receive a `403 Forbidden` response. + */ + get: operations["orgs/list-for-authenticated-user"]; + }; + "/user/packages": { + /** + * List packages for the authenticated user's namespace + * @description Lists packages owned by the authenticated user within the user's namespace. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/list-packages-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}": { + /** + * Get a package for the authenticated user + * @description Gets a specific package for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-for-authenticated-user"]; + /** + * Delete a package for the authenticated user + * @description Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, `repo` scope is also required. For the list these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/restore": { + /** + * Restore a package for the authenticated user + * @description Restores a package owned by the authenticated user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/versions": { + /** + * List package versions for a package owned by the authenticated user + * @description Lists package versions for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-all-package-versions-for-package-owned-by-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}": { + /** + * Get a package version for the authenticated user + * @description Gets a specific package version for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-version-for-authenticated-user"]; + /** + * Delete a package version for the authenticated user + * @description Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-version-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + /** + * Restore a package version for the authenticated user + * @description Restores a package version owned by the authenticated user. + * + * You can restore a deleted package version under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-version-for-authenticated-user"]; + }; + "/user/projects": { + /** + * Create a user project + * @description Creates a user project board. Returns a `410 Gone` status if the user does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + post: operations["projects/create-for-authenticated-user"]; + }; + "/user/public_emails": { + /** + * List public email addresses for the authenticated user + * @description Lists your publicly visible email address, which you can set with the + * [Set primary email visibility for the authenticated user](https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user) + * endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + get: operations["users/list-public-emails-for-authenticated-user"]; + }; + "/user/repos": { + /** + * List repositories for the authenticated user + * @description Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + */ + get: operations["repos/list-for-authenticated-user"]; + /** + * Create a repository for the authenticated user + * @description Creates a new repository for the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + post: operations["repos/create-for-authenticated-user"]; + }; + "/user/repository_invitations": { + /** + * List repository invitations for the authenticated user + * @description When authenticating as a user, this endpoint will list all currently open repository invitations for that user. + */ + get: operations["repos/list-invitations-for-authenticated-user"]; + }; + "/user/repository_invitations/{invitation_id}": { + /** Decline a repository invitation */ + delete: operations["repos/decline-invitation-for-authenticated-user"]; + /** Accept a repository invitation */ + patch: operations["repos/accept-invitation-for-authenticated-user"]; + }; + "/user/social_accounts": { + /** + * List social accounts for the authenticated user + * @description Lists all of your social accounts. + */ + get: operations["users/list-social-accounts-for-authenticated-user"]; + /** + * Add social accounts for the authenticated user + * @description Add one or more social accounts to the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + post: operations["users/add-social-account-for-authenticated-user"]; + /** + * Delete social accounts for the authenticated user + * @description Deletes one or more social accounts from the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + delete: operations["users/delete-social-account-for-authenticated-user"]; + }; + "/user/ssh_signing_keys": { + /** + * List SSH signing keys for the authenticated user + * @description Lists the SSH signing keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + get: operations["users/list-ssh-signing-keys-for-authenticated-user"]; + /** + * Create a SSH signing key for the authenticated user + * @description Creates an SSH signing key for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:ssh_signing_key` scope to use this endpoint. + */ + post: operations["users/create-ssh-signing-key-for-authenticated-user"]; + }; + "/user/ssh_signing_keys/{ssh_signing_key_id}": { + /** + * Get an SSH signing key for the authenticated user + * @description Gets extended details for an SSH signing key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + get: operations["users/get-ssh-signing-key-for-authenticated-user"]; + /** + * Delete an SSH signing key for the authenticated user + * @description Deletes an SSH signing key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:ssh_signing_key` scope to use this endpoint. + */ + delete: operations["users/delete-ssh-signing-key-for-authenticated-user"]; + }; + "/user/starred": { + /** + * List repositories starred by the authenticated user + * @description Lists repositories the authenticated user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + get: operations["activity/list-repos-starred-by-authenticated-user"]; + }; + "/user/starred/{owner}/{repo}": { + /** + * Check if a repository is starred by the authenticated user + * @description Whether the authenticated user has starred the repository. + */ + get: operations["activity/check-repo-is-starred-by-authenticated-user"]; + /** + * Star a repository for the authenticated user + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["activity/star-repo-for-authenticated-user"]; + /** + * Unstar a repository for the authenticated user + * @description Unstar a repository that the authenticated user has previously starred. + */ + delete: operations["activity/unstar-repo-for-authenticated-user"]; + }; + "/user/subscriptions": { + /** + * List repositories watched by the authenticated user + * @description Lists repositories the authenticated user is watching. + */ + get: operations["activity/list-watched-repos-for-authenticated-user"]; + }; + "/user/teams": { + /** + * List teams for the authenticated user + * @description List all of the teams across all of the organizations to which the authenticated + * user belongs. + * + * OAuth app tokens and personal access tokens (classic) need the `user`, `repo`, or `read:org` scope to use this endpoint. + * + * When using a fine-grained personal access token, the resource owner of the token must be a single organization, and the response will only include the teams from that organization. + */ + get: operations["teams/list-for-authenticated-user"]; + }; + "/users": { + /** + * List users + * @description Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of users. + */ + get: operations["users/list"]; + }; + "/users/{username}": { + /** + * Get a user + * @description Provides publicly available information about someone with a GitHub account. + * + * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#authentication). + * + * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://docs.github.com/rest/users/emails)". + */ + get: operations["users/get-by-username"]; + }; + "/users/{username}/docker/conflicts": { + /** + * Get list of conflicting packages during Docker migration for user + * @description Lists all packages that are in a specific user's namespace, that the requesting user has access to, and that encountered a conflict during Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + get: operations["packages/list-docker-migration-conflicting-packages-for-user"]; + }; + "/users/{username}/events": { + /** + * List events for the authenticated user + * @description If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. + */ + get: operations["activity/list-events-for-authenticated-user"]; + }; + "/users/{username}/events/orgs/{org}": { + /** + * List organization events for the authenticated user + * @description This is the user's organization dashboard. You must be authenticated as the user to view this. + */ + get: operations["activity/list-org-events-for-authenticated-user"]; + }; + "/users/{username}/events/public": { + /** List public events for a user */ + get: operations["activity/list-public-events-for-user"]; + }; + "/users/{username}/followers": { + /** + * List followers of a user + * @description Lists the people following the specified user. + */ + get: operations["users/list-followers-for-user"]; + }; + "/users/{username}/following": { + /** + * List the people a user follows + * @description Lists the people who the specified user follows. + */ + get: operations["users/list-following-for-user"]; + }; + "/users/{username}/following/{target_user}": { + /** Check if a user follows another user */ + get: operations["users/check-following-for-user"]; + }; + "/users/{username}/gists": { + /** + * List gists for a user + * @description Lists public gists for the specified user: + */ + get: operations["gists/list-for-user"]; + }; + "/users/{username}/gpg_keys": { + /** + * List GPG keys for a user + * @description Lists the GPG keys for a user. This information is accessible by anyone. + */ + get: operations["users/list-gpg-keys-for-user"]; + }; + "/users/{username}/hovercard": { + /** + * Get contextual information for a user + * @description Provides hovercard information. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + * + * The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository via cURL, it would look like this: + * + * ```shell + * curl -u username:token + * https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192 + * ``` + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["users/get-context-for-user"]; + }; + "/users/{username}/installation": { + /** + * Get a user installation for the authenticated app + * @description Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-user-installation"]; + }; + "/users/{username}/keys": { + /** + * List public keys for a user + * @description Lists the _verified_ public SSH keys for a user. This is accessible by anyone. + */ + get: operations["users/list-public-keys-for-user"]; + }; + "/users/{username}/orgs": { + /** + * List organizations for a user + * @description List [public organization memberships](https://docs.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user) API instead. + */ + get: operations["orgs/list-for-user"]; + }; + "/users/{username}/packages": { + /** + * List packages for a user + * @description Lists all packages in a user's namespace for which the requesting user has access. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/list-packages-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}": { + /** + * Get a package for a user + * @description Gets a specific package metadata for a public package owned by a user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-for-user"]; + /** + * Delete a package for a user + * @description Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/restore": { + /** + * Restore a package for a user + * @description Restores an entire package for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/versions": { + /** + * List package versions for a package owned by a user + * @description Lists package versions for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-all-package-versions-for-package-owned-by-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": { + /** + * Get a package version for a user + * @description Gets a specific package version for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-version-for-user"]; + /** + * Delete package version for a user + * @description Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-version-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + /** + * Restore package version for a user + * @description Restores a specific package version for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-version-for-user"]; + }; + "/users/{username}/projects": { + /** + * List user projects + * @description Lists projects for a user. + */ + get: operations["projects/list-for-user"]; + }; + "/users/{username}/received_events": { + /** + * List events received by the authenticated user + * @description These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. + */ + get: operations["activity/list-received-events-for-user"]; + }; + "/users/{username}/received_events/public": { + /** List public events received by a user */ + get: operations["activity/list-received-public-events-for-user"]; + }; + "/users/{username}/repos": { + /** + * List repositories for a user + * @description Lists public repositories for the specified user. + */ + get: operations["repos/list-for-user"]; + }; + "/users/{username}/settings/billing/actions": { + /** + * Get GitHub Actions billing for a user + * @description Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + get: operations["billing/get-github-actions-billing-user"]; + }; + "/users/{username}/settings/billing/packages": { + /** + * Get GitHub Packages billing for a user + * @description Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + get: operations["billing/get-github-packages-billing-user"]; + }; + "/users/{username}/settings/billing/shared-storage": { + /** + * Get shared storage billing for a user + * @description Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + get: operations["billing/get-shared-storage-billing-user"]; + }; + "/users/{username}/social_accounts": { + /** + * List social accounts for a user + * @description Lists social media accounts for a user. This endpoint is accessible by anyone. + */ + get: operations["users/list-social-accounts-for-user"]; + }; + "/users/{username}/ssh_signing_keys": { + /** + * List SSH signing keys for a user + * @description Lists the SSH signing keys for a user. This operation is accessible by anyone. + */ + get: operations["users/list-ssh-signing-keys-for-user"]; + }; + "/users/{username}/starred": { + /** + * List repositories starred by a user + * @description Lists repositories a user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + get: operations["activity/list-repos-starred-by-user"]; + }; + "/users/{username}/subscriptions": { + /** + * List repositories watched by a user + * @description Lists repositories a user is watching. + */ + get: operations["activity/list-repos-watched-by-user"]; + }; + "/versions": { + /** + * Get all API versions + * @description Get all supported GitHub API versions. + */ + get: operations["meta/get-all-versions"]; + }; + "/zen": { + /** + * Get the Zen of GitHub + * @description Get a random sentence from the Zen of GitHub + */ + get: operations["meta/get-zen"]; + }; + "/repos/{owner}/{repo}/compare/{base}...{head}": { + /** + * Compare two commits + * @description **Deprecated**: Use `repos.compareCommitsWithBasehead()` (`GET /repos/{owner}/{repo}/compare/{basehead}`) instead. Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + * + * When calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/compare-commits"]; + }; +} + +export type webhooks = Record; + +export interface components { + schemas: { + root: { + /** Format: uri-template */ + current_user_url: string; + /** Format: uri-template */ + current_user_authorizations_html_url: string; + /** Format: uri-template */ + authorizations_url: string; + /** Format: uri-template */ + code_search_url: string; + /** Format: uri-template */ + commit_search_url: string; + /** Format: uri-template */ + emails_url: string; + /** Format: uri-template */ + emojis_url: string; + /** Format: uri-template */ + events_url: string; + /** Format: uri-template */ + feeds_url: string; + /** Format: uri-template */ + followers_url: string; + /** Format: uri-template */ + following_url: string; + /** Format: uri-template */ + gists_url: string; + /** Format: uri-template */ + hub_url: string; + /** Format: uri-template */ + issue_search_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + label_search_url: string; + /** Format: uri-template */ + notifications_url: string; + /** Format: uri-template */ + organization_url: string; + /** Format: uri-template */ + organization_repositories_url: string; + /** Format: uri-template */ + organization_teams_url: string; + /** Format: uri-template */ + public_gists_url: string; + /** Format: uri-template */ + rate_limit_url: string; + /** Format: uri-template */ + repository_url: string; + /** Format: uri-template */ + repository_search_url: string; + /** Format: uri-template */ + current_user_repositories_url: string; + /** Format: uri-template */ + starred_url: string; + /** Format: uri-template */ + starred_gists_url: string; + /** Format: uri-template */ + topic_search_url?: string; + /** Format: uri-template */ + user_url: string; + /** Format: uri-template */ + user_organizations_url: string; + /** Format: uri-template */ + user_repositories_url: string; + /** Format: uri-template */ + user_search_url: string; + }; + /** + * @description The package's language or package management ecosystem. + * @enum {string} + */ + "security-advisory-ecosystems": + | "rubygems" + | "npm" + | "pip" + | "maven" + | "nuget" + | "composer" + | "go" + | "rust" + | "erlang" + | "actions" + | "pub" + | "other" + | "swift"; + /** + * Simple User + * @description A GitHub user. + */ + "simple-user": { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + }; + /** + * @description The type of credit the user is receiving. + * @enum {string} + */ + "security-advisory-credit-types": + | "analyst" + | "finder" + | "reporter" + | "coordinator" + | "remediation_developer" + | "remediation_reviewer" + | "remediation_verifier" + | "tool" + | "sponsor" + | "other"; + /** @description A GitHub Security Advisory. */ + "global-advisory": { + /** @description The GitHub Security Advisory ID. */ + ghsa_id: string; + /** @description The Common Vulnerabilities and Exposures (CVE) ID. */ + cve_id: string | null; + /** @description The API URL for the advisory. */ + url: string; + /** + * Format: uri + * @description The URL for the advisory. + */ + html_url: string; + /** + * Format: uri + * @description The API URL for the repository advisory. + */ + repository_advisory_url: string | null; + /** @description A short summary of the advisory. */ + summary: string; + /** @description A detailed description of what the advisory entails. */ + description: string | null; + /** + * @description The type of advisory. + * @enum {string} + */ + type: "reviewed" | "unreviewed" | "malware"; + /** + * @description The severity of the advisory. + * @enum {string} + */ + severity: "critical" | "high" | "medium" | "low" | "unknown"; + /** + * Format: uri + * @description The URL of the advisory's source code. + */ + source_code_location: string | null; + identifiers: + | readonly { + /** + * @description The type of identifier. + * @enum {string} + */ + type: "CVE" | "GHSA"; + /** @description The identifier value. */ + value: string; + }[] + | null; + references: string[] | null; + /** + * Format: date-time + * @description The date and time of when the advisory was published, in ISO 8601 format. + */ + published_at: string; + /** + * Format: date-time + * @description The date and time of when the advisory was last updated, in ISO 8601 format. + */ + updated_at: string; + /** + * Format: date-time + * @description The date and time of when the advisory was reviewed by GitHub, in ISO 8601 format. + */ + github_reviewed_at: string | null; + /** + * Format: date-time + * @description The date and time when the advisory was published in the National Vulnerability Database, in ISO 8601 format. + * This field is only populated when the advisory is imported from the National Vulnerability Database. + */ + nvd_published_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was withdrawn, in ISO 8601 format. + */ + withdrawn_at: string | null; + /** @description The products and respective version ranges affected by the advisory. */ + vulnerabilities: + | { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name: string | null; + } | null; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range: string | null; + /** @description The package version that resolve the vulnerability. */ + first_patched_version: string | null; + /** @description The functions in the package that are affected by the vulnerability. */ + vulnerable_functions: readonly string[] | null; + }[] + | null; + cvss: { + /** @description The CVSS vector. */ + vector_string: string | null; + /** @description The CVSS score. */ + score: number | null; + } | null; + cwes: + | { + /** @description The Common Weakness Enumeration (CWE) identifier. */ + cwe_id: string; + /** @description The name of the CWE. */ + name: string; + }[] + | null; + /** @description The users who contributed to the advisory. */ + credits: + | readonly { + user: components["schemas"]["simple-user"]; + type: components["schemas"]["security-advisory-credit-types"]; + }[] + | null; + }; + /** + * Basic Error + * @description Basic Error + */ + "basic-error": { + message?: string; + documentation_url?: string; + url?: string; + status?: string; + }; + /** + * Validation Error Simple + * @description Validation Error Simple + */ + "validation-error-simple": { + message: string; + documentation_url: string; + errors?: string[]; + }; + /** + * Simple User + * @description A GitHub user. + */ + "nullable-simple-user": { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + } | null; + /** + * GitHub app + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + integration: { + /** + * @description Unique identifier of the GitHub app + * @example 37 + */ + id: number; + /** + * @description The slug name of the GitHub app + * @example probot-owners + */ + slug?: string; + /** @example MDExOkludGVncmF0aW9uMQ== */ + node_id: string; + owner: components["schemas"]["nullable-simple-user"]; + /** + * @description The name of the GitHub app + * @example Probot Owners + */ + name: string; + /** @example The description of the app. */ + description: string | null; + /** + * Format: uri + * @example https://example.com + */ + external_url: string; + /** + * Format: uri + * @example https://github.com/apps/super-ci + */ + html_url: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + created_at: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + updated_at: string; + /** + * @description The set of permissions for the GitHub app + * @example { + * "issues": "read", + * "deployments": "write" + * } + */ + permissions: { + issues?: string; + checks?: string; + metadata?: string; + contents?: string; + deployments?: string; + [key: string]: string | undefined; + }; + /** + * @description The list of events for the GitHub app + * @example [ + * "label", + * "deployment" + * ] + */ + events: string[]; + /** + * @description The number of installations associated with the GitHub app + * @example 5 + */ + installations_count?: number; + /** @example "Iv1.25b5d1e65ffc4022" */ + client_id?: string; + /** @example "1d4b2097ac622ba702d19de498f005747a8b21d3" */ + client_secret?: string; + /** @example "6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b" */ + webhook_secret?: string | null; + /** @example "-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\n-----END RSA PRIVATE KEY-----\n" */ + pem?: string; + }; + /** + * Format: uri + * @description The URL to which the payloads will be delivered. + * @example https://example.com/webhook + */ + "webhook-config-url": string; + /** + * @description The media type used to serialize the payloads. Supported values include `json` and `form`. The default is `form`. + * @example "json" + */ + "webhook-config-content-type": string; + /** + * @description If provided, the `secret` will be used as the `key` to generate the HMAC hex digest value for [delivery signature headers](https://docs.github.com/webhooks/event-payloads/#delivery-headers). + * @example "********" + */ + "webhook-config-secret": string; + "webhook-config-insecure-ssl": string | number; + /** + * Webhook Configuration + * @description Configuration object of the webhook + */ + "webhook-config": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + /** + * Simple webhook delivery + * @description Delivery made by a webhook, without request and response information. + */ + "hook-delivery-item": { + /** + * @description Unique identifier of the webhook delivery. + * @example 42 + */ + id: number; + /** + * @description Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event). + * @example 58474f00-b361-11eb-836d-0e4f3503ccbe + */ + guid: string; + /** + * Format: date-time + * @description Time when the webhook delivery occurred. + * @example 2021-05-12T20:33:44Z + */ + delivered_at: string; + /** + * @description Whether the webhook delivery is a redelivery. + * @example false + */ + redelivery: boolean; + /** + * @description Time spent delivering. + * @example 0.03 + */ + duration: number; + /** + * @description Describes the response returned after attempting the delivery. + * @example failed to connect + */ + status: string; + /** + * @description Status code received when delivery was made. + * @example 502 + */ + status_code: number; + /** + * @description The event that triggered the delivery. + * @example issues + */ + event: string; + /** + * @description The type of activity for the event that triggered the delivery. + * @example opened + */ + action: string | null; + /** + * @description The id of the GitHub App installation associated with this event. + * @example 123 + */ + installation_id: number | null; + /** + * @description The id of the repository associated with this event. + * @example 123 + */ + repository_id: number | null; + }; + /** + * Scim Error + * @description Scim Error + */ + "scim-error": { + message?: string | null; + documentation_url?: string | null; + detail?: string | null; + status?: number; + scimType?: string | null; + schemas?: string[]; + }; + /** + * Validation Error + * @description Validation Error + */ + "validation-error": { + message: string; + documentation_url: string; + errors?: { + resource?: string; + field?: string; + message?: string; + code: string; + index?: number; + value?: (string | null) | (number | null) | (string[] | null); + }[]; + }; + /** + * Webhook delivery + * @description Delivery made by a webhook. + */ + "hook-delivery": { + /** + * @description Unique identifier of the delivery. + * @example 42 + */ + id: number; + /** + * @description Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event). + * @example 58474f00-b361-11eb-836d-0e4f3503ccbe + */ + guid: string; + /** + * Format: date-time + * @description Time when the delivery was delivered. + * @example 2021-05-12T20:33:44Z + */ + delivered_at: string; + /** + * @description Whether the delivery is a redelivery. + * @example false + */ + redelivery: boolean; + /** + * @description Time spent delivering. + * @example 0.03 + */ + duration: number; + /** + * @description Description of the status of the attempted delivery + * @example failed to connect + */ + status: string; + /** + * @description Status code received when delivery was made. + * @example 502 + */ + status_code: number; + /** + * @description The event that triggered the delivery. + * @example issues + */ + event: string; + /** + * @description The type of activity for the event that triggered the delivery. + * @example opened + */ + action: string | null; + /** + * @description The id of the GitHub App installation associated with this event. + * @example 123 + */ + installation_id: number | null; + /** + * @description The id of the repository associated with this event. + * @example 123 + */ + repository_id: number | null; + /** + * @description The URL target of the delivery. + * @example https://www.example.com + */ + url?: string; + request: { + /** @description The request headers sent with the webhook delivery. */ + headers: { + [key: string]: unknown; + } | null; + /** @description The webhook payload. */ + payload: { + [key: string]: unknown; + } | null; + }; + response: { + /** @description The response headers received when the delivery was made. */ + headers: { + [key: string]: unknown; + } | null; + /** @description The response payload received. */ + payload: string | null; + }; + }; + /** + * Enterprise + * @description An enterprise on GitHub. + */ + enterprise: { + /** @description A short description of the enterprise. */ + description?: string | null; + /** + * Format: uri + * @example https://github.com/enterprises/octo-business + */ + html_url: string; + /** + * Format: uri + * @description The enterprise's website URL. + */ + website_url?: string | null; + /** + * @description Unique identifier of the enterprise + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the enterprise. + * @example Octo Business + */ + name: string; + /** + * @description The slug url identifier for the enterprise. + * @example octo-business + */ + slug: string; + /** + * Format: date-time + * @example 2019-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2019-01-26T19:14:43Z + */ + updated_at: string | null; + /** Format: uri */ + avatar_url: string; + }; + /** + * Integration Installation Request + * @description Request to install an integration on a target + */ + "integration-installation-request": { + /** + * @description Unique identifier of the request installation. + * @example 42 + */ + id: number; + /** @example MDExOkludGVncmF0aW9uMQ== */ + node_id?: string; + account: + | components["schemas"]["simple-user"] + | components["schemas"]["enterprise"]; + requester: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @example 2022-07-08T16:18:44-04:00 + */ + created_at: string; + }; + /** + * App Permissions + * @description The permissions granted to the user access token. + * @example { + * "contents": "read", + * "issues": "read", + * "deployments": "write", + * "single_file": "read" + * } + */ + "app-permissions": { + /** + * @description The level of permission to grant the access token for GitHub Actions workflows, workflow runs, and artifacts. + * @enum {string} + */ + actions?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository creation, deletion, settings, teams, and collaborators creation. + * @enum {string} + */ + administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token for checks on code. + * @enum {string} + */ + checks?: "read" | "write"; + /** + * @description The level of permission to grant the access token to create, edit, delete, and list Codespaces. + * @enum {string} + */ + codespaces?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges. + * @enum {string} + */ + contents?: "read" | "write"; + /** + * @description The leve of permission to grant the access token to manage Dependabot secrets. + * @enum {string} + */ + dependabot_secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token for deployments and deployment statuses. + * @enum {string} + */ + deployments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for managing repository environments. + * @enum {string} + */ + environments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for issues and related comments, assignees, labels, and milestones. + * @enum {string} + */ + issues?: "read" | "write"; + /** + * @description The level of permission to grant the access token to search repositories, list collaborators, and access repository metadata. + * @enum {string} + */ + metadata?: "read" | "write"; + /** + * @description The level of permission to grant the access token for packages published to GitHub Packages. + * @enum {string} + */ + packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to retrieve Pages statuses, configuration, and builds, as well as create new builds. + * @enum {string} + */ + pages?: "read" | "write"; + /** + * @description The level of permission to grant the access token for pull requests and related comments, assignees, labels, milestones, and merges. + * @enum {string} + */ + pull_requests?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and edit custom properties for a repository, when allowed by the property. + * @enum {string} + */ + repository_custom_properties?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for a repository. + * @enum {string} + */ + repository_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository projects, columns, and cards. + * @enum {string} + */ + repository_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token to view and manage secret scanning alerts. + * @enum {string} + */ + secret_scanning_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository secrets. + * @enum {string} + */ + secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage security events like code scanning alerts. + * @enum {string} + */ + security_events?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage just a single file. + * @enum {string} + */ + single_file?: "read" | "write"; + /** + * @description The level of permission to grant the access token for commit statuses. + * @enum {string} + */ + statuses?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage Dependabot alerts. + * @enum {string} + */ + vulnerability_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to update GitHub Actions workflow files. + * @enum {string} + */ + workflows?: "write"; + /** + * @description The level of permission to grant the access token for organization teams and members. + * @enum {string} + */ + members?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage access to an organization. + * @enum {string} + */ + organization_administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token for custom repository roles management. + * @enum {string} + */ + organization_custom_roles?: "read" | "write"; + /** + * @description The level of permission to grant the access token for custom organization roles management. + * @enum {string} + */ + organization_custom_org_roles?: "read" | "write"; + /** + * @description The level of permission to grant the access token for custom property management. + * @enum {string} + */ + organization_custom_properties?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token for managing access to GitHub Copilot for members of an organization with a Copilot Business subscription. This property is in beta and is subject to change. + * @enum {string} + */ + organization_copilot_seat_management?: "write"; + /** + * @description The level of permission to grant the access token to view and manage announcement banners for an organization. + * @enum {string} + */ + organization_announcement_banners?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view events triggered by an activity in an organization. + * @enum {string} + */ + organization_events?: "read"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for an organization. + * @enum {string} + */ + organization_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing and managing fine-grained personal access token requests to an organization. + * @enum {string} + */ + organization_personal_access_tokens?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing and managing fine-grained personal access tokens that have been approved by an organization. + * @enum {string} + */ + organization_personal_access_token_requests?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing an organization's plan. + * @enum {string} + */ + organization_plan?: "read"; + /** + * @description The level of permission to grant the access token to manage organization projects and projects beta (where available). + * @enum {string} + */ + organization_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token for organization packages published to GitHub Packages. + * @enum {string} + */ + organization_packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage organization secrets. + * @enum {string} + */ + organization_secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage GitHub Actions self-hosted runners available to an organization. + * @enum {string} + */ + organization_self_hosted_runners?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage users blocked by the organization. + * @enum {string} + */ + organization_user_blocking?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage team discussions and related comments. + * @enum {string} + */ + team_discussions?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the email addresses belonging to a user. + * @enum {string} + */ + email_addresses?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the followers belonging to a user. + * @enum {string} + */ + followers?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage git SSH keys. + * @enum {string} + */ + git_ssh_keys?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage GPG keys belonging to a user. + * @enum {string} + */ + gpg_keys?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage interaction limits on a repository. + * @enum {string} + */ + interaction_limits?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the profile settings belonging to a user. + * @enum {string} + */ + profile?: "write"; + /** + * @description The level of permission to grant the access token to list and manage repositories a user is starring. + * @enum {string} + */ + starring?: "read" | "write"; + }; + /** + * Installation + * @description Installation + */ + installation: { + /** + * @description The ID of the installation. + * @example 1 + */ + id: number; + account: + | ( + | components["schemas"]["simple-user"] + | components["schemas"]["enterprise"] + ) + | null; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** + * Format: uri + * @example https://api.github.com/app/installations/1/access_tokens + */ + access_tokens_url: string; + /** + * Format: uri + * @example https://api.github.com/installation/repositories + */ + repositories_url: string; + /** + * Format: uri + * @example https://github.com/organizations/github/settings/installations/1 + */ + html_url: string; + /** @example 1 */ + app_id: number; + /** @description The ID of the user or organization this token is being scoped to. */ + target_id: number; + /** @example Organization */ + target_type: string; + permissions: components["schemas"]["app-permissions"]; + events: string[]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** @example config.yaml */ + single_file_name: string | null; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + /** @example github-actions */ + app_slug: string; + suspended_by: components["schemas"]["nullable-simple-user"]; + /** Format: date-time */ + suspended_at: string | null; + /** @example "test_13f1e99741e3e004@d7e1eb0bc0a1ba12.com" */ + contact_email?: string | null; + }; + /** + * License Simple + * @description License Simple + */ + "nullable-license-simple": { + /** @example mit */ + key: string; + /** @example MIT License */ + name: string; + /** + * Format: uri + * @example https://api.github.com/licenses/mit + */ + url: string | null; + /** @example MIT */ + spdx_id: string | null; + /** @example MDc6TGljZW5zZW1pdA== */ + node_id: string; + /** Format: uri */ + html_url?: string; + } | null; + /** + * Repository + * @description A repository on GitHub. + */ + repository: { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @deprecated + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + */ + web_commit_signoff_required?: boolean; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + /** @description Whether anonymous git access is enabled for this repository */ + anonymous_access_enabled?: boolean; + }; + /** + * Installation Token + * @description Authentication token for a GitHub App installed on a user or org. + */ + "installation-token": { + token: string; + expires_at: string; + permissions?: components["schemas"]["app-permissions"]; + /** @enum {string} */ + repository_selection?: "all" | "selected"; + repositories?: components["schemas"]["repository"][]; + /** @example README.md */ + single_file?: string; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + }; + /** Scoped Installation */ + "nullable-scoped-installation": { + permissions: components["schemas"]["app-permissions"]; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** @example config.yaml */ + single_file_name: string | null; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repositories_url: string; + account: components["schemas"]["simple-user"]; + } | null; + /** + * Authorization + * @description The authorization for an OAuth app, GitHub App, or a Personal Access Token. + */ + authorization: { + id: number; + /** Format: uri */ + url: string; + /** @description A list of scopes that this authorization is in. */ + scopes: string[] | null; + token: string; + token_last_eight: string | null; + hashed_token: string | null; + app: { + client_id: string; + name: string; + /** Format: uri */ + url: string; + }; + note: string | null; + /** Format: uri */ + note_url: string | null; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + created_at: string; + fingerprint: string | null; + user?: components["schemas"]["nullable-simple-user"]; + installation?: components["schemas"]["nullable-scoped-installation"]; + /** Format: date-time */ + expires_at: string | null; + }; + /** + * Simple Classroom Repository + * @description A GitHub repository view for Classroom + */ + "simple-classroom-repository": { + /** + * @description A unique identifier of the repository. + * @example 1296269 + */ + id: number; + /** + * @description The full, globally unique name of the repository. + * @example octocat/Hello-World + */ + full_name: string; + /** + * Format: uri + * @description The URL to view the repository on GitHub.com. + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** + * @description The GraphQL identifier of the repository. + * @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + */ + node_id: string; + /** @description Whether the repository is private. */ + private: boolean; + /** + * @description The default branch for the repository. + * @example main + */ + default_branch: string; + }; + /** + * Organization Simple for Classroom + * @description A GitHub organization. + */ + "simple-classroom-organization": { + /** @example 1 */ + id: number; + /** @example github */ + login: string; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/github + */ + html_url: string; + /** @example Github - Code thigns happen here */ + name: string | null; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + }; + /** + * Classroom + * @description A GitHub Classroom classroom + */ + classroom: { + /** + * @description Unique identifier of the classroom. + * @example 42 + */ + id: number; + /** + * @description The name of the classroom. + * @example Programming Elixir + */ + name: string; + /** + * @description Whether classroom is archived. + * @example false + */ + archived: boolean; + organization: components["schemas"]["simple-classroom-organization"]; + /** + * @description The URL of the classroom on GitHub Classroom. + * @example https://classroom.github.com/classrooms/1-programming-elixir + */ + url: string; + }; + /** + * Classroom Assignment + * @description A GitHub Classroom assignment + */ + "classroom-assignment": { + /** + * @description Unique identifier of the repository. + * @example 42 + */ + id: number; + /** + * @description Whether an accepted assignment creates a public repository. + * @example true + */ + public_repo: boolean; + /** + * @description Assignment title. + * @example Intro to Binaries + */ + title: string; + /** + * @description Whether it's a group assignment or individual assignment. + * @example individual + * @enum {string} + */ + type: "individual" | "group"; + /** + * @description The link that a student can use to accept the assignment. + * @example https://classroom.github.com/a/Lx7jiUgx + */ + invite_link: string; + /** + * @description Whether the invitation link is enabled. Visiting an enabled invitation link will accept the assignment. + * @example true + */ + invitations_enabled: boolean; + /** + * @description Sluggified name of the assignment. + * @example intro-to-binaries + */ + slug: string; + /** + * @description Whether students are admins on created repository when a student accepts the assignment. + * @example true + */ + students_are_repo_admins: boolean; + /** + * @description Whether feedback pull request will be created when a student accepts the assignment. + * @example true + */ + feedback_pull_requests_enabled: boolean; + /** + * @description The maximum allowable teams for the assignment. + * @example 0 + */ + max_teams: number | null; + /** + * @description The maximum allowable members per team. + * @example 0 + */ + max_members: number | null; + /** + * @description The selected editor for the assignment. + * @example codespaces + */ + editor: string; + /** + * @description The number of students that have accepted the assignment. + * @example 25 + */ + accepted: number; + /** + * @description The number of students that have submitted the assignment. + * @example 10 + */ + submitted: number; + /** + * @description The number of students that have passed the assignment. + * @example 10 + */ + passing: number; + /** + * @description The programming language used in the assignment. + * @example elixir + */ + language: string; + /** + * Format: date-time + * @description The time at which the assignment is due. + * @example 2011-01-26T19:06:43Z + */ + deadline: string | null; + starter_code_repository: components["schemas"]["simple-classroom-repository"]; + classroom: components["schemas"]["classroom"]; + }; + /** + * Simple Classroom User + * @description A GitHub user simplified for Classroom. + */ + "simple-classroom-user": { + /** @example 1 */ + id: number; + /** @example octocat */ + login: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + }; + /** + * Simple Classroom + * @description A GitHub Classroom classroom + */ + "simple-classroom": { + /** + * @description Unique identifier of the classroom. + * @example 42 + */ + id: number; + /** + * @description The name of the classroom. + * @example Programming Elixir + */ + name: string; + /** + * @description Returns whether classroom is archived or not. + * @example false + */ + archived: boolean; + /** + * @description The url of the classroom on GitHub Classroom. + * @example https://classroom.github.com/classrooms/1-programming-elixir + */ + url: string; + }; + /** + * Simple Classroom Assignment + * @description A GitHub Classroom assignment + */ + "simple-classroom-assignment": { + /** + * @description Unique identifier of the repository. + * @example 42 + */ + id: number; + /** + * @description Whether an accepted assignment creates a public repository. + * @example true + */ + public_repo: boolean; + /** + * @description Assignment title. + * @example Intro to Binaries + */ + title: string; + /** + * @description Whether it's a Group Assignment or Individual Assignment. + * @example individual + * @enum {string} + */ + type: "individual" | "group"; + /** + * @description The link that a student can use to accept the assignment. + * @example https://classroom.github.com/a/Lx7jiUgx + */ + invite_link: string; + /** + * @description Whether the invitation link is enabled. Visiting an enabled invitation link will accept the assignment. + * @example true + */ + invitations_enabled: boolean; + /** + * @description Sluggified name of the assignment. + * @example intro-to-binaries + */ + slug: string; + /** + * @description Whether students are admins on created repository on accepted assignment. + * @example true + */ + students_are_repo_admins: boolean; + /** + * @description Whether feedback pull request will be created on assignment acceptance. + * @example true + */ + feedback_pull_requests_enabled: boolean; + /** + * @description The maximum allowable teams for the assignment. + * @example 0 + */ + max_teams?: number | null; + /** + * @description The maximum allowable members per team. + * @example 0 + */ + max_members?: number | null; + /** + * @description The selected editor for the assignment. + * @example codespaces + */ + editor: string; + /** + * @description The number of students that have accepted the assignment. + * @example 25 + */ + accepted: number; + /** + * @description The number of students that have submitted the assignment. + * @example 10 + */ + submitted: number; + /** + * @description The number of students that have passed the assignment. + * @example 10 + */ + passing: number; + /** + * @description The programming language used in the assignment. + * @example elixir + */ + language: string; + /** + * Format: date-time + * @description The time at which the assignment is due. + * @example 2011-01-26T19:06:43Z + */ + deadline: string | null; + classroom: components["schemas"]["simple-classroom"]; + }; + /** + * Classroom Accepted Assignment + * @description A GitHub Classroom accepted assignment + */ + "classroom-accepted-assignment": { + /** + * @description Unique identifier of the repository. + * @example 42 + */ + id: number; + /** + * @description Whether an accepted assignment has been submitted. + * @example true + */ + submitted: boolean; + /** + * @description Whether a submission passed. + * @example true + */ + passing: boolean; + /** + * @description Count of student commits. + * @example 5 + */ + commit_count: number; + /** + * @description Most recent grade. + * @example 10/10 + */ + grade: string; + students: components["schemas"]["simple-classroom-user"][]; + repository: components["schemas"]["simple-classroom-repository"]; + assignment: components["schemas"]["simple-classroom-assignment"]; + }; + /** + * Classroom Assignment Grade + * @description Grade for a student or groups GitHub Classroom assignment + */ + "classroom-assignment-grade": { + /** @description Name of the assignment */ + assignment_name: string; + /** @description URL of the assignment */ + assignment_url: string; + /** @description URL of the starter code for the assignment */ + starter_code_url: string; + /** @description GitHub username of the student */ + github_username: string; + /** @description Roster identifier of the student */ + roster_identifier: string; + /** @description Name of the student's assignment repository */ + student_repository_name: string; + /** @description URL of the student's assignment repository */ + student_repository_url: string; + /** @description Timestamp of the student's assignment submission */ + submission_timestamp: string; + /** @description Number of points awarded to the student */ + points_awarded: number; + /** @description Number of points available for the assignment */ + points_available: number; + /** @description If a group assignment, name of the group the student is in */ + group_name?: string; + }; + /** + * Code Of Conduct + * @description Code Of Conduct + */ + "code-of-conduct": { + /** @example contributor_covenant */ + key: string; + /** @example Contributor Covenant */ + name: string; + /** + * Format: uri + * @example https://api.github.com/codes_of_conduct/contributor_covenant + */ + url: string; + /** + * @example # Contributor Covenant Code of Conduct + * + * ## Our Pledge + * + * 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. + * + * ## Our Standards + * + * Examples of behavior that contributes to creating a positive environment include: + * + * * Using welcoming and inclusive language + * * Being respectful of differing viewpoints and experiences + * * Gracefully accepting constructive criticism + * * Focusing on what is best for the community + * * Showing empathy towards other community members + * + * Examples of unacceptable behavior by participants include: + * + * * The use of sexualized language or imagery and unwelcome sexual attention or advances + * * Trolling, insulting/derogatory comments, and personal or political attacks + * * Public or private harassment + * * Publishing others' private information, such as a physical or electronic address, without explicit permission + * * Other conduct which could reasonably be considered inappropriate in a professional setting + * + * ## Our Responsibilities + * + * 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. + * + * 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. + * + * ## Scope + * + * 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. + * + * ## Enforcement + * + * Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. 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. + * + * 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. + * + * ## Attribution + * + * This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.4, available at [http://contributor-covenant.org/version/1/4](http://contributor-covenant.org/version/1/4/). + */ + body?: string; + /** Format: uri */ + html_url: string | null; + }; + /** @description The security alert number. */ + readonly "alert-number": number; + /** @description Details for the vulnerable package. */ + readonly "dependabot-alert-package": { + /** @description The package's language or package management ecosystem. */ + readonly ecosystem: string; + /** @description The unique package name within its ecosystem. */ + readonly name: string; + }; + /** @description Details pertaining to one vulnerable version range for the advisory. */ + readonly "dependabot-alert-security-vulnerability": { + readonly package: components["schemas"]["dependabot-alert-package"]; + /** + * @description The severity of the vulnerability. + * @enum {string} + */ + readonly severity: "low" | "medium" | "high" | "critical"; + /** @description Conditions that identify vulnerable versions of this vulnerability's package. */ + readonly vulnerable_version_range: string; + /** @description Details pertaining to the package version that patches this vulnerability. */ + readonly first_patched_version: { + /** @description The package version that patches this vulnerability. */ + readonly identifier: string; + } | null; + }; + /** @description Details for the GitHub Security Advisory. */ + readonly "dependabot-alert-security-advisory": { + /** @description The unique GitHub Security Advisory ID assigned to the advisory. */ + readonly ghsa_id: string; + /** @description The unique CVE ID assigned to the advisory. */ + readonly cve_id: string | null; + /** @description A short, plain text summary of the advisory. */ + readonly summary: string; + /** @description A long-form Markdown-supported description of the advisory. */ + readonly description: string; + /** @description Vulnerable version range information for the advisory. */ + readonly vulnerabilities: readonly components["schemas"]["dependabot-alert-security-vulnerability"][]; + /** + * @description The severity of the advisory. + * @enum {string} + */ + readonly severity: "low" | "medium" | "high" | "critical"; + /** @description Details for the advisory pertaining to the Common Vulnerability Scoring System. */ + readonly cvss: { + /** @description The overall CVSS score of the advisory. */ + readonly score: number; + /** @description The full CVSS vector string for the advisory. */ + readonly vector_string: string | null; + }; + /** @description Details for the advisory pertaining to Common Weakness Enumeration. */ + readonly cwes: readonly { + /** @description The unique CWE ID. */ + readonly cwe_id: string; + /** @description The short, plain text name of the CWE. */ + readonly name: string; + }[]; + /** @description Values that identify this advisory among security information sources. */ + readonly identifiers: readonly { + /** + * @description The type of advisory identifier. + * @enum {string} + */ + readonly type: "CVE" | "GHSA"; + /** @description The value of the advisory identifer. */ + readonly value: string; + }[]; + /** @description Links to additional advisory information. */ + readonly references: readonly { + /** + * Format: uri + * @description The URL of the reference. + */ + readonly url: string; + }[]; + /** + * Format: date-time + * @description The time that the advisory was published in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly published_at: string; + /** + * Format: date-time + * @description The time that the advisory was last modified in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly updated_at: string; + /** + * Format: date-time + * @description The time that the advisory was withdrawn in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly withdrawn_at: string | null; + }; + /** + * Format: uri + * @description The REST API URL of the alert resource. + */ + readonly "alert-url": string; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + readonly "alert-html-url": string; + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-created-at": string; + /** + * Format: date-time + * @description The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-updated-at": string; + /** + * Format: date-time + * @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-dismissed-at": string | null; + /** + * Format: date-time + * @description The time that the alert was no longer detected and was considered fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-fixed-at": string | null; + /** + * Format: date-time + * @description The time that the alert was auto-dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-auto-dismissed-at": string | null; + /** + * Simple Repository + * @description A GitHub repository. + */ + "simple-repository": { + /** + * @description A unique identifier of the repository. + * @example 1296269 + */ + id: number; + /** + * @description The GraphQL identifier of the repository. + * @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + */ + node_id: string; + /** + * @description The name of the repository. + * @example Hello-World + */ + name: string; + /** + * @description The full, globally unique, name of the repository. + * @example octocat/Hello-World + */ + full_name: string; + owner: components["schemas"]["simple-user"]; + /** @description Whether the repository is private. */ + private: boolean; + /** + * Format: uri + * @description The URL to view the repository on GitHub.com. + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** + * @description The repository description. + * @example This your first repo! + */ + description: string | null; + /** @description Whether the repository is a fork. */ + fork: boolean; + /** + * Format: uri + * @description The URL to get more information about the repository from the GitHub API. + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** + * @description A template for the API URL to download the repository as an archive. + * @example https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + */ + archive_url: string; + /** + * @description A template for the API URL to list the available assignees for issues in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/assignees{/user} + */ + assignees_url: string; + /** + * @description A template for the API URL to create or retrieve a raw Git blob in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + */ + blobs_url: string; + /** + * @description A template for the API URL to get information about branches in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/branches{/branch} + */ + branches_url: string; + /** + * @description A template for the API URL to get information about collaborators of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + */ + collaborators_url: string; + /** + * @description A template for the API URL to get information about comments on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/comments{/number} + */ + comments_url: string; + /** + * @description A template for the API URL to get information about commits on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/commits{/sha} + */ + commits_url: string; + /** + * @description A template for the API URL to compare two commits or refs. + * @example https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + */ + compare_url: string; + /** + * @description A template for the API URL to get the contents of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/contents/{+path} + */ + contents_url: string; + /** + * Format: uri + * @description A template for the API URL to list the contributors to the repository. + * @example https://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @description The API URL to list the deployments of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @description The API URL to list the downloads on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @description The API URL to list the events of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @description The API URL to list the forks of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** + * @description A template for the API URL to get information about Git commits of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + */ + git_commits_url: string; + /** + * @description A template for the API URL to get information about Git refs of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + */ + git_refs_url: string; + /** + * @description A template for the API URL to get information about Git tags of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + */ + git_tags_url: string; + /** + * @description A template for the API URL to get information about issue comments on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + */ + issue_comment_url: string; + /** + * @description A template for the API URL to get information about issue events on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + */ + issue_events_url: string; + /** + * @description A template for the API URL to get information about issues on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/issues{/number} + */ + issues_url: string; + /** + * @description A template for the API URL to get information about deploy keys on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + */ + keys_url: string; + /** + * @description A template for the API URL to get information about labels of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/labels{/name} + */ + labels_url: string; + /** + * Format: uri + * @description The API URL to get information about the languages of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @description The API URL to merge branches in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** + * @description A template for the API URL to get information about milestones of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/milestones{/number} + */ + milestones_url: string; + /** + * @description A template for the API URL to get information about notifications on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + */ + notifications_url: string; + /** + * @description A template for the API URL to get information about pull requests on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/pulls{/number} + */ + pulls_url: string; + /** + * @description A template for the API URL to get information about releases on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/releases{/id} + */ + releases_url: string; + /** + * Format: uri + * @description The API URL to list the stargazers on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** + * @description A template for the API URL to get information about statuses of a commit. + * @example https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + */ + statuses_url: string; + /** + * Format: uri + * @description The API URL to list the subscribers on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @description The API URL to subscribe to notifications for this repository. + * @example https://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @description The API URL to get information about tags on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @description The API URL to list the teams on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** + * @description A template for the API URL to create or retrieve a raw Git tree of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + */ + trees_url: string; + /** + * Format: uri + * @description The API URL to list the hooks on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + }; + /** @description A Dependabot alert. */ + "dependabot-alert-with-repository": { + number: components["schemas"]["alert-number"]; + /** + * @description The state of the Dependabot alert. + * @enum {string} + */ + state: "auto_dismissed" | "dismissed" | "fixed" | "open"; + /** @description Details for the vulnerable dependency. */ + dependency: { + readonly package?: components["schemas"]["dependabot-alert-package"]; + /** @description The full path to the dependency manifest file, relative to the root of the repository. */ + readonly manifest_path?: string; + /** + * @description The execution scope of the vulnerable dependency. + * @enum {string|null} + */ + readonly scope?: "development" | "runtime" | null; + }; + security_advisory: components["schemas"]["dependabot-alert-security-advisory"]; + security_vulnerability: components["schemas"]["dependabot-alert-security-vulnerability"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at: components["schemas"]["alert-updated-at"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + /** + * @description The reason that the alert was dismissed. + * @enum {string|null} + */ + dismissed_reason: + | "fix_started" + | "inaccurate" + | "no_bandwidth" + | "not_used" + | "tolerable_risk" + | null; + /** @description An optional comment associated with the alert's dismissal. */ + dismissed_comment: string | null; + fixed_at: components["schemas"]["alert-fixed-at"]; + auto_dismissed_at?: components["schemas"]["alert-auto-dismissed-at"]; + repository: components["schemas"]["simple-repository"]; + }; + /** + * Format: date-time + * @description The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "nullable-alert-updated-at": string | null; + /** + * @description Sets the state of the secret scanning alert. You must provide `resolution` when you set the state to `resolved`. + * @enum {string} + */ + "secret-scanning-alert-state": "open" | "resolved"; + /** + * @description **Required when the `state` is `resolved`.** The reason for resolving the alert. + * @enum {string|null} + */ + "secret-scanning-alert-resolution": + | "false_positive" + | "wont_fix" + | "revoked" + | "used_in_tests" + | null; + "organization-secret-scanning-alert": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["nullable-alert-updated-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + /** + * Format: uri + * @description The REST API URL of the code locations for this alert. + */ + locations_url?: string; + state?: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + /** + * Format: date-time + * @description The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + resolved_at?: string | null; + resolved_by?: components["schemas"]["nullable-simple-user"]; + /** @description The type of secret that secret scanning detected. */ + secret_type?: string; + /** + * @description User-friendly name for the detected secret, matching the `secret_type`. + * For a list of built-in patterns, see "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)." + */ + secret_type_display_name?: string; + /** @description The secret that was detected. */ + secret?: string; + repository?: components["schemas"]["simple-repository"]; + /** @description Whether push protection was bypassed for the detected secret. */ + push_protection_bypassed?: boolean | null; + push_protection_bypassed_by?: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + push_protection_bypassed_at?: string | null; + /** @description The comment that was optionally added when this alert was closed */ + resolution_comment?: string | null; + /** + * @description The token status as of the latest validity check. + * @enum {string} + */ + validity?: "active" | "inactive" | "unknown"; + }; + /** + * Actor + * @description Actor + */ + actor: { + id: number; + login: string; + display_login?: string; + gravatar_id: string | null; + /** Format: uri */ + url: string; + /** Format: uri */ + avatar_url: string; + }; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + "nullable-milestone": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1 + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/milestones/v1.0 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + */ + labels_url: string; + /** @example 1002604 */ + id: number; + /** @example MDk6TWlsZXN0b25lMTAwMjYwNA== */ + node_id: string; + /** + * @description The number of the milestone. + * @example 42 + */ + number: number; + /** + * @description The state of the milestone. + * @default open + * @example open + * @enum {string} + */ + state: "open" | "closed"; + /** + * @description The title of the milestone. + * @example v1.0 + */ + title: string; + /** @example Tracking milestone for version 1.0 */ + description: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** @example 4 */ + open_issues: number; + /** @example 8 */ + closed_issues: number; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2013-02-12T13:22:01Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2012-10-09T23:39:01Z + */ + due_on: string | null; + } | null; + /** + * GitHub app + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + "nullable-integration": { + /** + * @description Unique identifier of the GitHub app + * @example 37 + */ + id: number; + /** + * @description The slug name of the GitHub app + * @example probot-owners + */ + slug?: string; + /** @example MDExOkludGVncmF0aW9uMQ== */ + node_id: string; + owner: components["schemas"]["nullable-simple-user"]; + /** + * @description The name of the GitHub app + * @example Probot Owners + */ + name: string; + /** @example The description of the app. */ + description: string | null; + /** + * Format: uri + * @example https://example.com + */ + external_url: string; + /** + * Format: uri + * @example https://github.com/apps/super-ci + */ + html_url: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + created_at: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + updated_at: string; + /** + * @description The set of permissions for the GitHub app + * @example { + * "issues": "read", + * "deployments": "write" + * } + */ + permissions: { + issues?: string; + checks?: string; + metadata?: string; + contents?: string; + deployments?: string; + [key: string]: string | undefined; + }; + /** + * @description The list of events for the GitHub app + * @example [ + * "label", + * "deployment" + * ] + */ + events: string[]; + /** + * @description The number of installations associated with the GitHub app + * @example 5 + */ + installations_count?: number; + /** @example "Iv1.25b5d1e65ffc4022" */ + client_id?: string; + /** @example "1d4b2097ac622ba702d19de498f005747a8b21d3" */ + client_secret?: string; + /** @example "6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b" */ + webhook_secret?: string | null; + /** @example "-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\n-----END RSA PRIVATE KEY-----\n" */ + pem?: string; + } | null; + /** + * author_association + * @description How the author is associated with the repository. + * @example OWNER + * @enum {string} + */ + "author-association": + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** Reaction Rollup */ + "reaction-rollup": { + /** Format: uri */ + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + eyes: number; + rocket: number; + }; + /** + * Issue + * @description Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. + */ + issue: { + /** Format: int64 */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue + * @example https://api.github.com/repositories/42/issues/1 + */ + url: string; + /** Format: uri */ + repository_url: string; + labels_url: string; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** + * @description Number uniquely identifying the issue within its repository + * @example 42 + */ + number: number; + /** + * @description State of the issue; either 'open' or 'closed' + * @example open + */ + state: string; + /** + * @description The reason for the current state + * @example not_planned + * @enum {string|null} + */ + state_reason?: "completed" | "reopened" | "not_planned" | null; + /** + * @description Title of the issue + * @example Widget creation fails in Safari on OS X 10.8 + */ + title: string; + /** + * @description Contents of the issue + * @example It looks like the new widget form is broken on Safari. When I try and create the widget, Safari crashes. This is reproducible on 10.8, but not 10.9. Maybe a browser bug? + */ + body?: string | null; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository + * @example [ + * "bug", + * "registration" + * ] + */ + labels: OneOf< + [ + string, + { + /** Format: int64 */ + id?: number; + node_id?: string; + /** Format: uri */ + url?: string; + name?: string; + description?: string | null; + color?: string | null; + default?: boolean; + }, + ] + >[]; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + milestone: components["schemas"]["nullable-milestone"]; + locked: boolean; + active_lock_reason?: string | null; + comments: number; + pull_request?: { + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + diff_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + patch_url: string | null; + /** Format: uri */ + url: string | null; + }; + /** Format: date-time */ + closed_at: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + draft?: boolean; + closed_by?: components["schemas"]["nullable-simple-user"]; + body_html?: string; + body_text?: string; + /** Format: uri */ + timeline_url?: string; + repository?: components["schemas"]["repository"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + author_association: components["schemas"]["author-association"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Issue Comment + * @description Comments provide a way for people to collaborate on an issue. + */ + "issue-comment": { + /** + * Format: int64 + * @description Unique identifier of the issue comment + * @example 42 + */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue comment + * @example https://api.github.com/repositories/42/issues/comments/1 + */ + url: string; + /** + * @description Contents of the issue comment + * @example What version of Safari were you using when you observed this bug? + */ + body?: string; + body_text?: string; + body_html?: string; + /** Format: uri */ + html_url: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** Format: uri */ + issue_url: string; + author_association: components["schemas"]["author-association"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Event + * @description Event + */ + event: { + id: string; + type: string | null; + actor: components["schemas"]["actor"]; + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + org?: components["schemas"]["actor"]; + payload: { + action?: string; + issue?: components["schemas"]["issue"]; + comment?: components["schemas"]["issue-comment"]; + pages?: { + page_name?: string; + title?: string; + summary?: string | null; + action?: string; + sha?: string; + html_url?: string; + }[]; + }; + public: boolean; + /** Format: date-time */ + created_at: string | null; + }; + /** + * Link With Type + * @description Hypermedia Link with Type + */ + "link-with-type": { + href: string; + type: string; + }; + /** + * Feed + * @description Feed + */ + feed: { + /** @example https://github.com/timeline */ + timeline_url: string; + /** @example https://github.com/{user} */ + user_url: string; + /** @example https://github.com/octocat */ + current_user_public_url?: string; + /** @example https://github.com/octocat.private?token=abc123 */ + current_user_url?: string; + /** @example https://github.com/octocat.private.actor?token=abc123 */ + current_user_actor_url?: string; + /** @example https://github.com/octocat-org */ + current_user_organization_url?: string; + /** + * @example [ + * "https://github.com/organizations/github/octocat.private.atom?token=abc123" + * ] + */ + current_user_organization_urls?: string[]; + /** @example https://github.com/security-advisories */ + security_advisories_url?: string; + /** + * @description A feed of discussions for a given repository. + * @example https://github.com/{user}/{repo}/discussions + */ + repository_discussions_url?: string; + /** + * @description A feed of discussions for a given repository and category. + * @example https://github.com/{user}/{repo}/discussions/categories/{category} + */ + repository_discussions_category_url?: string; + _links: { + timeline: components["schemas"]["link-with-type"]; + user: components["schemas"]["link-with-type"]; + security_advisories?: components["schemas"]["link-with-type"]; + current_user?: components["schemas"]["link-with-type"]; + current_user_public?: components["schemas"]["link-with-type"]; + current_user_actor?: components["schemas"]["link-with-type"]; + current_user_organization?: components["schemas"]["link-with-type"]; + current_user_organizations?: components["schemas"]["link-with-type"][]; + repository_discussions?: components["schemas"]["link-with-type"]; + repository_discussions_category?: components["schemas"]["link-with-type"]; + }; + }; + /** + * Base Gist + * @description Base Gist + */ + "base-gist": { + /** Format: uri */ + url: string; + /** Format: uri */ + forks_url: string; + /** Format: uri */ + commits_url: string; + id: string; + node_id: string; + /** Format: uri */ + git_pull_url: string; + /** Format: uri */ + git_push_url: string; + /** Format: uri */ + html_url: string; + files: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + }; + }; + public: boolean; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + description: string | null; + comments: number; + user: components["schemas"]["nullable-simple-user"]; + /** Format: uri */ + comments_url: string; + owner?: components["schemas"]["simple-user"]; + truncated?: boolean; + forks?: unknown[]; + history?: unknown[]; + }; + /** + * Public User + * @description Public User + */ + "public-user": { + login: string; + id: number; + node_id: string; + /** Format: uri */ + avatar_url: string; + gravatar_id: string | null; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + repos_url: string; + events_url: string; + /** Format: uri */ + received_events_url: string; + type: string; + site_admin: boolean; + name: string | null; + company: string | null; + blog: string | null; + location: string | null; + /** Format: email */ + email: string | null; + hireable: boolean | null; + bio: string | null; + twitter_username?: string | null; + public_repos: number; + public_gists: number; + followers: number; + following: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + plan?: { + collaborators: number; + name: string; + space: number; + private_repos: number; + }; + /** Format: date-time */ + suspended_at?: string | null; + /** @example 1 */ + private_gists?: number; + /** @example 2 */ + total_private_repos?: number; + /** @example 2 */ + owned_private_repos?: number; + /** @example 1 */ + disk_usage?: number; + /** @example 3 */ + collaborators?: number; + }; + /** + * Gist History + * @description Gist History + */ + "gist-history": { + user?: components["schemas"]["nullable-simple-user"]; + version?: string; + /** Format: date-time */ + committed_at?: string; + change_status?: { + total?: number; + additions?: number; + deletions?: number; + }; + /** Format: uri */ + url?: string; + }; + /** + * Gist Simple + * @description Gist Simple + */ + "gist-simple": { + /** @deprecated */ + forks?: + | { + id?: string; + /** Format: uri */ + url?: string; + user?: components["schemas"]["public-user"]; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + updated_at?: string; + }[] + | null; + /** @deprecated */ + history?: components["schemas"]["gist-history"][] | null; + /** + * Gist + * @description Gist + */ + fork_of?: { + /** Format: uri */ + url: string; + /** Format: uri */ + forks_url: string; + /** Format: uri */ + commits_url: string; + id: string; + node_id: string; + /** Format: uri */ + git_pull_url: string; + /** Format: uri */ + git_push_url: string; + /** Format: uri */ + html_url: string; + files: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + }; + }; + public: boolean; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + description: string | null; + comments: number; + user: components["schemas"]["nullable-simple-user"]; + /** Format: uri */ + comments_url: string; + owner?: components["schemas"]["nullable-simple-user"]; + truncated?: boolean; + forks?: unknown[]; + history?: unknown[]; + } | null; + url?: string; + forks_url?: string; + commits_url?: string; + id?: string; + node_id?: string; + git_pull_url?: string; + git_push_url?: string; + html_url?: string; + files?: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + truncated?: boolean; + content?: string; + } | null; + }; + public?: boolean; + created_at?: string; + updated_at?: string; + description?: string | null; + comments?: number; + user?: string | null; + comments_url?: string; + owner?: components["schemas"]["simple-user"]; + truncated?: boolean; + }; + /** + * Gist Comment + * @description A comment made to a gist. + */ + "gist-comment": { + /** @example 1 */ + id: number; + /** @example MDExOkdpc3RDb21tZW50MQ== */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/gists/a6db0bec360bb87e9418/comments/1 + */ + url: string; + /** + * @description The comment text. + * @example Body of the attachment + */ + body: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2011-04-18T23:23:56Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-18T23:23:56Z + */ + updated_at: string; + author_association: components["schemas"]["author-association"]; + }; + /** + * Gist Commit + * @description Gist Commit + */ + "gist-commit": { + /** + * Format: uri + * @example https://api.github.com/gists/aa5a315d61ae9438b18d/57a7f021a713b1c5a6a199b54cc514735d2d462f + */ + url: string; + /** @example 57a7f021a713b1c5a6a199b54cc514735d2d462f */ + version: string; + user: components["schemas"]["nullable-simple-user"]; + change_status: { + total?: number; + additions?: number; + deletions?: number; + }; + /** + * Format: date-time + * @example 2010-04-14T02:15:15Z + */ + committed_at: string; + }; + /** + * Gitignore Template + * @description Gitignore Template + */ + "gitignore-template": { + /** @example C */ + name: string; + /** + * @example # Object files + * *.o + * + * # Libraries + * *.lib + * *.a + * + * # Shared objects (inc. Windows DLLs) + * *.dll + * *.so + * *.so.* + * *.dylib + * + * # Executables + * *.exe + * *.out + * *.app + */ + source: string; + }; + /** + * License Simple + * @description License Simple + */ + "license-simple": { + /** @example mit */ + key: string; + /** @example MIT License */ + name: string; + /** + * Format: uri + * @example https://api.github.com/licenses/mit + */ + url: string | null; + /** @example MIT */ + spdx_id: string | null; + /** @example MDc6TGljZW5zZW1pdA== */ + node_id: string; + /** Format: uri */ + html_url?: string; + }; + /** + * License + * @description License + */ + license: { + /** @example mit */ + key: string; + /** @example MIT License */ + name: string; + /** @example MIT */ + spdx_id: string | null; + /** + * Format: uri + * @example https://api.github.com/licenses/mit + */ + url: string | null; + /** @example MDc6TGljZW5zZW1pdA== */ + node_id: string; + /** + * Format: uri + * @example http://choosealicense.com/licenses/mit/ + */ + html_url: string; + /** @example A permissive license that is short and to the point. It lets people do anything with your code with proper attribution and without warranty. */ + description: string; + /** @example Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. Replace [year] with the current year and [fullname] with the name (or names) of the copyright holders. */ + implementation: string; + /** + * @example [ + * "commercial-use", + * "modifications", + * "distribution", + * "sublicense", + * "private-use" + * ] + */ + permissions: string[]; + /** + * @example [ + * "include-copyright" + * ] + */ + conditions: string[]; + /** + * @example [ + * "no-liability" + * ] + */ + limitations: string[]; + /** + * @example + * + * The MIT License (MIT) + * + * Copyright (c) [year] [fullname] + * + * 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: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * 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. + */ + body: string; + /** @example true */ + featured: boolean; + }; + /** + * Marketplace Listing Plan + * @description Marketplace Listing Plan + */ + "marketplace-listing-plan": { + /** + * Format: uri + * @example https://api.github.com/marketplace_listing/plans/1313 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/marketplace_listing/plans/1313/accounts + */ + accounts_url: string; + /** @example 1313 */ + id: number; + /** @example 3 */ + number: number; + /** @example Pro */ + name: string; + /** @example A professional-grade CI solution */ + description: string; + /** @example 1099 */ + monthly_price_in_cents: number; + /** @example 11870 */ + yearly_price_in_cents: number; + /** + * @example FLAT_RATE + * @enum {string} + */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + /** @example true */ + has_free_trial: boolean; + unit_name: string | null; + /** @example published */ + state: string; + /** + * @example [ + * "Up to 25 private repositories", + * "11 concurrent builds" + * ] + */ + bullets: string[]; + }; + /** + * Marketplace Purchase + * @description Marketplace Purchase + */ + "marketplace-purchase": { + url: string; + type: string; + id: number; + login: string; + organization_billing_email?: string; + email?: string | null; + marketplace_pending_change?: { + is_installed?: boolean; + effective_date?: string; + unit_count?: number | null; + id?: number; + plan?: components["schemas"]["marketplace-listing-plan"]; + } | null; + marketplace_purchase: { + billing_cycle?: string; + next_billing_date?: string | null; + is_installed?: boolean; + unit_count?: number | null; + on_free_trial?: boolean; + free_trial_ends_on?: string | null; + updated_at?: string; + plan?: components["schemas"]["marketplace-listing-plan"]; + }; + }; + /** + * Api Overview + * @description Api Overview + */ + "api-overview": { + /** @example true */ + verifiable_password_authentication: boolean; + ssh_key_fingerprints?: { + SHA256_RSA?: string; + SHA256_DSA?: string; + SHA256_ECDSA?: string; + SHA256_ED25519?: string; + }; + /** + * @example [ + * "ssh-ed25519 ABCDEFGHIJKLMNOPQRSTUVWXYZ" + * ] + */ + ssh_keys?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + hooks?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + github_enterprise_importer?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + web?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + api?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + git?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + packages?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + pages?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + importer?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + actions?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + dependabot?: string[]; + domains?: { + website?: string[]; + codespaces?: string[]; + copilot?: string[]; + packages?: string[]; + actions?: string[]; + }; + }; + "security-and-analysis": { + advanced_security?: { + /** @enum {string} */ + status?: "enabled" | "disabled"; + }; + /** @description Enable or disable Dependabot security updates for the repository. */ + dependabot_security_updates?: { + /** + * @description The enablement status of Dependabot security updates for the repository. + * @enum {string} + */ + status?: "enabled" | "disabled"; + }; + secret_scanning?: { + /** @enum {string} */ + status?: "enabled" | "disabled"; + }; + secret_scanning_push_protection?: { + /** @enum {string} */ + status?: "enabled" | "disabled"; + }; + } | null; + /** + * Minimal Repository + * @description Minimal Repository + */ + "minimal-repository": { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** @example Hello-World */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + owner: components["schemas"]["simple-user"]; + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + git_url?: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + ssh_url?: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + clone_url?: string; + mirror_url?: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + svn_url?: string; + homepage?: string | null; + language?: string | null; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + /** @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. */ + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + has_discussions?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at?: string | null; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + /** @example admin */ + role_name?: string; + temp_clone_token?: string; + delete_branch_on_merge?: boolean; + subscribers_count?: number; + network_count?: number; + code_of_conduct?: components["schemas"]["code-of-conduct"]; + license?: { + key?: string; + name?: string; + spdx_id?: string; + url?: string; + node_id?: string; + } | null; + /** @example 0 */ + forks?: number; + /** @example 0 */ + open_issues?: number; + /** @example 0 */ + watchers?: number; + allow_forking?: boolean; + /** @example false */ + web_commit_signoff_required?: boolean; + security_and_analysis?: components["schemas"]["security-and-analysis"]; + }; + /** + * Thread + * @description Thread + */ + thread: { + id: string; + repository: components["schemas"]["minimal-repository"]; + subject: { + title: string; + url: string; + latest_comment_url: string; + type: string; + }; + reason: string; + unread: boolean; + updated_at: string; + last_read_at: string | null; + url: string; + /** @example https://api.github.com/notifications/threads/2/subscription */ + subscription_url: string; + }; + /** + * Thread Subscription + * @description Thread Subscription + */ + "thread-subscription": { + /** @example true */ + subscribed: boolean; + ignored: boolean; + reason: string | null; + /** + * Format: date-time + * @example 2012-10-06T21:34:12Z + */ + created_at: string | null; + /** + * Format: uri + * @example https://api.github.com/notifications/threads/1/subscription + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/notifications/threads/1 + */ + thread_url?: string; + /** + * Format: uri + * @example https://api.github.com/repos/1 + */ + repository_url?: string; + }; + /** + * Organization Simple + * @description A GitHub organization. + */ + "organization-simple": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + }; + /** + * Organization Full + * @description Organization Full + */ + "organization-full": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + /** @example github */ + name?: string; + /** @example GitHub */ + company?: string; + /** + * Format: uri + * @example https://github.com/blog + */ + blog?: string; + /** @example San Francisco */ + location?: string; + /** + * Format: email + * @example octocat@github.com + */ + email?: string; + /** @example github */ + twitter_username?: string | null; + /** @example true */ + is_verified?: boolean; + /** @example true */ + has_organization_projects: boolean; + /** @example true */ + has_repository_projects: boolean; + /** @example 2 */ + public_repos: number; + /** @example 1 */ + public_gists: number; + /** @example 20 */ + followers: number; + /** @example 0 */ + following: number; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** @example Organization */ + type: string; + /** @example 100 */ + total_private_repos?: number; + /** @example 100 */ + owned_private_repos?: number; + /** @example 81 */ + private_gists?: number | null; + /** @example 10000 */ + disk_usage?: number | null; + /** @example 8 */ + collaborators?: number | null; + /** + * Format: email + * @example org@example.com + */ + billing_email?: string | null; + plan?: { + name: string; + space: number; + private_repos: number; + filled_seats?: number; + seats?: number; + }; + default_repository_permission?: string | null; + /** @example true */ + members_can_create_repositories?: boolean | null; + /** @example true */ + two_factor_requirement_enabled?: boolean | null; + /** @example all */ + members_allowed_repository_creation_type?: string; + /** @example true */ + members_can_create_public_repositories?: boolean; + /** @example true */ + members_can_create_private_repositories?: boolean; + /** @example true */ + members_can_create_internal_repositories?: boolean; + /** @example true */ + members_can_create_pages?: boolean; + /** @example true */ + members_can_create_public_pages?: boolean; + /** @example true */ + members_can_create_private_pages?: boolean; + /** @example false */ + members_can_fork_private_repositories?: boolean | null; + /** @example false */ + web_commit_signoff_required?: boolean; + /** + * @description Whether GitHub Advanced Security is enabled for new repositories and repositories transferred to this organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + advanced_security_enabled_for_new_repositories?: boolean; + /** + * @description Whether GitHub Advanced Security is automatically enabled for new repositories and repositories transferred to + * this organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + dependabot_alerts_enabled_for_new_repositories?: boolean; + /** + * @description Whether dependabot security updates are automatically enabled for new repositories and repositories transferred + * to this organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + dependabot_security_updates_enabled_for_new_repositories?: boolean; + /** + * @description Whether dependency graph is automatically enabled for new repositories and repositories transferred to this + * organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + dependency_graph_enabled_for_new_repositories?: boolean; + /** + * @description Whether secret scanning is automatically enabled for new repositories and repositories transferred to this + * organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + secret_scanning_enabled_for_new_repositories?: boolean; + /** + * @description Whether secret scanning push protection is automatically enabled for new repositories and repositories + * transferred to this organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + secret_scanning_push_protection_enabled_for_new_repositories?: boolean; + /** + * @description Whether a custom link is shown to contributors who are blocked from pushing a secret by push protection. + * @example false + */ + secret_scanning_push_protection_custom_link_enabled?: boolean; + /** + * @description An optional URL string to display to contributors who are blocked from pushing a secret. + * @example https://github.com/test-org/test-repo/blob/main/README.md + */ + secret_scanning_push_protection_custom_link?: string | null; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + archived_at: string | null; + }; + "actions-cache-usage-org-enterprise": { + /** @description The count of active caches across all repositories of an enterprise or an organization. */ + total_active_caches_count: number; + /** @description The total size in bytes of all active cache items across all repositories of an enterprise or an organization. */ + total_active_caches_size_in_bytes: number; + }; + /** + * Actions Cache Usage by repository + * @description GitHub Actions Cache Usage by repository. + */ + "actions-cache-usage-by-repository": { + /** + * @description The repository owner and name for the cache usage being shown. + * @example octo-org/Hello-World + */ + full_name: string; + /** + * @description The sum of the size in bytes of all the active cache items in the repository. + * @example 2322142 + */ + active_caches_size_in_bytes: number; + /** + * @description The number of active caches in the repository. + * @example 3 + */ + active_caches_count: number; + }; + /** + * Actions OIDC Subject customization + * @description Actions OIDC Subject customization + */ + "oidc-custom-sub": { + /** @description Array of unique strings. Each claim key can only contain alphanumeric characters and underscores. */ + include_claim_keys: string[]; + }; + /** + * Empty Object + * @description An object without any properties. + */ + "empty-object": Record; + /** + * @description The policy that controls the repositories in the organization that are allowed to run GitHub Actions. + * @enum {string} + */ + "enabled-repositories": "all" | "none" | "selected"; + /** + * @description The permissions policy that controls the actions and reusable workflows that are allowed to run. + * @enum {string} + */ + "allowed-actions": "all" | "local_only" | "selected"; + /** @description The API URL to use to get or set the actions and reusable workflows that are allowed to run, when `allowed_actions` is set to `selected`. */ + "selected-actions-url": string; + "actions-organization-permissions": { + enabled_repositories: components["schemas"]["enabled-repositories"]; + /** @description The API URL to use to get or set the selected repositories that are allowed to run GitHub Actions, when `enabled_repositories` is set to `selected`. */ + selected_repositories_url?: string; + allowed_actions?: components["schemas"]["allowed-actions"]; + selected_actions_url?: components["schemas"]["selected-actions-url"]; + }; + "selected-actions": { + /** @description Whether GitHub-owned actions are allowed. For example, this includes the actions in the `actions` organization. */ + github_owned_allowed?: boolean; + /** @description Whether actions from GitHub Marketplace verified creators are allowed. Set to `true` to allow all actions by GitHub Marketplace verified creators. */ + verified_allowed?: boolean; + /** + * @description Specifies a list of string-matching patterns to allow specific action(s) and reusable workflow(s). Wildcards, tags, and SHAs are allowed. For example, `monalisa/octocat@*`, `monalisa/octocat@v2`, `monalisa/*`. + * + * **Note**: The `patterns_allowed` setting only applies to public repositories. + */ + patterns_allowed?: string[]; + }; + /** + * @description The default workflow permissions granted to the GITHUB_TOKEN when running workflows. + * @enum {string} + */ + "actions-default-workflow-permissions": "read" | "write"; + /** @description Whether GitHub Actions can approve pull requests. Enabling this can be a security risk. */ + "actions-can-approve-pull-request-reviews": boolean; + "actions-get-default-workflow-permissions": { + default_workflow_permissions: components["schemas"]["actions-default-workflow-permissions"]; + can_approve_pull_request_reviews: components["schemas"]["actions-can-approve-pull-request-reviews"]; + }; + "actions-set-default-workflow-permissions": { + default_workflow_permissions?: components["schemas"]["actions-default-workflow-permissions"]; + can_approve_pull_request_reviews?: components["schemas"]["actions-can-approve-pull-request-reviews"]; + }; + /** + * Self hosted runner label + * @description A label for a self hosted runner + */ + "runner-label": { + /** @description Unique identifier of the label. */ + id?: number; + /** @description Name of the label. */ + name: string; + /** + * @description The type of label. Read-only labels are applied automatically when the runner is configured. + * @enum {string} + */ + type?: "read-only" | "custom"; + }; + /** + * Self hosted runners + * @description A self hosted runner + */ + runner: { + /** + * @description The id of the runner. + * @example 5 + */ + id: number; + /** + * @description The id of the runner group. + * @example 1 + */ + runner_group_id?: number; + /** + * @description The name of the runner. + * @example iMac + */ + name: string; + /** + * @description The Operating System of the runner. + * @example macos + */ + os: string; + /** + * @description The status of the runner. + * @example online + */ + status: string; + busy: boolean; + labels: components["schemas"]["runner-label"][]; + }; + /** + * Runner Application + * @description Runner Application + */ + "runner-application": { + os: string; + architecture: string; + download_url: string; + filename: string; + /** @description A short lived bearer token used to download the runner, if needed. */ + temp_download_token?: string; + sha256_checksum?: string; + }; + /** + * Authentication Token + * @description Authentication Token + */ + "authentication-token": { + /** + * @description The token used for authentication + * @example v1.1f699f1069f60xxx + */ + token: string; + /** + * Format: date-time + * @description The time this token expires + * @example 2016-07-11T22:14:10Z + */ + expires_at: string; + /** + * @example { + * "issues": "read", + * "deployments": "write" + * } + */ + permissions?: Record; + /** @description The repositories this token has access to */ + repositories?: components["schemas"]["repository"][]; + /** @example config.yaml */ + single_file?: string | null; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection?: "all" | "selected"; + }; + /** + * Actions Secret for an Organization + * @description Secrets for GitHub Actions for an organization. + */ + "organization-actions-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** + * @description Visibility of a secret + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @example https://api.github.com/organizations/org/secrets/my_secret/repositories + */ + selected_repositories_url?: string; + }; + /** + * ActionsPublicKey + * @description The public key used for setting Actions Secrets. + */ + "actions-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + /** @example 2 */ + id?: number; + /** @example https://api.github.com/user/keys/2 */ + url?: string; + /** @example ssh-rsa AAAAB3NzaC1yc2EAAA */ + title?: string; + /** @example 2011-01-26T19:01:12Z */ + created_at?: string; + }; + /** + * Actions Variable for an Organization + * @description Organization variable for GitHub Actions. + */ + "organization-actions-variable": { + /** + * @description The name of the variable. + * @example USERNAME + */ + name: string; + /** + * @description The value of the variable. + * @example octocat + */ + value: string; + /** + * Format: date-time + * @description The date and time at which the variable was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + * @example 2019-01-24T22:45:36.000Z + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the variable was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + * @example 2019-01-24T22:45:36.000Z + */ + updated_at: string; + /** + * @description Visibility of a variable + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @example https://api.github.com/organizations/org/variables/USERNAME/repositories + */ + selected_repositories_url?: string; + }; + /** @description The name of the tool used to generate the code scanning analysis. */ + "code-scanning-analysis-tool-name": string; + /** @description The GUID of the tool used to generate the code scanning analysis, if provided in the uploaded SARIF data. */ + "code-scanning-analysis-tool-guid": string | null; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + "code-scanning-alert-state-query": + | "open" + | "closed" + | "dismissed" + | "fixed"; + /** + * @description Severity of a code scanning alert. + * @enum {string} + */ + "code-scanning-alert-severity": + | "critical" + | "high" + | "medium" + | "low" + | "warning" + | "note" + | "error"; + /** + * Format: uri + * @description The REST API URL for fetching the list of instances for an alert. + */ + readonly "alert-instances-url": string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + "code-scanning-alert-state": "open" | "dismissed" | "fixed"; + /** + * @description **Required when the state is dismissed.** The reason for dismissing or closing the alert. + * @enum {string|null} + */ + "code-scanning-alert-dismissed-reason": + | null + | "false positive" + | "won't fix" + | "used in tests"; + /** @description The dismissal comment associated with the dismissal of the alert. */ + "code-scanning-alert-dismissed-comment": string | null; + "code-scanning-alert-rule-summary": { + /** @description A unique identifier for the rule used to detect the alert. */ + id?: string | null; + /** @description The name of the rule used to detect the alert. */ + name?: string; + /** @description A set of tags applicable for the rule. */ + tags?: string[] | null; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity?: "none" | "note" | "warning" | "error" | null; + /** + * @description The security severity of the alert. + * @enum {string|null} + */ + security_severity_level?: "low" | "medium" | "high" | "critical" | null; + /** @description A short description of the rule used to detect the alert. */ + description?: string; + }; + /** @description The version of the tool used to generate the code scanning analysis. */ + "code-scanning-analysis-tool-version": string | null; + "code-scanning-analysis-tool": { + name?: components["schemas"]["code-scanning-analysis-tool-name"]; + version?: components["schemas"]["code-scanning-analysis-tool-version"]; + guid?: components["schemas"]["code-scanning-analysis-tool-guid"]; + }; + /** + * @description The Git reference, formatted as `refs/pull//merge`, `refs/pull//head`, + * `refs/heads/` or simply ``. + */ + "code-scanning-ref": string; + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + "code-scanning-analysis-analysis-key": string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + "code-scanning-alert-environment": string; + /** @description Identifies the configuration under which the analysis was executed. Used to distinguish between multiple analyses for the same tool and commit, but performed on different languages or different parts of the code. */ + "code-scanning-analysis-category": string; + /** @description Describe a region within a file for the alert. */ + "code-scanning-alert-location": { + path?: string; + start_line?: number; + end_line?: number; + start_column?: number; + end_column?: number; + }; + /** + * @description A classification of the file. For example to identify it as generated. + * @enum {string|null} + */ + "code-scanning-alert-classification": + | "source" + | "generated" + | "test" + | "library" + | null; + "code-scanning-alert-instance": { + ref?: components["schemas"]["code-scanning-ref"]; + analysis_key?: components["schemas"]["code-scanning-analysis-analysis-key"]; + environment?: components["schemas"]["code-scanning-alert-environment"]; + category?: components["schemas"]["code-scanning-analysis-category"]; + state?: components["schemas"]["code-scanning-alert-state"]; + commit_sha?: string; + message?: { + text?: string; + }; + location?: components["schemas"]["code-scanning-alert-location"]; + html_url?: string; + /** + * @description Classifications that have been applied to the file that triggered the alert. + * For example identifying it as documentation, or a generated file. + */ + classifications?: components["schemas"]["code-scanning-alert-classification"][]; + }; + "code-scanning-organization-alert-items": { + number: components["schemas"]["alert-number"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["alert-updated-at"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + instances_url: components["schemas"]["alert-instances-url"]; + state: components["schemas"]["code-scanning-alert-state"]; + fixed_at?: components["schemas"]["alert-fixed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_reason: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + rule: components["schemas"]["code-scanning-alert-rule-summary"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + most_recent_instance: components["schemas"]["code-scanning-alert-instance"]; + repository: components["schemas"]["simple-repository"]; + }; + /** + * Codespace machine + * @description A description of the machine powering a codespace. + */ + "nullable-codespace-machine": { + /** + * @description The name of the machine. + * @example standardLinux + */ + name: string; + /** + * @description The display name of the machine includes cores, memory, and storage. + * @example 4 cores, 16 GB RAM, 64 GB storage + */ + display_name: string; + /** + * @description The operating system of the machine. + * @example linux + */ + operating_system: string; + /** + * @description How much storage is available to the codespace. + * @example 68719476736 + */ + storage_in_bytes: number; + /** + * @description How much memory is available to the codespace. + * @example 17179869184 + */ + memory_in_bytes: number; + /** + * @description How many cores are available to the codespace. + * @example 4 + */ + cpus: number; + /** + * @description Whether a prebuild is currently available when creating a codespace for this machine and repository. If a branch was not specified as a ref, the default branch will be assumed. Value will be "null" if prebuilds are not supported or prebuild availability could not be determined. Value will be "none" if no prebuild is available. Latest values "ready" and "in_progress" indicate the prebuild availability status. + * @example ready + * @enum {string|null} + */ + prebuild_availability: "none" | "ready" | "in_progress" | null; + } | null; + /** + * Codespace + * @description A codespace. + */ + codespace: { + /** @example 1 */ + id: number; + /** + * @description Automatically generated name of this codespace. + * @example monalisa-octocat-hello-world-g4wpq6h95q + */ + name: string; + /** + * @description Display name for this codespace. + * @example bookish space pancake + */ + display_name?: string | null; + /** + * @description UUID identifying this codespace's environment. + * @example 26a7c758-7299-4a73-b978-5a92a7ae98a0 + */ + environment_id: string | null; + owner: components["schemas"]["simple-user"]; + billable_owner: components["schemas"]["simple-user"]; + repository: components["schemas"]["minimal-repository"]; + machine: components["schemas"]["nullable-codespace-machine"]; + /** + * @description Path to devcontainer.json from repo root used to create Codespace. + * @example .devcontainer/example/devcontainer.json + */ + devcontainer_path?: string | null; + /** + * @description Whether the codespace was created from a prebuild. + * @example false + */ + prebuild: boolean | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @description Last known time this codespace was started. + * @example 2011-01-26T19:01:12Z + */ + last_used_at: string; + /** + * @description State of this codespace. + * @example Available + * @enum {string} + */ + state: + | "Unknown" + | "Created" + | "Queued" + | "Provisioning" + | "Available" + | "Awaiting" + | "Unavailable" + | "Deleted" + | "Moved" + | "Shutdown" + | "Archived" + | "Starting" + | "ShuttingDown" + | "Failed" + | "Exporting" + | "Updating" + | "Rebuilding"; + /** + * Format: uri + * @description API URL for this codespace. + */ + url: string; + /** @description Details about the codespace's git repository. */ + git_status: { + /** + * @description The number of commits the local repository is ahead of the remote. + * @example 0 + */ + ahead?: number; + /** + * @description The number of commits the local repository is behind the remote. + * @example 0 + */ + behind?: number; + /** @description Whether the local repository has unpushed changes. */ + has_unpushed_changes?: boolean; + /** @description Whether the local repository has uncommitted changes. */ + has_uncommitted_changes?: boolean; + /** + * @description The current branch (or SHA if in detached HEAD state) of the local repository. + * @example main + */ + ref?: string; + }; + /** + * @description The initally assigned location of a new codespace. + * @example WestUs2 + * @enum {string} + */ + location: "EastUs" | "SouthEastAsia" | "WestEurope" | "WestUs2"; + /** + * @description The number of minutes of inactivity after which this codespace will be automatically stopped. + * @example 60 + */ + idle_timeout_minutes: number | null; + /** + * Format: uri + * @description URL to access this codespace on the web. + */ + web_url: string; + /** + * Format: uri + * @description API URL to access available alternate machine types for this codespace. + */ + machines_url: string; + /** + * Format: uri + * @description API URL to start this codespace. + */ + start_url: string; + /** + * Format: uri + * @description API URL to stop this codespace. + */ + stop_url: string; + /** + * Format: uri + * @description API URL to publish this codespace to a new repository. + */ + publish_url?: string | null; + /** + * Format: uri + * @description API URL for the Pull Request associated with this codespace, if any. + */ + pulls_url: string | null; + recent_folders: string[]; + runtime_constraints?: { + /** @description The privacy settings a user can select from when forwarding a port. */ + allowed_port_privacy_settings?: string[] | null; + }; + /** @description Whether or not a codespace has a pending async operation. This would mean that the codespace is temporarily unavailable. The only thing that you can do with a codespace in this state is delete it. */ + pending_operation?: boolean | null; + /** @description Text to show user when codespace is disabled by a pending operation */ + pending_operation_disabled_reason?: string | null; + /** @description Text to show user when codespace idle timeout minutes has been overriden by an organization policy */ + idle_timeout_notice?: string | null; + /** + * @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). + * @example 60 + */ + retention_period_minutes?: number | null; + /** + * Format: date-time + * @description When a codespace will be auto-deleted based on the "retention_period_minutes" and "last_used_at" + * @example 2011-01-26T20:01:12Z + */ + retention_expires_at?: string | null; + /** + * @description The text to display to a user when a codespace has been stopped for a potentially actionable reason. + * @example you've used 100% of your spending limit for Codespaces + */ + last_known_stop_notice?: string | null; + }; + /** + * Codespaces Secret + * @description Secrets for a GitHub Codespace. + */ + "codespaces-org-secret": { + /** + * @description The name of the secret + * @example SECRET_NAME + */ + name: string; + /** + * Format: date-time + * @description The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + updated_at: string; + /** + * @description The type of repositories in the organization that the secret is visible to + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @description The API URL at which the list of repositories this secret is visible to can be retrieved + * @example https://api.github.com/orgs/ORGANIZATION/codespaces/secrets/SECRET_NAME/repositories + */ + selected_repositories_url?: string; + }; + /** + * CodespacesPublicKey + * @description The public key used for setting Codespaces secrets. + */ + "codespaces-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + /** @example 2 */ + id?: number; + /** @example https://api.github.com/user/keys/2 */ + url?: string; + /** @example ssh-rsa AAAAB3NzaC1yc2EAAA */ + title?: string; + /** @example 2011-01-26T19:01:12Z */ + created_at?: string; + }; + /** + * Copilot Business Seat Breakdown + * @description The breakdown of Copilot Business seats for the organization. + */ + "copilot-seat-breakdown": { + /** @description The total number of seats being billed for the organization as of the current billing cycle. */ + total?: number; + /** @description Seats added during the current billing cycle. */ + added_this_cycle?: number; + /** @description The number of seats that are pending cancellation at the end of the current billing cycle. */ + pending_cancellation?: number; + /** @description The number of seats that have been assigned to users that have not yet accepted an invitation to this organization. */ + pending_invitation?: number; + /** @description The number of seats that have used Copilot during the current billing cycle. */ + active_this_cycle?: number; + /** @description The number of seats that have not used Copilot during the current billing cycle. */ + inactive_this_cycle?: number; + }; + /** + * Copilot Business Organization Details + * @description Information about the seat breakdown and policies set for an organization with a Copilot Business subscription. + */ + "copilot-organization-details": { + seat_breakdown: components["schemas"]["copilot-seat-breakdown"]; + /** + * @description The organization policy for allowing or disallowing Copilot to make suggestions that match public code. + * @enum {string} + */ + public_code_suggestions: "allow" | "block" | "unconfigured" | "unknown"; + /** + * @description The organization policy for allowing or disallowing organization members to use Copilot Chat within their editor. + * @enum {string} + */ + ide_chat?: "enabled" | "disabled" | "unconfigured"; + /** + * @description The organization policy for allowing or disallowing organization members to use Copilot features within github.com. + * @enum {string} + */ + platform_chat?: "enabled" | "disabled" | "unconfigured"; + /** + * @description The organization policy for allowing or disallowing organization members to use Copilot within their CLI. + * @enum {string} + */ + cli?: "enabled" | "disabled" | "unconfigured"; + /** + * @description The mode of assigning new seats. + * @enum {string} + */ + seat_management_setting: + | "assign_all" + | "assign_selected" + | "disabled" + | "unconfigured"; + [key: string]: unknown; + }; + /** + * Team Simple + * @description Groups of organization members that gives permissions on specified repositories. + */ + "nullable-team-simple": { + /** + * @description Unique identifier of the team + * @example 1 + */ + id: number; + /** @example MDQ6VGVhbTE= */ + node_id: string; + /** + * Format: uri + * @description URL for the team + * @example https://api.github.com/organizations/1/team/1 + */ + url: string; + /** @example https://api.github.com/organizations/1/team/1/members{/member} */ + members_url: string; + /** + * @description Name of the team + * @example Justice League + */ + name: string; + /** + * @description Description of the team + * @example A great team. + */ + description: string | null; + /** + * @description Permission that the team will have for its repositories + * @example admin + */ + permission: string; + /** + * @description The level of privacy this team should have + * @example closed + */ + privacy?: string; + /** + * @description The notification setting the team has set + * @example notifications_enabled + */ + notification_setting?: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/1/repos + */ + repositories_url: string; + /** @example justice-league */ + slug: string; + /** + * @description Distinguished Name (DN) that team maps to within LDAP environment + * @example uid=example,ou=users,dc=github,dc=com + */ + ldap_dn?: string; + } | null; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + id: number; + node_id: string; + name: string; + slug: string; + description: string | null; + privacy?: string; + notification_setting?: string; + permission: string; + permissions?: { + pull: boolean; + triage: boolean; + push: boolean; + maintain: boolean; + admin: boolean; + }; + /** Format: uri */ + url: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + members_url: string; + /** Format: uri */ + repositories_url: string; + parent: components["schemas"]["nullable-team-simple"]; + }; + /** + * Organization + * @description GitHub account for managing multiple users, teams, and repositories + */ + organization: { + /** + * @description Unique login name of the organization + * @example new-org + */ + login: string; + /** + * Format: uri + * @description URL for the organization + * @example https://api.github.com/orgs/github + */ + url: string; + id: number; + node_id: string; + /** Format: uri */ + repos_url: string; + /** Format: uri */ + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string | null; + /** + * Format: uri + * @description Display blog url for the organization + * @example blog.example-org.com + */ + blog?: string; + /** Format: uri */ + html_url: string; + /** + * @description Display name for the organization + * @example New Org + */ + name?: string; + /** + * @description Display company name for the organization + * @example Acme corporation + */ + company?: string; + /** + * @description Display location for the organization + * @example Berlin, Germany + */ + location?: string; + /** + * Format: email + * @description Display email for the organization + * @example org@example.com + */ + email?: string; + /** @description Specifies if organization projects are enabled for this org */ + has_organization_projects: boolean; + /** @description Specifies if repository projects are enabled for repositories that belong to this org */ + has_repository_projects: boolean; + is_verified?: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + type: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + plan?: { + name?: string; + space?: number; + private_repos?: number; + filled_seats?: number; + seats?: number; + }; + }; + /** + * Copilot Business Seat Detail + * @description Information about a Copilot Business seat assignment for a user, team, or organization. + */ + "copilot-seat-details": { + /** @description The assignee that has been granted access to GitHub Copilot. */ + assignee: { + [key: string]: unknown; + } & ( + | components["schemas"]["simple-user"] + | components["schemas"]["team"] + | components["schemas"]["organization"] + ); + /** @description The team that granted access to GitHub Copilot to the assignee. This will be null if the user was assigned a seat individually. */ + assigning_team?: components["schemas"]["team"] | null; + /** + * Format: date + * @description The pending cancellation date for the seat, in `YYYY-MM-DD` format. This will be null unless the assignee's Copilot access has been canceled during the current billing cycle. If the seat has been cancelled, this corresponds to the start of the organization's next billing cycle. + */ + pending_cancellation_date?: string | null; + /** + * Format: date-time + * @description Timestamp of user's last GitHub Copilot activity, in ISO 8601 format. + */ + last_activity_at?: string | null; + /** @description Last editor that was used by the user for a GitHub Copilot completion. */ + last_activity_editor?: string | null; + /** + * Format: date-time + * @description Timestamp of when the assignee was last granted access to GitHub Copilot, in ISO 8601 format. + */ + created_at: string; + /** + * Format: date-time + * @description Timestamp of when the assignee's GitHub Copilot access was last updated, in ISO 8601 format. + */ + updated_at?: string; + }; + /** + * Dependabot Secret for an Organization + * @description Secrets for GitHub Dependabot for an organization. + */ + "organization-dependabot-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** + * @description Visibility of a secret + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @example https://api.github.com/organizations/org/dependabot/secrets/my_secret/repositories + */ + selected_repositories_url?: string; + }; + /** + * DependabotPublicKey + * @description The public key used for setting Dependabot Secrets. + */ + "dependabot-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + }; + /** + * Minimal Repository + * @description Minimal Repository + */ + "nullable-minimal-repository": { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** @example Hello-World */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + owner: components["schemas"]["simple-user"]; + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + git_url?: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + ssh_url?: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + clone_url?: string; + mirror_url?: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + svn_url?: string; + homepage?: string | null; + language?: string | null; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + /** @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. */ + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + has_discussions?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at?: string | null; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + /** @example admin */ + role_name?: string; + temp_clone_token?: string; + delete_branch_on_merge?: boolean; + subscribers_count?: number; + network_count?: number; + code_of_conduct?: components["schemas"]["code-of-conduct"]; + license?: { + key?: string; + name?: string; + spdx_id?: string; + url?: string; + node_id?: string; + } | null; + /** @example 0 */ + forks?: number; + /** @example 0 */ + open_issues?: number; + /** @example 0 */ + watchers?: number; + allow_forking?: boolean; + /** @example false */ + web_commit_signoff_required?: boolean; + security_and_analysis?: components["schemas"]["security-and-analysis"]; + } | null; + /** + * Package + * @description A software package + */ + package: { + /** + * @description Unique identifier of the package. + * @example 1 + */ + id: number; + /** + * @description The name of the package. + * @example super-linter + */ + name: string; + /** + * @example docker + * @enum {string} + */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** @example https://api.github.com/orgs/github/packages/container/super-linter */ + url: string; + /** @example https://github.com/orgs/github/packages/container/package/super-linter */ + html_url: string; + /** + * @description The number of versions of the package. + * @example 1 + */ + version_count: number; + /** + * @example private + * @enum {string} + */ + visibility: "private" | "public"; + owner?: components["schemas"]["nullable-simple-user"]; + repository?: components["schemas"]["nullable-minimal-repository"]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Organization Invitation + * @description Organization Invitation + */ + "organization-invitation": { + id: number; + login: string | null; + email: string | null; + role: string; + created_at: string; + failed_at?: string | null; + failed_reason?: string | null; + inviter: components["schemas"]["simple-user"]; + team_count: number; + /** @example "MDIyOk9yZ2FuaXphdGlvbkludml0YXRpb24x" */ + node_id: string; + /** @example "https://api.github.com/organizations/16/invitations/1/teams" */ + invitation_teams_url: string; + /** @example "member" */ + invitation_source?: string; + }; + /** + * Org Hook + * @description Org Hook + */ + "org-hook": { + /** @example 1 */ + id: number; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/hooks/1 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/hooks/1/pings + */ + ping_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/hooks/1/deliveries + */ + deliveries_url?: string; + /** @example web */ + name: string; + /** + * @example [ + * "push", + * "pull_request" + * ] + */ + events: string[]; + /** @example true */ + active: boolean; + config: { + /** @example "http://example.com/2" */ + url?: string; + /** @example "0" */ + insecure_ssl?: string; + /** @example "form" */ + content_type?: string; + /** @example "********" */ + secret?: string; + }; + /** + * Format: date-time + * @example 2011-09-06T20:39:23Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-09-06T17:26:27Z + */ + created_at: string; + type: string; + }; + /** + * @description The type of GitHub user that can comment, open issues, or create pull requests while the interaction limit is in effect. + * @example collaborators_only + * @enum {string} + */ + "interaction-group": + | "existing_users" + | "contributors_only" + | "collaborators_only"; + /** + * Interaction Limits + * @description Interaction limit settings. + */ + "interaction-limit-response": { + limit: components["schemas"]["interaction-group"]; + /** @example repository */ + origin: string; + /** + * Format: date-time + * @example 2018-08-17T04:18:39Z + */ + expires_at: string; + }; + /** + * @description The duration of the interaction restriction. Default: `one_day`. + * @example one_month + * @enum {string} + */ + "interaction-expiry": + | "one_day" + | "three_days" + | "one_week" + | "one_month" + | "six_months"; + /** + * Interaction Restrictions + * @description Limit interactions to a specific type of user for a specified duration + */ + "interaction-limit": { + limit: components["schemas"]["interaction-group"]; + expiry?: components["schemas"]["interaction-expiry"]; + }; + /** + * Org Membership + * @description Org Membership + */ + "org-membership": { + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/memberships/defunkt + */ + url: string; + /** + * @description The state of the member in the organization. The `pending` state indicates the user has not yet accepted an invitation. + * @example active + * @enum {string} + */ + state: "active" | "pending"; + /** + * @description The user's membership type in the organization. + * @example admin + * @enum {string} + */ + role: "admin" | "member" | "billing_manager"; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat + */ + organization_url: string; + organization: components["schemas"]["organization-simple"]; + user: components["schemas"]["nullable-simple-user"]; + permissions?: { + can_create_repository: boolean; + }; + }; + /** + * Migration + * @description A migration. + */ + migration: { + /** @example 79 */ + id: number; + owner: components["schemas"]["nullable-simple-user"]; + /** @example 0b989ba4-242f-11e5-81e1-c7b6966d2516 */ + guid: string; + /** @example pending */ + state: string; + /** @example true */ + lock_repositories: boolean; + exclude_metadata: boolean; + exclude_git_data: boolean; + exclude_attachments: boolean; + exclude_releases: boolean; + exclude_owner_projects: boolean; + org_metadata_only: boolean; + /** @description The repositories included in the migration. Only returned for export migrations. */ + repositories: components["schemas"]["repository"][]; + /** + * Format: uri + * @example https://api.github.com/orgs/octo-org/migrations/79 + */ + url: string; + /** + * Format: date-time + * @example 2015-07-06T15:33:38-07:00 + */ + created_at: string; + /** + * Format: date-time + * @example 2015-07-06T15:33:38-07:00 + */ + updated_at: string; + node_id: string; + /** Format: uri */ + archive_url?: string; + /** @description Exclude related items from being returned in the response in order to improve performance of the request. The array can include any of: `"repositories"`. */ + exclude?: string[]; + }; + /** + * Organization Fine-Grained Permission + * @description A fine-grained permission that protects organization resources. + */ + "organization-fine-grained-permission": { + name: string; + description: string; + }; + /** + * Organization Role + * @description Organization roles + */ + "organization-role": { + /** @description The unique identifier of the role. */ + id: number; + /** @description The name of the role. */ + name: string; + /** @description A short description about who this role is for or what permissions it grants. */ + description?: string | null; + /** @description A list of permissions included in this role. */ + permissions: string[]; + organization: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The date and time the role was created. + */ + created_at: string; + /** + * Format: date-time + * @description The date and time the role was last updated. + */ + updated_at: string; + }; + /** + * Package Version + * @description A version of a software package + */ + "package-version": { + /** + * @description Unique identifier of the package version. + * @example 1 + */ + id: number; + /** + * @description The name of the package version. + * @example latest + */ + name: string; + /** @example https://api.github.com/orgs/github/packages/container/super-linter/versions/786068 */ + url: string; + /** @example https://github.com/orgs/github/packages/container/package/super-linter */ + package_html_url: string; + /** @example https://github.com/orgs/github/packages/container/super-linter/786068 */ + html_url?: string; + /** @example MIT */ + license?: string; + description?: string; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + deleted_at?: string; + /** Package Version Metadata */ + metadata?: { + /** + * @example docker + * @enum {string} + */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** Container Metadata */ + container?: { + tags: string[]; + }; + /** Docker Metadata */ + docker?: { + tag?: string[]; + }; + }; + }; + /** + * Simple Organization Programmatic Access Grant Request + * @description Minimal representation of an organization programmatic access grant request for enumerations + */ + "organization-programmatic-access-grant-request": { + /** @description Unique identifier of the request for access via fine-grained personal access token. The `pat_request_id` used to review PAT requests. */ + id: number; + /** @description Reason for requesting access. */ + reason: string | null; + owner: components["schemas"]["simple-user"]; + /** + * @description Type of repository selection requested. + * @enum {string} + */ + repository_selection: "none" | "all" | "subset"; + /** @description URL to the list of repositories requested to be accessed via fine-grained personal access token. Should only be followed when `repository_selection` is `subset`. */ + repositories_url: string; + /** @description Permissions requested, categorized by type of permission. */ + permissions: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** @description Date and time when the request for access was created. */ + created_at: string; + /** @description Whether the associated fine-grained personal access token has expired. */ + token_expired: boolean; + /** @description Date and time when the associated fine-grained personal access token expires. */ + token_expires_at: string | null; + /** @description Date and time when the associated fine-grained personal access token was last used for authentication. */ + token_last_used_at: string | null; + }; + /** + * Organization Programmatic Access Grant + * @description Minimal representation of an organization programmatic access grant for enumerations + */ + "organization-programmatic-access-grant": { + /** @description Unique identifier of the fine-grained personal access token. The `pat_id` used to get details about an approved fine-grained personal access token. */ + id: number; + owner: components["schemas"]["simple-user"]; + /** + * @description Type of repository selection requested. + * @enum {string} + */ + repository_selection: "none" | "all" | "subset"; + /** @description URL to the list of repositories the fine-grained personal access token can access. Only follow when `repository_selection` is `subset`. */ + repositories_url: string; + /** @description Permissions requested, categorized by type of permission. */ + permissions: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** @description Date and time when the fine-grained personal access token was approved to access the organization. */ + access_granted_at: string; + /** @description Whether the associated fine-grained personal access token has expired. */ + token_expired: boolean; + /** @description Date and time when the associated fine-grained personal access token expires. */ + token_expires_at: string | null; + /** @description Date and time when the associated fine-grained personal access token was last used for authentication. */ + token_last_used_at: string | null; + }; + /** + * Project + * @description Projects are a way to organize columns and cards of work. + */ + project: { + /** + * Format: uri + * @example https://api.github.com/repos/api-playground/projects-test + */ + owner_url: string; + /** + * Format: uri + * @example https://api.github.com/projects/1002604 + */ + url: string; + /** + * Format: uri + * @example https://github.com/api-playground/projects-test/projects/12 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/projects/1002604/columns + */ + columns_url: string; + /** @example 1002604 */ + id: number; + /** @example MDc6UHJvamVjdDEwMDI2MDQ= */ + node_id: string; + /** + * @description Name of the project + * @example Week One Sprint + */ + name: string; + /** + * @description Body of the project + * @example This project represents the sprint of the first week in January + */ + body: string | null; + /** @example 1 */ + number: number; + /** + * @description State of the project; either 'open' or 'closed' + * @example open + */ + state: string; + creator: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * @description The baseline permission that all organization members have on this project. Only present if owner is an organization. + * @enum {string} + */ + organization_permission?: "read" | "write" | "admin" | "none"; + /** @description Whether or not this project can be seen by everyone. Only present if owner is an organization. */ + private?: boolean; + }; + /** + * Organization Custom Property + * @description Custom property defined on an organization + */ + "org-custom-property": { + /** @description The name of the property */ + property_name: string; + /** + * @description The type of the value for the property + * @example single_select + * @enum {string} + */ + value_type: "string" | "single_select"; + /** @description Whether the property is required. */ + required?: boolean; + /** @description Default value of the property */ + default_value?: string | null; + /** @description Short description of the property */ + description?: string | null; + /** + * @description An ordered list of the allowed values of the property. + * The property can have up to 200 allowed values. + */ + allowed_values?: string[] | null; + /** + * @description Who can edit the values of the property + * @example org_actors + * @enum {string|null} + */ + values_editable_by?: "org_actors" | "org_and_repo_actors" | null; + }; + /** + * Custom Property Value + * @description Custom property name and associated value + */ + "custom-property-value": { + /** @description The name of the property */ + property_name: string; + /** @description The value assigned to the property */ + value: string | string[] | null; + }; + /** + * Organization Repository Custom Property Values + * @description List of custom property values for a repository + */ + "org-repo-custom-property-values": { + /** @example 1296269 */ + repository_id: number; + /** @example Hello-World */ + repository_name: string; + /** @example octocat/Hello-World */ + repository_full_name: string; + /** @description List of custom property names and associated values */ + properties: components["schemas"]["custom-property-value"][]; + }; + /** + * Repository + * @description A repository on GitHub. + */ + "nullable-repository": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @deprecated + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + */ + web_commit_signoff_required?: boolean; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + /** @description Whether anonymous git access is enabled for this repository */ + anonymous_access_enabled?: boolean; + } | null; + /** + * Code Of Conduct Simple + * @description Code of Conduct Simple + */ + "code-of-conduct-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/github/docs/community/code_of_conduct + */ + url: string; + /** @example citizen_code_of_conduct */ + key: string; + /** @example Citizen Code of Conduct */ + name: string; + /** + * Format: uri + * @example https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md + */ + html_url: string | null; + }; + /** + * Full Repository + * @description Full Repository + */ + "full-repository": { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** @example Hello-World */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + owner: components["schemas"]["simple-user"]; + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** @example master */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** @example true */ + is_template?: boolean; + /** + * @example [ + * "octocat", + * "atom", + * "electron", + * "API" + * ] + */ + topics?: string[]; + /** @example true */ + has_issues: boolean; + /** @example true */ + has_projects: boolean; + /** @example true */ + has_wiki: boolean; + has_pages: boolean; + /** @example true */ + has_downloads?: boolean; + /** @example true */ + has_discussions: boolean; + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @example public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + /** @example true */ + allow_rebase_merge?: boolean; + template_repository?: components["schemas"]["nullable-repository"]; + temp_clone_token?: string | null; + /** @example true */ + allow_squash_merge?: boolean; + /** @example false */ + allow_auto_merge?: boolean; + /** @example false */ + delete_branch_on_merge?: boolean; + /** @example true */ + allow_merge_commit?: boolean; + /** @example true */ + allow_update_branch?: boolean; + /** @example false */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @example PR_TITLE + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @example PR_BODY + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @example PR_TITLE + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @example PR_BODY + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** @example true */ + allow_forking?: boolean; + /** @example false */ + web_commit_signoff_required?: boolean; + /** @example 42 */ + subscribers_count: number; + /** @example 0 */ + network_count: number; + license: components["schemas"]["nullable-license-simple"]; + organization?: components["schemas"]["nullable-simple-user"]; + parent?: components["schemas"]["repository"]; + source?: components["schemas"]["repository"]; + forks: number; + master_branch?: string; + open_issues: number; + watchers: number; + /** + * @description Whether anonymous git access is allowed. + * @default true + */ + anonymous_access_enabled?: boolean; + code_of_conduct?: components["schemas"]["code-of-conduct-simple"]; + security_and_analysis?: components["schemas"]["security-and-analysis"]; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + }; + /** + * @description The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise). + * @enum {string} + */ + "repository-rule-enforcement": "disabled" | "active" | "evaluate"; + /** + * Repository Ruleset Bypass Actor + * @description An actor that can bypass rules in a ruleset + */ + "repository-ruleset-bypass-actor": { + /** @description The ID of the actor that can bypass a ruleset. If `actor_type` is `OrganizationAdmin`, this should be `1`. */ + actor_id: number; + /** + * @description The type of actor that can bypass a ruleset + * @enum {string} + */ + actor_type: + | "RepositoryRole" + | "Team" + | "Integration" + | "OrganizationAdmin"; + /** + * @description When the specified actor can bypass the ruleset. `pull_request` means that an actor can only bypass rules on pull requests. + * @enum {string} + */ + bypass_mode: "always" | "pull_request"; + }; + /** + * Repository ruleset conditions for ref names + * @description Parameters for a repository ruleset ref name condition + */ + "repository-ruleset-conditions": { + ref_name?: { + /** @description Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches. */ + include?: string[]; + /** @description Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match. */ + exclude?: string[]; + }; + }; + /** + * Repository ruleset conditions for repository names + * @description Parameters for a repository name condition + */ + "repository-ruleset-conditions-repository-name-target": { + repository_name: { + /** @description Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~ALL` to include all repositories. */ + include?: string[]; + /** @description Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match. */ + exclude?: string[]; + /** @description Whether renaming of target repositories is prevented. */ + protected?: boolean; + }; + }; + /** + * Repository ruleset conditions for repository IDs + * @description Parameters for a repository ID condition + */ + "repository-ruleset-conditions-repository-id-target": { + repository_id: { + /** @description The repository IDs that the ruleset applies to. One of these IDs must match for the condition to pass. */ + repository_ids?: number[]; + }; + }; + /** + * Repository ruleset property targeting definition + * @description Parameters for a targeting a repository property + */ + "repository-ruleset-conditions-repository-property-spec": { + /** @description The name of the repository property to target */ + name: string; + /** @description The values to match for the repository property */ + property_values: string[]; + }; + /** + * Repository ruleset conditions for repository properties + * @description Parameters for a repository property condition + */ + "repository-ruleset-conditions-repository-property-target": { + repository_property: { + /** @description The repository properties and values to include. All of these properties must match for the condition to pass. */ + include?: components["schemas"]["repository-ruleset-conditions-repository-property-spec"][]; + /** @description The repository properties and values to exclude. The condition will not pass if any of these properties match. */ + exclude?: components["schemas"]["repository-ruleset-conditions-repository-property-spec"][]; + }; + }; + /** + * Organization ruleset conditions + * @description Conditions for an organization ruleset. The conditions object should contain both `repository_name` and `ref_name` properties or both `repository_id` and `ref_name` properties. + */ + "org-ruleset-conditions": + | (components["schemas"]["repository-ruleset-conditions"] & + components["schemas"]["repository-ruleset-conditions-repository-name-target"]) + | (components["schemas"]["repository-ruleset-conditions"] & + components["schemas"]["repository-ruleset-conditions-repository-id-target"]) + | (components["schemas"]["repository-ruleset-conditions"] & + components["schemas"]["repository-ruleset-conditions-repository-property-target"]); + /** + * creation + * @description Only allow users with bypass permission to create matching refs. + */ + "repository-rule-creation": { + /** @enum {string} */ + type: "creation"; + }; + /** + * update + * @description Only allow users with bypass permission to update matching refs. + */ + "repository-rule-update": { + /** @enum {string} */ + type: "update"; + parameters?: { + /** @description Branch can pull changes from its upstream repository */ + update_allows_fetch_and_merge: boolean; + }; + }; + /** + * deletion + * @description Only allow users with bypass permissions to delete matching refs. + */ + "repository-rule-deletion": { + /** @enum {string} */ + type: "deletion"; + }; + /** + * required_linear_history + * @description Prevent merge commits from being pushed to matching refs. + */ + "repository-rule-required-linear-history": { + /** @enum {string} */ + type: "required_linear_history"; + }; + /** + * required_deployments + * @description Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule. + */ + "repository-rule-required-deployments": { + /** @enum {string} */ + type: "required_deployments"; + parameters?: { + /** @description The environments that must be successfully deployed to before branches can be merged. */ + required_deployment_environments: string[]; + }; + }; + /** + * required_signatures + * @description Commits pushed to matching refs must have verified signatures. + */ + "repository-rule-required-signatures": { + /** @enum {string} */ + type: "required_signatures"; + }; + /** + * pull_request + * @description Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. + */ + "repository-rule-pull-request": { + /** @enum {string} */ + type: "pull_request"; + parameters?: { + /** @description New, reviewable commits pushed will dismiss previous pull request review approvals. */ + dismiss_stale_reviews_on_push: boolean; + /** @description Require an approving review in pull requests that modify files that have a designated code owner. */ + require_code_owner_review: boolean; + /** @description Whether the most recent reviewable push must be approved by someone other than the person who pushed it. */ + require_last_push_approval: boolean; + /** @description The number of approving reviews that are required before a pull request can be merged. */ + required_approving_review_count: number; + /** @description All conversations on code must be resolved before a pull request can be merged. */ + required_review_thread_resolution: boolean; + }; + }; + /** + * StatusCheckConfiguration + * @description Required status check + */ + "repository-rule-params-status-check-configuration": { + /** @description The status check context name that must be present on the commit. */ + context: string; + /** @description The optional integration ID that this status check must originate from. */ + integration_id?: number; + }; + /** + * required_status_checks + * @description Choose which status checks must pass before the ref is updated. When enabled, commits must first be pushed to another ref where the checks pass. + */ + "repository-rule-required-status-checks": { + /** @enum {string} */ + type: "required_status_checks"; + parameters?: { + /** @description Status checks that are required. */ + required_status_checks: components["schemas"]["repository-rule-params-status-check-configuration"][]; + /** @description Whether pull requests targeting a matching branch must be tested with the latest code. This setting will not take effect unless at least one status check is enabled. */ + strict_required_status_checks_policy: boolean; + }; + }; + /** + * non_fast_forward + * @description Prevent users with push access from force pushing to refs. + */ + "repository-rule-non-fast-forward": { + /** @enum {string} */ + type: "non_fast_forward"; + }; + /** + * commit_message_pattern + * @description Parameters to be used for the commit_message_pattern rule + */ + "repository-rule-commit-message-pattern": { + /** @enum {string} */ + type: "commit_message_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * commit_author_email_pattern + * @description Parameters to be used for the commit_author_email_pattern rule + */ + "repository-rule-commit-author-email-pattern": { + /** @enum {string} */ + type: "commit_author_email_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * committer_email_pattern + * @description Parameters to be used for the committer_email_pattern rule + */ + "repository-rule-committer-email-pattern": { + /** @enum {string} */ + type: "committer_email_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * branch_name_pattern + * @description Parameters to be used for the branch_name_pattern rule + */ + "repository-rule-branch-name-pattern": { + /** @enum {string} */ + type: "branch_name_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * tag_name_pattern + * @description Parameters to be used for the tag_name_pattern rule + */ + "repository-rule-tag-name-pattern": { + /** @enum {string} */ + type: "tag_name_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * RestrictedCommits + * @description Restricted commit + */ + "repository-rule-params-restricted-commits": { + /** @description Full or abbreviated commit hash to reject */ + oid: string; + /** @description Reason for restriction */ + reason?: string; + }; + /** + * WorkflowFileReference + * @description A workflow that must run for this rule to pass + */ + "repository-rule-params-workflow-file-reference": { + /** @description The path to the workflow file */ + path: string; + /** @description The ref (branch or tag) of the workflow file to use */ + ref?: string; + /** @description The ID of the repository where the workflow is defined */ + repository_id: number; + /** @description The commit SHA of the workflow file to use */ + sha?: string; + }; + /** + * workflows + * @description Require all changes made to a targeted branch to pass the specified workflows before they can be merged. + */ + "repository-rule-workflows": { + /** @enum {string} */ + type: "workflows"; + parameters?: { + /** @description Workflows that must pass for this rule to pass. */ + workflows: components["schemas"]["repository-rule-params-workflow-file-reference"][]; + }; + }; + /** + * Repository Rule + * @description A repository rule. + */ + "repository-rule": + | components["schemas"]["repository-rule-creation"] + | components["schemas"]["repository-rule-update"] + | components["schemas"]["repository-rule-deletion"] + | components["schemas"]["repository-rule-required-linear-history"] + | components["schemas"]["repository-rule-required-deployments"] + | components["schemas"]["repository-rule-required-signatures"] + | components["schemas"]["repository-rule-pull-request"] + | components["schemas"]["repository-rule-required-status-checks"] + | components["schemas"]["repository-rule-non-fast-forward"] + | components["schemas"]["repository-rule-commit-message-pattern"] + | components["schemas"]["repository-rule-commit-author-email-pattern"] + | components["schemas"]["repository-rule-committer-email-pattern"] + | components["schemas"]["repository-rule-branch-name-pattern"] + | components["schemas"]["repository-rule-tag-name-pattern"] + | components["schemas"]["repository-rule-workflows"]; + /** + * Repository ruleset + * @description A set of rules to apply when specified conditions are met. + */ + "repository-ruleset": { + /** @description The ID of the ruleset */ + id: number; + /** @description The name of the ruleset */ + name: string; + /** + * @description The target of the ruleset + * @enum {string} + */ + target?: "branch" | "tag"; + /** + * @description The type of the source of the ruleset + * @enum {string} + */ + source_type?: "Repository" | "Organization"; + /** @description The name of the source */ + source: string; + enforcement: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + /** + * @description The bypass type of the user making the API request for this ruleset. This field is only returned when + * querying the repository-level endpoint. + * @enum {string} + */ + current_user_can_bypass?: "always" | "pull_requests_only" | "never"; + node_id?: string; + _links?: { + self?: { + /** @description The URL of the ruleset */ + href?: string; + }; + html?: { + /** @description The html URL of the ruleset */ + href?: string; + }; + }; + conditions?: + | ( + | components["schemas"]["repository-ruleset-conditions"] + | components["schemas"]["org-ruleset-conditions"] + ) + | null; + rules?: components["schemas"]["repository-rule"][]; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + updated_at?: string; + }; + /** + * Rule Suites + * @description Response + */ + "rule-suites": { + /** @description The unique identifier of the rule insight. */ + id?: number; + /** @description The number that identifies the user. */ + actor_id?: number; + /** @description The handle for the GitHub user account. */ + actor_name?: string; + /** @description The first commit sha before the push evaluation. */ + before_sha?: string; + /** @description The last commit sha in the push evaluation. */ + after_sha?: string; + /** @description The ref name that the evaluation ran on. */ + ref?: string; + /** @description The ID of the repository associated with the rule evaluation. */ + repository_id?: number; + /** @description The name of the repository without the `.git` extension. */ + repository_name?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string; + /** + * @description The result of the rule evaluations for rules with the `active` enforcement status. + * @enum {string} + */ + result?: "pass" | "fail" | "bypass"; + /** + * @description The result of the rule evaluations for rules with the `active` and `evaluate` enforcement statuses, demonstrating whether rules would pass or fail if all rules in the rule suite were `active`. + * @enum {string} + */ + evaluation_result?: "pass" | "fail"; + }[]; + /** + * Rule Suite + * @description Response + */ + "rule-suite": { + /** @description The unique identifier of the rule insight. */ + id?: number; + /** @description The number that identifies the user. */ + actor_id?: number | null; + /** @description The handle for the GitHub user account. */ + actor_name?: string | null; + /** @description The first commit sha before the push evaluation. */ + before_sha?: string; + /** @description The last commit sha in the push evaluation. */ + after_sha?: string; + /** @description The ref name that the evaluation ran on. */ + ref?: string; + /** @description The ID of the repository associated with the rule evaluation. */ + repository_id?: number; + /** @description The name of the repository without the `.git` extension. */ + repository_name?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string; + /** + * @description The result of the rule evaluations for rules with the `active` enforcement status. + * @enum {string} + */ + result?: "pass" | "fail" | "bypass"; + /** + * @description The result of the rule evaluations for rules with the `active` and `evaluate` enforcement statuses, demonstrating whether rules would pass or fail if all rules in the rule suite were `active`. + * @enum {string} + */ + evaluation_result?: "pass" | "fail"; + /** @description Details on the evaluated rules. */ + rule_evaluations?: { + rule_source?: { + /** @description The type of rule source. */ + type?: string; + /** @description The ID of the rule source. */ + id?: number | null; + /** @description The name of the rule source. */ + name?: string | null; + }; + /** + * @description The enforcement level of this rule source. + * @enum {string} + */ + enforcement?: "active" | "evaluate" | "deleted ruleset"; + /** + * @description The result of the evaluation of the individual rule. + * @enum {string} + */ + result?: "pass" | "fail"; + /** @description The type of rule. */ + rule_type?: string; + /** @description Any associated details with the rule evaluation. */ + details?: string; + }[]; + }; + /** @description A product affected by the vulnerability detailed in a repository security advisory. */ + "repository-advisory-vulnerability": { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name: string | null; + } | null; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range: string | null; + /** @description The package version(s) that resolve the vulnerability. */ + patched_versions: string | null; + /** @description The functions in the package that are affected. */ + vulnerable_functions: string[] | null; + }; + /** @description A credit given to a user for a repository security advisory. */ + "repository-advisory-credit": { + user: components["schemas"]["simple-user"]; + type: components["schemas"]["security-advisory-credit-types"]; + /** + * @description The state of the user's acceptance of the credit. + * @enum {string} + */ + state: "accepted" | "declined" | "pending"; + }; + /** @description A repository security advisory. */ + "repository-advisory": { + /** @description The GitHub Security Advisory ID. */ + ghsa_id: string; + /** @description The Common Vulnerabilities and Exposures (CVE) ID. */ + cve_id: string | null; + /** + * Format: uri + * @description The API URL for the advisory. + */ + url: string; + /** + * Format: uri + * @description The URL for the advisory. + */ + html_url: string; + /** @description A short summary of the advisory. */ + summary: string; + /** @description A detailed description of what the advisory entails. */ + description: string | null; + /** + * @description The severity of the advisory. + * @enum {string|null} + */ + severity: "critical" | "high" | "medium" | "low" | null; + /** @description The author of the advisory. */ + author: components["schemas"]["simple-user"] | null; + /** @description The publisher of the advisory. */ + publisher: components["schemas"]["simple-user"] | null; + identifiers: readonly { + /** + * @description The type of identifier. + * @enum {string} + */ + type: "CVE" | "GHSA"; + /** @description The identifier value. */ + value: string; + }[]; + /** + * @description The state of the advisory. + * @enum {string} + */ + state: "published" | "closed" | "withdrawn" | "draft" | "triage"; + /** + * Format: date-time + * @description The date and time of when the advisory was created, in ISO 8601 format. + */ + created_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was last updated, in ISO 8601 format. + */ + updated_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was published, in ISO 8601 format. + */ + published_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was closed, in ISO 8601 format. + */ + closed_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was withdrawn, in ISO 8601 format. + */ + withdrawn_at: string | null; + submission: { + /** @description Whether a private vulnerability report was accepted by the repository's administrators. */ + readonly accepted: boolean; + } | null; + vulnerabilities: + | components["schemas"]["repository-advisory-vulnerability"][] + | null; + cvss: { + /** @description The CVSS vector. */ + vector_string: string | null; + /** @description The CVSS score. */ + score: number | null; + } | null; + cwes: + | readonly { + /** @description The Common Weakness Enumeration (CWE) identifier. */ + cwe_id: string; + /** @description The name of the CWE. */ + name: string; + }[] + | null; + /** @description A list of only the CWE IDs. */ + cwe_ids: string[] | null; + credits: + | { + /** @description The username of the user credited. */ + login?: string; + type?: components["schemas"]["security-advisory-credit-types"]; + }[] + | null; + credits_detailed: + | readonly components["schemas"]["repository-advisory-credit"][] + | null; + /** @description A list of users that collaborate on the advisory. */ + collaborating_users: components["schemas"]["simple-user"][] | null; + /** @description A list of teams that collaborate on the advisory. */ + collaborating_teams: components["schemas"]["team"][] | null; + /** @description A temporary private fork of the advisory's repository for collaborating on a fix. */ + private_fork: components["schemas"]["simple-repository"] | null; + }; + /** + * Team Simple + * @description Groups of organization members that gives permissions on specified repositories. + */ + "team-simple": { + /** + * @description Unique identifier of the team + * @example 1 + */ + id: number; + /** @example MDQ6VGVhbTE= */ + node_id: string; + /** + * Format: uri + * @description URL for the team + * @example https://api.github.com/organizations/1/team/1 + */ + url: string; + /** @example https://api.github.com/organizations/1/team/1/members{/member} */ + members_url: string; + /** + * @description Name of the team + * @example Justice League + */ + name: string; + /** + * @description Description of the team + * @example A great team. + */ + description: string | null; + /** + * @description Permission that the team will have for its repositories + * @example admin + */ + permission: string; + /** + * @description The level of privacy this team should have + * @example closed + */ + privacy?: string; + /** + * @description The notification setting the team has set + * @example notifications_enabled + */ + notification_setting?: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/1/repos + */ + repositories_url: string; + /** @example justice-league */ + slug: string; + /** + * @description Distinguished Name (DN) that team maps to within LDAP environment + * @example uid=example,ou=users,dc=github,dc=com + */ + ldap_dn?: string; + }; + "actions-billing-usage": { + /** @description The sum of the free and paid GitHub Actions minutes used. */ + total_minutes_used: number; + /** @description The total paid GitHub Actions minutes used. */ + total_paid_minutes_used: number; + /** @description The amount of free GitHub Actions minutes available. */ + included_minutes: number; + minutes_used_breakdown: { + /** @description Total minutes used on Ubuntu runner machines. */ + UBUNTU?: number; + /** @description Total minutes used on macOS runner machines. */ + MACOS?: number; + /** @description Total minutes used on Windows runner machines. */ + WINDOWS?: number; + /** @description Total minutes used on Ubuntu 4 core runner machines. */ + ubuntu_4_core?: number; + /** @description Total minutes used on Ubuntu 8 core runner machines. */ + ubuntu_8_core?: number; + /** @description Total minutes used on Ubuntu 16 core runner machines. */ + ubuntu_16_core?: number; + /** @description Total minutes used on Ubuntu 32 core runner machines. */ + ubuntu_32_core?: number; + /** @description Total minutes used on Ubuntu 64 core runner machines. */ + ubuntu_64_core?: number; + /** @description Total minutes used on Windows 4 core runner machines. */ + windows_4_core?: number; + /** @description Total minutes used on Windows 8 core runner machines. */ + windows_8_core?: number; + /** @description Total minutes used on Windows 16 core runner machines. */ + windows_16_core?: number; + /** @description Total minutes used on Windows 32 core runner machines. */ + windows_32_core?: number; + /** @description Total minutes used on Windows 64 core runner machines. */ + windows_64_core?: number; + /** @description Total minutes used on macOS 12 core runner machines. */ + macos_12_core?: number; + /** @description Total minutes used on all runner machines. */ + total?: number; + }; + }; + "packages-billing-usage": { + /** @description Sum of the free and paid storage space (GB) for GitHuub Packages. */ + total_gigabytes_bandwidth_used: number; + /** @description Total paid storage space (GB) for GitHuub Packages. */ + total_paid_gigabytes_bandwidth_used: number; + /** @description Free storage space (GB) for GitHub Packages. */ + included_gigabytes_bandwidth: number; + }; + "combined-billing-usage": { + /** @description Numbers of days left in billing cycle. */ + days_left_in_billing_cycle: number; + /** @description Estimated storage space (GB) used in billing cycle. */ + estimated_paid_storage_for_month: number; + /** @description Estimated sum of free and paid storage space (GB) used in billing cycle. */ + estimated_storage_for_month: number; + }; + /** + * Team Organization + * @description Team Organization + */ + "team-organization": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + /** @example github */ + name?: string; + /** @example GitHub */ + company?: string; + /** + * Format: uri + * @example https://github.com/blog + */ + blog?: string; + /** @example San Francisco */ + location?: string; + /** + * Format: email + * @example octocat@github.com + */ + email?: string; + /** @example github */ + twitter_username?: string | null; + /** @example true */ + is_verified?: boolean; + /** @example true */ + has_organization_projects: boolean; + /** @example true */ + has_repository_projects: boolean; + /** @example 2 */ + public_repos: number; + /** @example 1 */ + public_gists: number; + /** @example 20 */ + followers: number; + /** @example 0 */ + following: number; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + created_at: string; + /** @example Organization */ + type: string; + /** @example 100 */ + total_private_repos?: number; + /** @example 100 */ + owned_private_repos?: number; + /** @example 81 */ + private_gists?: number | null; + /** @example 10000 */ + disk_usage?: number | null; + /** @example 8 */ + collaborators?: number | null; + /** + * Format: email + * @example org@example.com + */ + billing_email?: string | null; + plan?: { + name: string; + space: number; + private_repos: number; + filled_seats?: number; + seats?: number; + }; + default_repository_permission?: string | null; + /** @example true */ + members_can_create_repositories?: boolean | null; + /** @example true */ + two_factor_requirement_enabled?: boolean | null; + /** @example all */ + members_allowed_repository_creation_type?: string; + /** @example true */ + members_can_create_public_repositories?: boolean; + /** @example true */ + members_can_create_private_repositories?: boolean; + /** @example true */ + members_can_create_internal_repositories?: boolean; + /** @example true */ + members_can_create_pages?: boolean; + /** @example true */ + members_can_create_public_pages?: boolean; + /** @example true */ + members_can_create_private_pages?: boolean; + /** @example false */ + members_can_fork_private_repositories?: boolean | null; + /** @example false */ + web_commit_signoff_required?: boolean; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + archived_at: string | null; + }; + /** + * Full Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + "team-full": { + /** + * @description Unique identifier of the team + * @example 42 + */ + id: number; + /** @example MDQ6VGVhbTE= */ + node_id: string; + /** + * Format: uri + * @description URL for the team + * @example https://api.github.com/organizations/1/team/1 + */ + url: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + /** + * @description Name of the team + * @example Developers + */ + name: string; + /** @example justice-league */ + slug: string; + /** @example A great team. */ + description: string | null; + /** + * @description The level of privacy this team should have + * @example closed + * @enum {string} + */ + privacy?: "closed" | "secret"; + /** + * @description The notification setting the team has set + * @example notifications_enabled + * @enum {string} + */ + notification_setting?: "notifications_enabled" | "notifications_disabled"; + /** + * @description Permission that the team will have for its repositories + * @example push + */ + permission: string; + /** @example https://api.github.com/organizations/1/team/1/members{/member} */ + members_url: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/1/repos + */ + repositories_url: string; + parent?: components["schemas"]["nullable-team-simple"]; + /** @example 3 */ + members_count: number; + /** @example 10 */ + repos_count: number; + /** + * Format: date-time + * @example 2017-07-14T16:53:42Z + */ + created_at: string; + /** + * Format: date-time + * @example 2017-08-17T12:37:15Z + */ + updated_at: string; + organization: components["schemas"]["team-organization"]; + /** + * @description Distinguished Name (DN) that team maps to within LDAP environment + * @example uid=example,ou=users,dc=github,dc=com + */ + ldap_dn?: string; + }; + /** + * Team Discussion + * @description A team discussion is a persistent record of a free-form conversation within a team. + */ + "team-discussion": { + author: components["schemas"]["nullable-simple-user"]; + /** + * @description The main text of the discussion. + * @example Please suggest improvements to our workflow in comments. + */ + body: string; + /** @example

Hi! This is an area for us to collaborate as a team

*/ + body_html: string; + /** + * @description The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server. + * @example 0307116bbf7ced493b8d8a346c650b71 + */ + body_version: string; + /** @example 0 */ + comments_count: number; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2343027/discussions/1/comments + */ + comments_url: string; + /** + * Format: date-time + * @example 2018-01-25T18:56:31Z + */ + created_at: string; + /** Format: date-time */ + last_edited_at: string | null; + /** + * Format: uri + * @example https://github.com/orgs/github/teams/justice-league/discussions/1 + */ + html_url: string; + /** @example MDE0OlRlYW1EaXNjdXNzaW9uMQ== */ + node_id: string; + /** + * @description The unique sequence number of a team discussion. + * @example 42 + */ + number: number; + /** + * @description Whether or not this discussion should be pinned for easy retrieval. + * @example true + */ + pinned: boolean; + /** + * @description Whether or not this discussion should be restricted to team members and organization owners. + * @example true + */ + private: boolean; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2343027 + */ + team_url: string; + /** + * @description The title of the discussion. + * @example How can we improve our workflow? + */ + title: string; + /** + * Format: date-time + * @example 2018-01-25T18:56:31Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2343027/discussions/1 + */ + url: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Team Discussion Comment + * @description A reply to a discussion within a team. + */ + "team-discussion-comment": { + author: components["schemas"]["nullable-simple-user"]; + /** + * @description The main text of the comment. + * @example I agree with this suggestion. + */ + body: string; + /** @example

Do you like apples?

*/ + body_html: string; + /** + * @description The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server. + * @example 0307116bbf7ced493b8d8a346c650b71 + */ + body_version: string; + /** + * Format: date-time + * @example 2018-01-15T23:53:58Z + */ + created_at: string; + /** Format: date-time */ + last_edited_at: string | null; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2403582/discussions/1 + */ + discussion_url: string; + /** + * Format: uri + * @example https://github.com/orgs/github/teams/justice-league/discussions/1/comments/1 + */ + html_url: string; + /** @example MDIxOlRlYW1EaXNjdXNzaW9uQ29tbWVudDE= */ + node_id: string; + /** + * @description The unique sequence number of a team discussion comment. + * @example 42 + */ + number: number; + /** + * Format: date-time + * @example 2018-01-15T23:53:58Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2403582/discussions/1/comments/1 + */ + url: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Reaction + * @description Reactions to conversations provide a way to help people express their feelings more simply and effectively. + */ + reaction: { + /** @example 1 */ + id: number; + /** @example MDg6UmVhY3Rpb24x */ + node_id: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description The reaction to use + * @example heart + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** + * Format: date-time + * @example 2016-05-20T20:09:31Z + */ + created_at: string; + }; + /** + * Team Membership + * @description Team Membership + */ + "team-membership": { + /** Format: uri */ + url: string; + /** + * @description The role of the user in the team. + * @default member + * @example member + * @enum {string} + */ + role: "member" | "maintainer"; + /** + * @description The state of the user's membership in the team. + * @enum {string} + */ + state: "active" | "pending"; + }; + /** + * Team Project + * @description A team's access to a project. + */ + "team-project": { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string | null; + number: number; + state: string; + creator: components["schemas"]["simple-user"]; + created_at: string; + updated_at: string; + /** @description The organization permission for this project. Only present when owner is an organization. */ + organization_permission?: string; + /** @description Whether the project is private or not. Only present when owner is an organization. */ + private?: boolean; + permissions: { + read: boolean; + write: boolean; + admin: boolean; + }; + }; + /** + * Team Repository + * @description A team's access to a repository. + */ + "team-repository": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + /** @example admin */ + role_name?: string; + owner: components["schemas"]["nullable-simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** @example 108 */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow forking this repo + * @default false + * @example false + */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + * @example false + */ + web_commit_signoff_required?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + }; + /** + * Project Card + * @description Project cards represent a scope of work. + */ + "project-card": { + /** + * Format: uri + * @example https://api.github.com/projects/columns/cards/1478 + */ + url: string; + /** + * @description The project card's ID + * @example 42 + */ + id: number; + /** @example MDExOlByb2plY3RDYXJkMTQ3OA== */ + node_id: string; + /** @example Add payload for delete Project column */ + note: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2016-09-05T14:21:06Z + */ + created_at: string; + /** + * Format: date-time + * @example 2016-09-05T14:20:22Z + */ + updated_at: string; + /** + * @description Whether or not the card is archived + * @example false + */ + archived?: boolean; + column_name?: string; + project_id?: string; + /** + * Format: uri + * @example https://api.github.com/projects/columns/367 + */ + column_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/api-playground/projects-test/issues/3 + */ + content_url?: string; + /** + * Format: uri + * @example https://api.github.com/projects/120 + */ + project_url: string; + }; + /** + * Project Column + * @description Project columns contain cards of work. + */ + "project-column": { + /** + * Format: uri + * @example https://api.github.com/projects/columns/367 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/projects/120 + */ + project_url: string; + /** + * Format: uri + * @example https://api.github.com/projects/columns/367/cards + */ + cards_url: string; + /** + * @description The unique identifier of the project column + * @example 42 + */ + id: number; + /** @example MDEzOlByb2plY3RDb2x1bW4zNjc= */ + node_id: string; + /** + * @description Name of the project column + * @example Remaining tasks + */ + name: string; + /** + * Format: date-time + * @example 2016-09-05T14:18:44Z + */ + created_at: string; + /** + * Format: date-time + * @example 2016-09-05T14:22:28Z + */ + updated_at: string; + }; + /** + * Project Collaborator Permission + * @description Project Collaborator Permission + */ + "project-collaborator-permission": { + permission: string; + user: components["schemas"]["nullable-simple-user"]; + }; + /** Rate Limit */ + "rate-limit": { + limit: number; + remaining: number; + reset: number; + used: number; + }; + /** + * Rate Limit Overview + * @description Rate Limit Overview + */ + "rate-limit-overview": { + resources: { + core: components["schemas"]["rate-limit"]; + graphql?: components["schemas"]["rate-limit"]; + search: components["schemas"]["rate-limit"]; + code_search?: components["schemas"]["rate-limit"]; + source_import?: components["schemas"]["rate-limit"]; + integration_manifest?: components["schemas"]["rate-limit"]; + code_scanning_upload?: components["schemas"]["rate-limit"]; + actions_runner_registration?: components["schemas"]["rate-limit"]; + scim?: components["schemas"]["rate-limit"]; + dependency_snapshots?: components["schemas"]["rate-limit"]; + }; + rate: components["schemas"]["rate-limit"]; + }; + /** + * Artifact + * @description An artifact + */ + artifact: { + /** @example 5 */ + id: number; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id: string; + /** + * @description The name of the artifact. + * @example AdventureWorks.Framework + */ + name: string; + /** + * @description The size in bytes of the artifact. + * @example 12345 + */ + size_in_bytes: number; + /** @example https://api.github.com/repos/github/hello-world/actions/artifacts/5 */ + url: string; + /** @example https://api.github.com/repos/github/hello-world/actions/artifacts/5/zip */ + archive_download_url: string; + /** @description Whether or not the artifact has expired. */ + expired: boolean; + /** Format: date-time */ + created_at: string | null; + /** Format: date-time */ + expires_at: string | null; + /** Format: date-time */ + updated_at: string | null; + workflow_run?: { + /** @example 10 */ + id?: number; + /** @example 42 */ + repository_id?: number; + /** @example 42 */ + head_repository_id?: number; + /** @example main */ + head_branch?: string; + /** @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d */ + head_sha?: string; + } | null; + }; + /** + * Repository actions caches + * @description Repository actions caches + */ + "actions-cache-list": { + /** + * @description Total number of caches + * @example 2 + */ + total_count: number; + /** @description Array of caches */ + actions_caches: { + /** @example 2 */ + id?: number; + /** @example refs/heads/main */ + ref?: string; + /** @example Linux-node-958aff96db2d75d67787d1e634ae70b659de937b */ + key?: string; + /** @example 73885106f58cc52a7df9ec4d4a5622a5614813162cb516c759a30af6bf56e6f0 */ + version?: string; + /** + * Format: date-time + * @example 2019-01-24T22:45:36.000Z + */ + last_accessed_at?: string; + /** + * Format: date-time + * @example 2019-01-24T22:45:36.000Z + */ + created_at?: string; + /** @example 1024 */ + size_in_bytes?: number; + }[]; + }; + /** + * Job + * @description Information of a job execution in a workflow run + */ + job: { + /** + * @description The id of the job. + * @example 21 + */ + id: number; + /** + * @description The id of the associated workflow run. + * @example 5 + */ + run_id: number; + /** @example https://api.github.com/repos/github/hello-world/actions/runs/5 */ + run_url: string; + /** + * @description Attempt number of the associated workflow run, 1 for first attempt and higher if the workflow was re-run. + * @example 1 + */ + run_attempt?: number; + /** @example MDg6Q2hlY2tSdW40 */ + node_id: string; + /** + * @description The SHA of the commit that is being run. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** @example https://api.github.com/repos/github/hello-world/actions/jobs/21 */ + url: string; + /** @example https://github.com/github/hello-world/runs/4 */ + html_url: string | null; + /** + * @description The phase of the lifecycle that the job is currently in. + * @example queued + * @enum {string} + */ + status: "queued" | "in_progress" | "completed" | "waiting"; + /** + * @description The outcome of the job. + * @example success + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | null; + /** + * Format: date-time + * @description The time that the job created, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + created_at: string; + /** + * Format: date-time + * @description The time that the job started, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + started_at: string; + /** + * Format: date-time + * @description The time that the job finished, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + completed_at: string | null; + /** + * @description The name of the job. + * @example test-coverage + */ + name: string; + /** @description Steps in this job. */ + steps?: { + /** + * @description The phase of the lifecycle that the job is currently in. + * @example queued + * @enum {string} + */ + status: "queued" | "in_progress" | "completed"; + /** + * @description The outcome of the job. + * @example success + */ + conclusion: string | null; + /** + * @description The name of the job. + * @example test-coverage + */ + name: string; + /** @example 1 */ + number: number; + /** + * Format: date-time + * @description The time that the step started, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + started_at?: string | null; + /** + * Format: date-time + * @description The time that the job finished, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + completed_at?: string | null; + }[]; + /** @example https://api.github.com/repos/github/hello-world/check-runs/4 */ + check_run_url: string; + /** + * @description Labels for the workflow job. Specified by the "runs_on" attribute in the action's workflow file. + * @example [ + * "self-hosted", + * "foo", + * "bar" + * ] + */ + labels: string[]; + /** + * @description The ID of the runner to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example 1 + */ + runner_id: number | null; + /** + * @description The name of the runner to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example my runner + */ + runner_name: string | null; + /** + * @description The ID of the runner group to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example 2 + */ + runner_group_id: number | null; + /** + * @description The name of the runner group to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example my runner group + */ + runner_group_name: string | null; + /** + * @description The name of the workflow. + * @example Build + */ + workflow_name: string | null; + /** + * @description The name of the current branch. + * @example main + */ + head_branch: string | null; + }; + /** + * Actions OIDC subject customization for a repository + * @description Actions OIDC subject customization for a repository + */ + "oidc-custom-sub-repo": { + /** @description Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored. */ + use_default: boolean; + /** @description Array of unique strings. Each claim key can only contain alphanumeric characters and underscores. */ + include_claim_keys?: string[]; + }; + /** + * Actions Secret + * @description Set secrets for GitHub Actions. + */ + "actions-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** Actions Variable */ + "actions-variable": { + /** + * @description The name of the variable. + * @example USERNAME + */ + name: string; + /** + * @description The value of the variable. + * @example octocat + */ + value: string; + /** + * Format: date-time + * @description The date and time at which the variable was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + * @example 2019-01-24T22:45:36.000Z + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the variable was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + * @example 2019-01-24T22:45:36.000Z + */ + updated_at: string; + }; + /** @description Whether GitHub Actions is enabled on the repository. */ + "actions-enabled": boolean; + "actions-repository-permissions": { + enabled: components["schemas"]["actions-enabled"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + selected_actions_url?: components["schemas"]["selected-actions-url"]; + }; + "actions-workflow-access-to-repository": { + /** + * @description Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the + * repository. + * + * `none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repositories only. `organization` level access allows sharing across the organization. + * @enum {string} + */ + access_level: "none" | "user" | "organization"; + }; + /** + * Referenced workflow + * @description A workflow referenced/reused by the initial caller workflow + */ + "referenced-workflow": { + path: string; + sha: string; + ref?: string; + }; + /** Pull Request Minimal */ + "pull-request-minimal": { + id: number; + number: number; + url: string; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }; + /** + * Simple Commit + * @description A commit. + */ + "nullable-simple-commit": { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + id: string; + /** @description SHA for the commit's tree */ + tree_id: string; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + timestamp: string; + /** @description Information about the Git author */ + author: { + /** + * @description Name of the commit's author + * @example Monalisa Octocat + */ + name: string; + /** + * Format: email + * @description Git email address of the commit's author + * @example monalisa.octocat@example.com + */ + email: string; + } | null; + /** @description Information about the Git committer */ + committer: { + /** + * @description Name of the commit's committer + * @example Monalisa Octocat + */ + name: string; + /** + * Format: email + * @description Git email address of the commit's committer + * @example monalisa.octocat@example.com + */ + email: string; + } | null; + } | null; + /** + * Workflow Run + * @description An invocation of a workflow + */ + "workflow-run": { + /** + * @description The ID of the workflow run. + * @example 5 + */ + id: number; + /** + * @description The name of the workflow run. + * @example Build + */ + name?: string | null; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id: string; + /** + * @description The ID of the associated check suite. + * @example 42 + */ + check_suite_id?: number; + /** + * @description The node ID of the associated check suite. + * @example MDEwOkNoZWNrU3VpdGU0Mg== + */ + check_suite_node_id?: string; + /** @example master */ + head_branch: string | null; + /** + * @description The SHA of the head commit that points to the version of the workflow being run. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** + * @description The full path of the workflow + * @example octocat/octo-repo/.github/workflows/ci.yml@main + */ + path: string; + /** + * @description The auto incrementing run number for the workflow run. + * @example 106 + */ + run_number: number; + /** + * @description Attempt number of the run, 1 for first attempt and higher if the workflow was re-run. + * @example 1 + */ + run_attempt?: number; + referenced_workflows?: + | components["schemas"]["referenced-workflow"][] + | null; + /** @example push */ + event: string; + /** @example completed */ + status: string | null; + /** @example neutral */ + conclusion: string | null; + /** + * @description The ID of the parent workflow. + * @example 5 + */ + workflow_id: number; + /** + * @description The URL to the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5 + */ + url: string; + /** @example https://github.com/github/hello-world/suites/4 */ + html_url: string; + /** @description Pull requests that are open with a `head_sha` or `head_branch` that matches the workflow run. The returned pull requests do not necessarily indicate pull requests that triggered the run. */ + pull_requests: components["schemas"]["pull-request-minimal"][] | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + actor?: components["schemas"]["simple-user"]; + triggering_actor?: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @description The start time of the latest run. Resets on re-run. + */ + run_started_at?: string; + /** + * @description The URL to the jobs for the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/jobs + */ + jobs_url: string; + /** + * @description The URL to download the logs for the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/logs + */ + logs_url: string; + /** + * @description The URL to the associated check suite. + * @example https://api.github.com/repos/github/hello-world/check-suites/12 + */ + check_suite_url: string; + /** + * @description The URL to the artifacts for the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/rerun/artifacts + */ + artifacts_url: string; + /** + * @description The URL to cancel the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/cancel + */ + cancel_url: string; + /** + * @description The URL to rerun the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/rerun + */ + rerun_url: string; + /** + * @description The URL to the previous attempted run of this workflow, if one exists. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/attempts/3 + */ + previous_attempt_url?: string | null; + /** + * @description The URL to the workflow. + * @example https://api.github.com/repos/github/hello-world/actions/workflows/main.yaml + */ + workflow_url: string; + head_commit: components["schemas"]["nullable-simple-commit"]; + repository: components["schemas"]["minimal-repository"]; + head_repository: components["schemas"]["minimal-repository"]; + /** @example 5 */ + head_repository_id?: number; + /** + * @description The event-specific title associated with the run or the run-name if set, or the value of `run-name` if it is set in the workflow. + * @example Simple Workflow + */ + display_title: string; + }; + /** + * Environment Approval + * @description An entry in the reviews log for environment deployments + */ + "environment-approvals": { + /** @description The list of environments that were approved or rejected */ + environments: { + /** + * @description The id of the environment. + * @example 56780428 + */ + id?: number; + /** @example MDExOkVudmlyb25tZW50NTY3ODA0Mjg= */ + node_id?: string; + /** + * @description The name of the environment. + * @example staging + */ + name?: string; + /** @example https://api.github.com/repos/github/hello-world/environments/staging */ + url?: string; + /** @example https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging */ + html_url?: string; + /** + * Format: date-time + * @description The time that the environment was created, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + created_at?: string; + /** + * Format: date-time + * @description The time that the environment was last updated, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + updated_at?: string; + }[]; + /** + * @description Whether deployment to the environment(s) was approved or rejected or pending (with comments) + * @example approved + * @enum {string} + */ + state: "approved" | "rejected" | "pending"; + user: components["schemas"]["simple-user"]; + /** + * @description The comment submitted with the deployment review + * @example Ship it! + */ + comment: string; + }; + "review-custom-gates-comment-required": { + /** @description The name of the environment to approve or reject. */ + environment_name: string; + /** @description Comment associated with the pending deployment protection rule. **Required when state is not provided.** */ + comment: string; + }; + "review-custom-gates-state-required": { + /** @description The name of the environment to approve or reject. */ + environment_name: string; + /** + * @description Whether to approve or reject deployment to the specified environments. + * @enum {string} + */ + state: "approved" | "rejected"; + /** @description Optional comment to include with the review. */ + comment?: string; + }; + /** + * @description The type of reviewer. + * @example User + * @enum {string} + */ + "deployment-reviewer-type": "User" | "Team"; + /** + * Pending Deployment + * @description Details of a deployment that is waiting for protection rules to pass + */ + "pending-deployment": { + environment: { + /** + * @description The id of the environment. + * @example 56780428 + */ + id?: number; + /** @example MDExOkVudmlyb25tZW50NTY3ODA0Mjg= */ + node_id?: string; + /** + * @description The name of the environment. + * @example staging + */ + name?: string; + /** @example https://api.github.com/repos/github/hello-world/environments/staging */ + url?: string; + /** @example https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging */ + html_url?: string; + }; + /** + * @description The set duration of the wait timer + * @example 30 + */ + wait_timer: number; + /** + * Format: date-time + * @description The time that the wait timer began. + * @example 2020-11-23T22:00:40Z + */ + wait_timer_started_at: string | null; + /** + * @description Whether the currently authenticated user can approve the deployment + * @example true + */ + current_user_can_approve: boolean; + /** @description The people or teams that may approve jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ + reviewers: { + type?: components["schemas"]["deployment-reviewer-type"]; + reviewer?: + | components["schemas"]["simple-user"] + | components["schemas"]["team"]; + }[]; + }; + /** + * Deployment + * @description A request for a specific ref(branch,sha,tag) to be deployed + */ + deployment: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1 + */ + url: string; + /** + * @description Unique identifier of the deployment + * @example 42 + */ + id: number; + /** @example MDEwOkRlcGxveW1lbnQx */ + node_id: string; + /** @example a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d */ + sha: string; + /** + * @description The ref to deploy. This can be a branch, tag, or sha. + * @example topic-branch + */ + ref: string; + /** + * @description Parameter to specify a task to execute + * @example deploy + */ + task: string; + payload: OneOf< + [ + { + [key: string]: unknown; + }, + string, + ] + >; + /** @example staging */ + original_environment?: string; + /** + * @description Name for the target deployment environment. + * @example production + */ + environment: string; + /** @example Deploy request from hubot */ + description: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + created_at: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1/statuses + */ + statuses_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + /** + * @description Specifies if the given environment is will no longer exist at some point in the future. Default: false. + * @example true + */ + transient_environment?: boolean; + /** + * @description Specifies if the given environment is one that end-users directly interact with. Default: false. + * @example true + */ + production_environment?: boolean; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * Workflow Run Usage + * @description Workflow Run Usage + */ + "workflow-run-usage": { + billable: { + UBUNTU?: { + total_ms: number; + jobs: number; + job_runs?: { + job_id: number; + duration_ms: number; + }[]; + }; + MACOS?: { + total_ms: number; + jobs: number; + job_runs?: { + job_id: number; + duration_ms: number; + }[]; + }; + WINDOWS?: { + total_ms: number; + jobs: number; + job_runs?: { + job_id: number; + duration_ms: number; + }[]; + }; + }; + run_duration_ms?: number; + }; + /** + * Workflow + * @description A GitHub Actions workflow + */ + workflow: { + /** @example 5 */ + id: number; + /** @example MDg6V29ya2Zsb3cxMg== */ + node_id: string; + /** @example CI */ + name: string; + /** @example ruby.yaml */ + path: string; + /** + * @example active + * @enum {string} + */ + state: + | "active" + | "deleted" + | "disabled_fork" + | "disabled_inactivity" + | "disabled_manually"; + /** + * Format: date-time + * @example 2019-12-06T14:20:20.000Z + */ + created_at: string; + /** + * Format: date-time + * @example 2019-12-06T14:20:20.000Z + */ + updated_at: string; + /** @example https://api.github.com/repos/actions/setup-ruby/workflows/5 */ + url: string; + /** @example https://github.com/actions/setup-ruby/blob/master/.github/workflows/ruby.yaml */ + html_url: string; + /** @example https://github.com/actions/setup-ruby/workflows/CI/badge.svg */ + badge_url: string; + /** + * Format: date-time + * @example 2019-12-06T14:20:20.000Z + */ + deleted_at?: string; + }; + /** + * Workflow Usage + * @description Workflow Usage + */ + "workflow-usage": { + billable: { + UBUNTU?: { + total_ms?: number; + }; + MACOS?: { + total_ms?: number; + }; + WINDOWS?: { + total_ms?: number; + }; + }; + }; + /** + * Activity + * @description Activity + */ + activity: { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The SHA of the commit before the activity. + * @example 6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + before: string; + /** + * @description The SHA of the commit after the activity. + * @example 827efc6d56897b048c772eb4087f854f46256132 + */ + after: string; + /** + * @description The full Git reference, formatted as `refs/heads/`. + * @example refs/heads/main + */ + ref: string; + /** + * Format: date-time + * @description The time when the activity occurred. + * @example 2011-01-26T19:06:43Z + */ + timestamp: string; + /** + * @description The type of the activity that was performed. + * @example force_push + * @enum {string} + */ + activity_type: + | "push" + | "force_push" + | "branch_deletion" + | "branch_creation" + | "pr_merge" + | "merge_queue_merge"; + actor: components["schemas"]["nullable-simple-user"]; + }; + /** + * Autolink reference + * @description An autolink reference. + */ + autolink: { + /** @example 3 */ + id: number; + /** + * @description The prefix of a key that is linkified. + * @example TICKET- + */ + key_prefix: string; + /** + * @description A template for the target URL that is generated if a key was found. + * @example https://example.com/TICKET?query= + */ + url_template: string; + /** + * @description Whether this autolink reference matches alphanumeric characters. If false, this autolink reference only matches numeric characters. + * @example true + */ + is_alphanumeric: boolean; + }; + /** + * Check Automated Security Fixes + * @description Check Automated Security Fixes + */ + "check-automated-security-fixes": { + /** + * @description Whether automated security fixes are enabled for the repository. + * @example true + */ + enabled: boolean; + /** + * @description Whether automated security fixes are paused for the repository. + * @example false + */ + paused: boolean; + }; + /** + * Protected Branch Required Status Check + * @description Protected Branch Required Status Check + */ + "protected-branch-required-status-check": { + url?: string; + enforcement_level?: string; + contexts: string[]; + checks: { + context: string; + app_id: number | null; + }[]; + contexts_url?: string; + strict?: boolean; + }; + /** + * Protected Branch Admin Enforced + * @description Protected Branch Admin Enforced + */ + "protected-branch-admin-enforced": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins + */ + url: string; + /** @example true */ + enabled: boolean; + }; + /** + * Protected Branch Pull Request Review + * @description Protected Branch Pull Request Review + */ + "protected-branch-pull-request-review": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions + */ + url?: string; + dismissal_restrictions?: { + /** @description The list of users with review dismissal access. */ + users?: components["schemas"]["simple-user"][]; + /** @description The list of teams with review dismissal access. */ + teams?: components["schemas"]["team"][]; + /** @description The list of apps with review dismissal access. */ + apps?: components["schemas"]["integration"][]; + /** @example "https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions" */ + url?: string; + /** @example "https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/users" */ + users_url?: string; + /** @example "https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/teams" */ + teams_url?: string; + }; + /** @description Allow specific users, teams, or apps to bypass pull request requirements. */ + bypass_pull_request_allowances?: { + /** @description The list of users allowed to bypass pull request requirements. */ + users?: components["schemas"]["simple-user"][]; + /** @description The list of teams allowed to bypass pull request requirements. */ + teams?: components["schemas"]["team"][]; + /** @description The list of apps allowed to bypass pull request requirements. */ + apps?: components["schemas"]["integration"][]; + }; + /** @example true */ + dismiss_stale_reviews: boolean; + /** @example true */ + require_code_owner_reviews: boolean; + /** @example 2 */ + required_approving_review_count?: number; + /** + * @description Whether the most recent push must be approved by someone other than the person who pushed it. + * @default false + * @example true + */ + require_last_push_approval?: boolean; + }; + /** + * Branch Restriction Policy + * @description Branch Restriction Policy + */ + "branch-restriction-policy": { + /** Format: uri */ + url: string; + /** Format: uri */ + users_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri */ + apps_url: string; + users: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }[]; + teams: { + id?: number; + node_id?: string; + url?: string; + html_url?: string; + name?: string; + slug?: string; + description?: string | null; + privacy?: string; + notification_setting?: string; + permission?: string; + members_url?: string; + repositories_url?: string; + parent?: string | null; + }[]; + apps: { + id?: number; + slug?: string; + node_id?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + url?: string; + repos_url?: string; + events_url?: string; + hooks_url?: string; + issues_url?: string; + members_url?: string; + public_members_url?: string; + avatar_url?: string; + description?: string; + /** @example "" */ + gravatar_id?: string; + /** @example "https://github.com/testorg-ea8ec76d71c3af4b" */ + html_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/followers" */ + followers_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/following{/other_user}" */ + following_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/gists{/gist_id}" */ + gists_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/starred{/owner}{/repo}" */ + starred_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/subscriptions" */ + subscriptions_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/orgs" */ + organizations_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/received_events" */ + received_events_url?: string; + /** @example "Organization" */ + type?: string; + /** @example false */ + site_admin?: boolean; + }; + name?: string; + description?: string; + external_url?: string; + html_url?: string; + created_at?: string; + updated_at?: string; + permissions?: { + metadata?: string; + contents?: string; + issues?: string; + single_file?: string; + }; + events?: string[]; + }[]; + }; + /** + * Branch Protection + * @description Branch Protection + */ + "branch-protection": { + url?: string; + enabled?: boolean; + required_status_checks?: components["schemas"]["protected-branch-required-status-check"]; + enforce_admins?: components["schemas"]["protected-branch-admin-enforced"]; + required_pull_request_reviews?: components["schemas"]["protected-branch-pull-request-review"]; + restrictions?: components["schemas"]["branch-restriction-policy"]; + required_linear_history?: { + enabled?: boolean; + }; + allow_force_pushes?: { + enabled?: boolean; + }; + allow_deletions?: { + enabled?: boolean; + }; + block_creations?: { + enabled?: boolean; + }; + required_conversation_resolution?: { + enabled?: boolean; + }; + /** @example "branch/with/protection" */ + name?: string; + /** @example "https://api.github.com/repos/owner-79e94e2d36b3fd06a32bb213/AAA_Public_Repo/branches/branch/with/protection/protection" */ + protection_url?: string; + required_signatures?: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures + */ + url: string; + /** @example true */ + enabled: boolean; + }; + /** @description Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. */ + lock_branch?: { + /** @default false */ + enabled?: boolean; + }; + /** @description Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. */ + allow_fork_syncing?: { + /** @default false */ + enabled?: boolean; + }; + }; + /** + * Short Branch + * @description Short Branch + */ + "short-branch": { + name: string; + commit: { + sha: string; + /** Format: uri */ + url: string; + }; + protected: boolean; + protection?: components["schemas"]["branch-protection"]; + /** Format: uri */ + protection_url?: string; + }; + /** + * Git User + * @description Metaproperties for Git author/committer information. + */ + "nullable-git-user": { + /** @example "Chris Wanstrath" */ + name?: string; + /** @example "chris@ozmm.org" */ + email?: string; + /** @example "2007-10-29T02:42:39.000-07:00" */ + date?: string; + } | null; + /** Verification */ + verification: { + verified: boolean; + reason: string; + payload: string | null; + signature: string | null; + }; + /** + * Diff Entry + * @description Diff Entry + */ + "diff-entry": { + /** @example bbcd538c8e72b8c175046e27cc8f907076331401 */ + sha: string; + /** @example file1.txt */ + filename: string; + /** + * @example added + * @enum {string} + */ + status: + | "added" + | "removed" + | "modified" + | "renamed" + | "copied" + | "changed" + | "unchanged"; + /** @example 103 */ + additions: number; + /** @example 21 */ + deletions: number; + /** @example 124 */ + changes: number; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + */ + blob_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + */ + raw_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + contents_url: string; + /** @example @@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test */ + patch?: string; + /** @example file.txt */ + previous_filename?: string; + }; + /** + * Commit + * @description Commit + */ + commit: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + url: string; + /** @example 6dcb09b5b57875f334f61aebed695e2e4193db5e */ + sha: string; + /** @example MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ== */ + node_id: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments + */ + comments_url: string; + commit: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + url: string; + author: components["schemas"]["nullable-git-user"]; + committer: components["schemas"]["nullable-git-user"]; + /** @example Fix all the bugs */ + message: string; + /** @example 0 */ + comment_count: number; + tree: { + /** @example 827efc6d56897b048c772eb4087f854f46256132 */ + sha: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/tree/827efc6d56897b048c772eb4087f854f46256132 + */ + url: string; + }; + verification?: components["schemas"]["verification"]; + }; + author: components["schemas"]["nullable-simple-user"]; + committer: components["schemas"]["nullable-simple-user"]; + parents: { + /** @example 7638417db6d59f3c431d3e1f261cc637155684cd */ + sha: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/7638417db6d59f3c431d3e1f261cc637155684cd + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd + */ + html_url?: string; + }[]; + stats?: { + additions?: number; + deletions?: number; + total?: number; + }; + files?: components["schemas"]["diff-entry"][]; + }; + /** + * Branch With Protection + * @description Branch With Protection + */ + "branch-with-protection": { + name: string; + commit: components["schemas"]["commit"]; + _links: { + html: string; + /** Format: uri */ + self: string; + }; + protected: boolean; + protection: components["schemas"]["branch-protection"]; + /** Format: uri */ + protection_url: string; + /** @example "mas*" */ + pattern?: string; + /** @example 1 */ + required_approving_review_count?: number; + }; + /** + * Status Check Policy + * @description Status Check Policy + */ + "status-check-policy": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks + */ + url: string; + /** @example true */ + strict: boolean; + /** + * @example [ + * "continuous-integration/travis-ci" + * ] + */ + contexts: string[]; + checks: { + /** @example continuous-integration/travis-ci */ + context: string; + app_id: number | null; + }[]; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts + */ + contexts_url: string; + }; + /** + * Protected Branch + * @description Branch protections protect branches + */ + "protected-branch": { + /** Format: uri */ + url: string; + required_status_checks?: components["schemas"]["status-check-policy"]; + required_pull_request_reviews?: { + /** Format: uri */ + url: string; + dismiss_stale_reviews?: boolean; + require_code_owner_reviews?: boolean; + required_approving_review_count?: number; + /** + * @description Whether the most recent push must be approved by someone other than the person who pushed it. + * @default false + */ + require_last_push_approval?: boolean; + dismissal_restrictions?: { + /** Format: uri */ + url: string; + /** Format: uri */ + users_url: string; + /** Format: uri */ + teams_url: string; + users: components["schemas"]["simple-user"][]; + teams: components["schemas"]["team"][]; + apps?: components["schemas"]["integration"][]; + }; + bypass_pull_request_allowances?: { + users: components["schemas"]["simple-user"][]; + teams: components["schemas"]["team"][]; + apps?: components["schemas"]["integration"][]; + }; + }; + required_signatures?: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures + */ + url: string; + /** @example true */ + enabled: boolean; + }; + enforce_admins?: { + /** Format: uri */ + url: string; + enabled: boolean; + }; + required_linear_history?: { + enabled: boolean; + }; + allow_force_pushes?: { + enabled: boolean; + }; + allow_deletions?: { + enabled: boolean; + }; + restrictions?: components["schemas"]["branch-restriction-policy"]; + required_conversation_resolution?: { + enabled?: boolean; + }; + block_creations?: { + enabled: boolean; + }; + /** @description Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. */ + lock_branch?: { + /** @default false */ + enabled?: boolean; + }; + /** @description Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. */ + allow_fork_syncing?: { + /** @default false */ + enabled?: boolean; + }; + }; + /** + * Deployment + * @description A deployment created as the result of an Actions check run from a workflow that references an environment + */ + "deployment-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1 + */ + url: string; + /** + * @description Unique identifier of the deployment + * @example 42 + */ + id: number; + /** @example MDEwOkRlcGxveW1lbnQx */ + node_id: string; + /** + * @description Parameter to specify a task to execute + * @example deploy + */ + task: string; + /** @example staging */ + original_environment?: string; + /** + * @description Name for the target deployment environment. + * @example production + */ + environment: string; + /** @example Deploy request from hubot */ + description: string | null; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + created_at: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1/statuses + */ + statuses_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + /** + * @description Specifies if the given environment is will no longer exist at some point in the future. Default: false. + * @example true + */ + transient_environment?: boolean; + /** + * @description Specifies if the given environment is one that end-users directly interact with. Default: false. + * @example true + */ + production_environment?: boolean; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * CheckRun + * @description A check performed on the code of a given code change + */ + "check-run": { + /** + * @description The id of the check. + * @example 21 + */ + id: number; + /** + * @description The SHA of the commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** @example MDg6Q2hlY2tSdW40 */ + node_id: string; + /** @example 42 */ + external_id: string | null; + /** @example https://api.github.com/repos/github/hello-world/check-runs/4 */ + url: string; + /** @example https://github.com/github/hello-world/runs/4 */ + html_url: string | null; + /** @example https://example.com */ + details_url: string | null; + /** + * @description The phase of the lifecycle that the check is currently in. + * @example queued + * @enum {string} + */ + status: "queued" | "in_progress" | "completed"; + /** + * @example neutral + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | null; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + started_at: string | null; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + completed_at: string | null; + output: { + title: string | null; + summary: string | null; + text: string | null; + annotations_count: number; + /** Format: uri */ + annotations_url: string; + }; + /** + * @description The name of the check. + * @example test-coverage + */ + name: string; + check_suite: { + id: number; + } | null; + app: components["schemas"]["nullable-integration"]; + /** @description Pull requests that are open with a `head_sha` or `head_branch` that matches the check. The returned pull requests do not necessarily indicate pull requests that triggered the check. */ + pull_requests: components["schemas"]["pull-request-minimal"][]; + deployment?: components["schemas"]["deployment-simple"]; + }; + /** + * Check Annotation + * @description Check Annotation + */ + "check-annotation": { + /** @example README.md */ + path: string; + /** @example 2 */ + start_line: number; + /** @example 2 */ + end_line: number; + /** @example 5 */ + start_column: number | null; + /** @example 10 */ + end_column: number | null; + /** @example warning */ + annotation_level: string | null; + /** @example Spell Checker */ + title: string | null; + /** @example Check your spelling for 'banaas'. */ + message: string | null; + /** @example Do you mean 'bananas' or 'banana'? */ + raw_details: string | null; + blob_href: string; + }; + /** + * Simple Commit + * @description A commit. + */ + "simple-commit": { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + id: string; + /** @description SHA for the commit's tree */ + tree_id: string; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + timestamp: string; + /** @description Information about the Git author */ + author: { + /** + * @description Name of the commit's author + * @example Monalisa Octocat + */ + name: string; + /** + * Format: email + * @description Git email address of the commit's author + * @example monalisa.octocat@example.com + */ + email: string; + } | null; + /** @description Information about the Git committer */ + committer: { + /** + * @description Name of the commit's committer + * @example Monalisa Octocat + */ + name: string; + /** + * Format: email + * @description Git email address of the commit's committer + * @example monalisa.octocat@example.com + */ + email: string; + } | null; + }; + /** + * CheckSuite + * @description A suite of checks performed on the code of a given code change + */ + "check-suite": { + /** @example 5 */ + id: number; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id: string; + /** @example master */ + head_branch: string | null; + /** + * @description The SHA of the head commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** + * @example completed + * @enum {string|null} + */ + status: "queued" | "in_progress" | "completed" | null; + /** + * @example neutral + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | "startup_failure" + | "stale" + | null; + /** @example https://api.github.com/repos/github/hello-world/check-suites/5 */ + url: string | null; + /** @example 146e867f55c26428e5f9fade55a9bbf5e95a7912 */ + before: string | null; + /** @example d6fde92930d4715a2b49857d24b940956b26d2d3 */ + after: string | null; + pull_requests: components["schemas"]["pull-request-minimal"][] | null; + app: components["schemas"]["nullable-integration"]; + repository: components["schemas"]["minimal-repository"]; + /** Format: date-time */ + created_at: string | null; + /** Format: date-time */ + updated_at: string | null; + head_commit: components["schemas"]["simple-commit"]; + latest_check_runs_count: number; + check_runs_url: string; + rerequestable?: boolean; + runs_rerequestable?: boolean; + }; + /** + * Check Suite Preference + * @description Check suite configuration preferences for a repository. + */ + "check-suite-preference": { + preferences: { + auto_trigger_checks?: { + app_id: number; + setting: boolean; + }[]; + }; + repository: components["schemas"]["minimal-repository"]; + }; + "code-scanning-alert-items": { + number: components["schemas"]["alert-number"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["alert-updated-at"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + instances_url: components["schemas"]["alert-instances-url"]; + state: components["schemas"]["code-scanning-alert-state"]; + fixed_at?: components["schemas"]["alert-fixed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_reason: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + rule: components["schemas"]["code-scanning-alert-rule-summary"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + most_recent_instance: components["schemas"]["code-scanning-alert-instance"]; + }; + "code-scanning-alert-rule": { + /** @description A unique identifier for the rule used to detect the alert. */ + id?: string | null; + /** @description The name of the rule used to detect the alert. */ + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity?: "none" | "note" | "warning" | "error" | null; + /** + * @description The security severity of the alert. + * @enum {string|null} + */ + security_severity_level?: "low" | "medium" | "high" | "critical" | null; + /** @description A short description of the rule used to detect the alert. */ + description?: string; + /** @description description of the rule used to detect the alert. */ + full_description?: string; + /** @description A set of tags applicable for the rule. */ + tags?: string[] | null; + /** @description Detailed documentation for the rule as GitHub Flavored Markdown. */ + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + }; + "code-scanning-alert": { + number: components["schemas"]["alert-number"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["alert-updated-at"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + instances_url: components["schemas"]["alert-instances-url"]; + state: components["schemas"]["code-scanning-alert-state"]; + fixed_at?: components["schemas"]["alert-fixed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_reason: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + rule: components["schemas"]["code-scanning-alert-rule"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + most_recent_instance: components["schemas"]["code-scanning-alert-instance"]; + }; + /** + * @description Sets the state of the code scanning alert. You must provide `dismissed_reason` when you set the state to `dismissed`. + * @enum {string} + */ + "code-scanning-alert-set-state": "open" | "dismissed"; + /** + * @description An identifier for the upload. + * @example 6c81cd8e-b078-4ac3-a3be-1dad7dbd0b53 + */ + "code-scanning-analysis-sarif-id": string; + /** @description The SHA of the commit to which the analysis you are uploading relates. */ + "code-scanning-analysis-commit-sha": string; + /** @description Identifies the variable values associated with the environment in which this analysis was performed. */ + "code-scanning-analysis-environment": string; + /** + * Format: date-time + * @description The time that the analysis was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "code-scanning-analysis-created-at": string; + /** + * Format: uri + * @description The REST API URL of the analysis resource. + */ + readonly "code-scanning-analysis-url": string; + "code-scanning-analysis": { + ref: components["schemas"]["code-scanning-ref"]; + commit_sha: components["schemas"]["code-scanning-analysis-commit-sha"]; + analysis_key: components["schemas"]["code-scanning-analysis-analysis-key"]; + environment: components["schemas"]["code-scanning-analysis-environment"]; + category?: components["schemas"]["code-scanning-analysis-category"]; + /** @example error reading field xyz */ + error: string; + created_at: components["schemas"]["code-scanning-analysis-created-at"]; + /** @description The total number of results in the analysis. */ + results_count: number; + /** @description The total number of rules used in the analysis. */ + rules_count: number; + /** @description Unique identifier for this analysis. */ + id: number; + url: components["schemas"]["code-scanning-analysis-url"]; + sarif_id: components["schemas"]["code-scanning-analysis-sarif-id"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + deletable: boolean; + /** + * @description Warning generated when processing the analysis + * @example 123 results were ignored + */ + warning: string; + }; + /** + * Analysis deletion + * @description Successful deletion of a code scanning analysis + */ + "code-scanning-analysis-deletion": { + /** + * Format: uri + * @description Next deletable analysis in chain, without last analysis deletion confirmation + */ + next_analysis_url: string | null; + /** + * Format: uri + * @description Next deletable analysis in chain, with last analysis deletion confirmation + */ + confirm_delete_url: string | null; + }; + /** + * CodeQL Database + * @description A CodeQL database. + */ + "code-scanning-codeql-database": { + /** @description The ID of the CodeQL database. */ + id: number; + /** @description The name of the CodeQL database. */ + name: string; + /** @description The language of the CodeQL database. */ + language: string; + uploader: components["schemas"]["simple-user"]; + /** @description The MIME type of the CodeQL database file. */ + content_type: string; + /** @description The size of the CodeQL database file in bytes. */ + size: number; + /** + * Format: date-time + * @description The date and time at which the CodeQL database was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the CodeQL database was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + updated_at: string; + /** + * Format: uri + * @description The URL at which to download the CodeQL database. The `Accept` header must be set to the value of the `content_type` property. + */ + url: string; + /** @description The commit SHA of the repository at the time the CodeQL database was created. */ + commit_oid?: string | null; + }; + /** @description Configuration for code scanning default setup. */ + "code-scanning-default-setup": { + /** + * @description Code scanning default setup has been configured or not. + * @enum {string} + */ + state?: "configured" | "not-configured"; + /** @description Languages to be analyzed. */ + languages?: ( + | "c-cpp" + | "csharp" + | "go" + | "java-kotlin" + | "javascript-typescript" + | "javascript" + | "python" + | "ruby" + | "typescript" + | "swift" + )[]; + /** + * @description CodeQL query suite to be used. + * @enum {string} + */ + query_suite?: "default" | "extended"; + /** + * Format: date-time + * @description Timestamp of latest configuration update. + * @example 2023-12-06T14:20:20.000Z + */ + updated_at?: string | null; + /** + * @description The frequency of the periodic analysis. + * @enum {string|null} + */ + schedule?: "weekly" | null; + }; + /** @description Configuration for code scanning default setup. */ + "code-scanning-default-setup-update": { + /** + * @description The desired state of code scanning default setup. + * @enum {string} + */ + state?: "configured" | "not-configured"; + /** + * @description CodeQL query suite to be used. + * @enum {string} + */ + query_suite?: "default" | "extended"; + /** @description CodeQL languages to be analyzed. */ + languages?: ( + | "c-cpp" + | "csharp" + | "go" + | "java-kotlin" + | "javascript-typescript" + | "python" + | "ruby" + | "swift" + )[]; + }; + /** + * @description You can use `run_url` to track the status of the run. This includes a property status and conclusion. + * You should not rely on this always being an actions workflow run object. + */ + "code-scanning-default-setup-update-response": { + /** @description ID of the corresponding run. */ + run_id?: number; + /** @description URL of the corresponding run. */ + run_url?: string; + }; + /** + * @description The full Git reference, formatted as `refs/heads/`, + * `refs/tags/`, `refs/pull//merge`, or `refs/pull//head`. + * @example refs/heads/main + */ + "code-scanning-ref-full": string; + /** @description A Base64 string representing the SARIF file to upload. You must first compress your SARIF file using [`gzip`](http://www.gnu.org/software/gzip/manual/gzip.html) and then translate the contents of the file into a Base64 encoding string. For more information, see "[SARIF support for code scanning](https://docs.github.com/code-security/secure-coding/sarif-support-for-code-scanning)." */ + "code-scanning-analysis-sarif-file": string; + "code-scanning-sarifs-receipt": { + id?: components["schemas"]["code-scanning-analysis-sarif-id"]; + /** + * Format: uri + * @description The REST API URL for checking the status of the upload. + */ + url?: string; + }; + "code-scanning-sarifs-status": { + /** + * @description `pending` files have not yet been processed, while `complete` means results from the SARIF have been stored. `failed` files have either not been processed at all, or could only be partially processed. + * @enum {string} + */ + processing_status?: "pending" | "complete" | "failed"; + /** + * Format: uri + * @description The REST API URL for getting the analyses associated with the upload. + */ + analyses_url?: string | null; + /** @description Any errors that ocurred during processing of the delivery. */ + errors?: readonly string[] | null; + }; + /** + * CODEOWNERS errors + * @description A list of errors found in a repo's CODEOWNERS file + */ + "codeowners-errors": { + errors: { + /** + * @description The line number where this errors occurs. + * @example 7 + */ + line: number; + /** + * @description The column number where this errors occurs. + * @example 3 + */ + column: number; + /** + * @description The contents of the line where the error occurs. + * @example * user + */ + source?: string; + /** + * @description The type of error. + * @example Invalid owner + */ + kind: string; + /** + * @description Suggested action to fix the error. This will usually be `null`, but is provided for some common errors. + * @example The pattern `/` will never match anything, did you mean `*` instead? + */ + suggestion?: string | null; + /** + * @description A human-readable description of the error, combining information from multiple fields, laid out for display in a monospaced typeface (for example, a command-line setting). + * @example Invalid owner on line 7: + * + * * user + * ^ + */ + message: string; + /** + * @description The path of the file where the error occured. + * @example .github/CODEOWNERS + */ + path: string; + }[]; + }; + /** + * Codespace machine + * @description A description of the machine powering a codespace. + */ + "codespace-machine": { + /** + * @description The name of the machine. + * @example standardLinux + */ + name: string; + /** + * @description The display name of the machine includes cores, memory, and storage. + * @example 4 cores, 16 GB RAM, 64 GB storage + */ + display_name: string; + /** + * @description The operating system of the machine. + * @example linux + */ + operating_system: string; + /** + * @description How much storage is available to the codespace. + * @example 68719476736 + */ + storage_in_bytes: number; + /** + * @description How much memory is available to the codespace. + * @example 17179869184 + */ + memory_in_bytes: number; + /** + * @description How many cores are available to the codespace. + * @example 4 + */ + cpus: number; + /** + * @description Whether a prebuild is currently available when creating a codespace for this machine and repository. If a branch was not specified as a ref, the default branch will be assumed. Value will be "null" if prebuilds are not supported or prebuild availability could not be determined. Value will be "none" if no prebuild is available. Latest values "ready" and "in_progress" indicate the prebuild availability status. + * @example ready + * @enum {string|null} + */ + prebuild_availability: "none" | "ready" | "in_progress" | null; + }; + /** + * Codespaces Permissions Check + * @description Permission check result for a given devcontainer config. + */ + "codespaces-permissions-check-for-devcontainer": { + /** + * @description Whether the user has accepted the permissions defined by the devcontainer config + * @example true + */ + accepted: boolean; + }; + /** + * Codespaces Secret + * @description Set repository secrets for GitHub Codespaces. + */ + "repo-codespaces-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Collaborator + * @description Collaborator + */ + collaborator: { + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + email?: string | null; + name?: string | null; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + permissions?: { + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + admin: boolean; + }; + /** @example admin */ + role_name: string; + }; + /** + * Repository Invitation + * @description Repository invitations let you manage who you collaborate with. + */ + "repository-invitation": { + /** + * @description Unique identifier of the repository invitation. + * @example 42 + */ + id: number; + repository: components["schemas"]["minimal-repository"]; + invitee: components["schemas"]["nullable-simple-user"]; + inviter: components["schemas"]["nullable-simple-user"]; + /** + * @description The permission associated with the invitation. + * @example read + * @enum {string} + */ + permissions: "read" | "write" | "admin" | "triage" | "maintain"; + /** + * Format: date-time + * @example 2016-06-13T14:52:50-05:00 + */ + created_at: string; + /** @description Whether or not the invitation has expired */ + expired?: boolean; + /** + * @description URL for the repository invitation + * @example https://api.github.com/user/repository-invitations/1 + */ + url: string; + /** @example https://github.com/octocat/Hello-World/invitations */ + html_url: string; + node_id: string; + }; + /** + * Collaborator + * @description Collaborator + */ + "nullable-collaborator": { + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + email?: string | null; + name?: string | null; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + permissions?: { + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + admin: boolean; + }; + /** @example admin */ + role_name: string; + } | null; + /** + * Repository Collaborator Permission + * @description Repository Collaborator Permission + */ + "repository-collaborator-permission": { + permission: string; + /** @example admin */ + role_name: string; + user: components["schemas"]["nullable-collaborator"]; + }; + /** + * Commit Comment + * @description Commit Comment + */ + "commit-comment": { + /** Format: uri */ + html_url: string; + /** Format: uri */ + url: string; + id: number; + node_id: string; + body: string; + path: string | null; + position: number | null; + line: number | null; + commit_id: string; + user: components["schemas"]["nullable-simple-user"]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + author_association: components["schemas"]["author-association"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Branch Short + * @description Branch Short + */ + "branch-short": { + name: string; + commit: { + sha: string; + url: string; + }; + protected: boolean; + }; + /** + * Link + * @description Hypermedia Link + */ + link: { + href: string; + }; + /** + * Auto merge + * @description The status of auto merging a pull request. + */ + "auto-merge": { + enabled_by: components["schemas"]["simple-user"]; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + /** @description Title for the merge commit message. */ + commit_title: string; + /** @description Commit message for the merge commit. */ + commit_message: string; + } | null; + /** + * Pull Request Simple + * @description Pull Request Simple + */ + "pull-request-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347 + */ + url: string; + /** @example 1 */ + id: number; + /** @example MDExOlB1bGxSZXF1ZXN0MQ== */ + node_id: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347 + */ + html_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.diff + */ + diff_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.patch + */ + patch_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + */ + commits_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + */ + review_comments_url: string; + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} */ + review_comment_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + */ + comments_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + statuses_url: string; + /** @example 1347 */ + number: number; + /** @example open */ + state: string; + /** @example true */ + locked: boolean; + /** @example new-feature */ + title: string; + user: components["schemas"]["nullable-simple-user"]; + /** @example Please pull these awesome changes */ + body: string | null; + labels: { + /** Format: int64 */ + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: components["schemas"]["nullable-milestone"]; + /** @example too heated */ + active_lock_reason?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + merged_at: string | null; + /** @example e5bd3914e2e596debea16f433f57875b5b90bcd6 */ + merge_commit_sha: string | null; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + requested_reviewers?: components["schemas"]["simple-user"][] | null; + requested_teams?: components["schemas"]["team"][] | null; + head: { + label: string; + ref: string; + repo: components["schemas"]["repository"]; + sha: string; + user: components["schemas"]["nullable-simple-user"]; + }; + base: { + label: string; + ref: string; + repo: components["schemas"]["repository"]; + sha: string; + user: components["schemas"]["nullable-simple-user"]; + }; + _links: { + comments: components["schemas"]["link"]; + commits: components["schemas"]["link"]; + statuses: components["schemas"]["link"]; + html: components["schemas"]["link"]; + issue: components["schemas"]["link"]; + review_comments: components["schemas"]["link"]; + review_comment: components["schemas"]["link"]; + self: components["schemas"]["link"]; + }; + author_association: components["schemas"]["author-association"]; + auto_merge: components["schemas"]["auto-merge"]; + /** + * @description Indicates whether or not the pull request is a draft. + * @example false + */ + draft?: boolean; + }; + /** Simple Commit Status */ + "simple-commit-status": { + description: string | null; + id: number; + node_id: string; + state: string; + context: string; + /** Format: uri */ + target_url: string | null; + required?: boolean | null; + /** Format: uri */ + avatar_url: string | null; + /** Format: uri */ + url: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Combined Commit Status + * @description Combined Commit Status + */ + "combined-commit-status": { + state: string; + statuses: components["schemas"]["simple-commit-status"][]; + sha: string; + total_count: number; + repository: components["schemas"]["minimal-repository"]; + /** Format: uri */ + commit_url: string; + /** Format: uri */ + url: string; + }; + /** + * Status + * @description The status of a commit. + */ + status: { + url: string; + avatar_url: string | null; + id: number; + node_id: string; + state: string; + description: string | null; + target_url: string | null; + context: string; + created_at: string; + updated_at: string; + creator: components["schemas"]["nullable-simple-user"]; + }; + /** + * Code Of Conduct Simple + * @description Code of Conduct Simple + */ + "nullable-code-of-conduct-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/github/docs/community/code_of_conduct + */ + url: string; + /** @example citizen_code_of_conduct */ + key: string; + /** @example Citizen Code of Conduct */ + name: string; + /** + * Format: uri + * @example https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md + */ + html_url: string | null; + } | null; + /** Community Health File */ + "nullable-community-health-file": { + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + } | null; + /** + * Community Profile + * @description Community Profile + */ + "community-profile": { + /** @example 100 */ + health_percentage: number; + /** @example My first repository on GitHub! */ + description: string | null; + /** @example example.com */ + documentation: string | null; + files: { + code_of_conduct: components["schemas"]["nullable-code-of-conduct-simple"]; + code_of_conduct_file: components["schemas"]["nullable-community-health-file"]; + license: components["schemas"]["nullable-license-simple"]; + contributing: components["schemas"]["nullable-community-health-file"]; + readme: components["schemas"]["nullable-community-health-file"]; + issue_template: components["schemas"]["nullable-community-health-file"]; + pull_request_template: components["schemas"]["nullable-community-health-file"]; + }; + /** + * Format: date-time + * @example 2017-02-28T19:09:29Z + */ + updated_at: string | null; + /** @example true */ + content_reports_enabled?: boolean; + }; + /** + * Commit Comparison + * @description Commit Comparison + */ + "commit-comparison": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/compare/master...topic + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/master...topic + */ + html_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17 + */ + permalink_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/master...topic.diff + */ + diff_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/master...topic.patch + */ + patch_url: string; + base_commit: components["schemas"]["commit"]; + merge_base_commit: components["schemas"]["commit"]; + /** + * @example ahead + * @enum {string} + */ + status: "diverged" | "ahead" | "behind" | "identical"; + /** @example 4 */ + ahead_by: number; + /** @example 5 */ + behind_by: number; + /** @example 6 */ + total_commits: number; + commits: components["schemas"]["commit"][]; + files?: components["schemas"]["diff-entry"][]; + }; + /** + * Content Tree + * @description Content Tree + */ + "content-tree": { + type: string; + size: number; + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + entries?: { + type: string; + size: number; + name: string; + path: string; + content?: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }[]; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }; + /** + * Content Directory + * @description A list of directory items + */ + "content-directory": { + /** @enum {string} */ + type: "dir" | "file" | "submodule" | "symlink"; + size: number; + name: string; + path: string; + content?: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }[]; + /** + * Content File + * @description Content File + */ + "content-file": { + /** @enum {string} */ + type: "file"; + encoding: string; + size: number; + name: string; + path: string; + content: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + /** @example "actual/actual.md" */ + target?: string; + /** @example "git://example.com/defunkt/dotjs.git" */ + submodule_git_url?: string; + }; + /** + * Symlink Content + * @description An object describing a symlink + */ + "content-symlink": { + /** @enum {string} */ + type: "symlink"; + target: string; + size: number; + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }; + /** + * Submodule Content + * @description An object describing a submodule + */ + "content-submodule": { + /** @enum {string} */ + type: "submodule"; + /** Format: uri */ + submodule_git_url: string; + size: number; + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }; + /** + * File Commit + * @description File Commit + */ + "file-commit": { + content: { + name?: string; + path?: string; + sha?: string; + size?: number; + url?: string; + html_url?: string; + git_url?: string; + download_url?: string; + type?: string; + _links?: { + self?: string; + git?: string; + html?: string; + }; + } | null; + commit: { + sha?: string; + node_id?: string; + url?: string; + html_url?: string; + author?: { + date?: string; + name?: string; + email?: string; + }; + committer?: { + date?: string; + name?: string; + email?: string; + }; + message?: string; + tree?: { + url?: string; + sha?: string; + }; + parents?: { + url?: string; + html_url?: string; + sha?: string; + }[]; + verification?: { + verified?: boolean; + reason?: string; + signature?: string | null; + payload?: string | null; + }; + }; + }; + /** + * Contributor + * @description Contributor + */ + contributor: { + login?: string; + id?: number; + node_id?: string; + /** Format: uri */ + avatar_url?: string; + gravatar_id?: string | null; + /** Format: uri */ + url?: string; + /** Format: uri */ + html_url?: string; + /** Format: uri */ + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + repos_url?: string; + events_url?: string; + /** Format: uri */ + received_events_url?: string; + type: string; + site_admin?: boolean; + contributions: number; + email?: string; + name?: string; + }; + /** @description A Dependabot alert. */ + "dependabot-alert": { + number: components["schemas"]["alert-number"]; + /** + * @description The state of the Dependabot alert. + * @enum {string} + */ + state: "auto_dismissed" | "dismissed" | "fixed" | "open"; + /** @description Details for the vulnerable dependency. */ + dependency: { + readonly package?: components["schemas"]["dependabot-alert-package"]; + /** @description The full path to the dependency manifest file, relative to the root of the repository. */ + readonly manifest_path?: string; + /** + * @description The execution scope of the vulnerable dependency. + * @enum {string|null} + */ + readonly scope?: "development" | "runtime" | null; + }; + security_advisory: components["schemas"]["dependabot-alert-security-advisory"]; + security_vulnerability: components["schemas"]["dependabot-alert-security-vulnerability"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at: components["schemas"]["alert-updated-at"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + /** + * @description The reason that the alert was dismissed. + * @enum {string|null} + */ + dismissed_reason: + | "fix_started" + | "inaccurate" + | "no_bandwidth" + | "not_used" + | "tolerable_risk" + | null; + /** @description An optional comment associated with the alert's dismissal. */ + dismissed_comment: string | null; + fixed_at: components["schemas"]["alert-fixed-at"]; + auto_dismissed_at?: components["schemas"]["alert-auto-dismissed-at"]; + }; + /** + * Dependabot Secret + * @description Set secrets for Dependabot. + */ + "dependabot-secret": { + /** + * @description The name of the secret. + * @example MY_ARTIFACTORY_PASSWORD + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Dependency Graph Diff + * @description A diff of the dependencies between two commits. + */ + "dependency-graph-diff": { + /** @enum {string} */ + change_type: "added" | "removed"; + /** @example path/to/package-lock.json */ + manifest: string; + /** @example npm */ + ecosystem: string; + /** @example @actions/core */ + name: string; + /** @example 1.0.0 */ + version: string; + /** @example pkg:/npm/%40actions/core@1.1.0 */ + package_url: string | null; + /** @example MIT */ + license: string | null; + /** @example https://github.com/github/actions */ + source_repository_url: string | null; + vulnerabilities: { + /** @example critical */ + severity: string; + /** @example GHSA-rf4j-j272-fj86 */ + advisory_ghsa_id: string; + /** @example A summary of the advisory. */ + advisory_summary: string; + /** @example https://github.com/advisories/GHSA-rf4j-j272-fj86 */ + advisory_url: string; + }[]; + /** + * @description Where the dependency is utilized. `development` means that the dependency is only utilized in the development environment. `runtime` means that the dependency is utilized at runtime and in the development environment. + * @enum {string} + */ + scope: "unknown" | "runtime" | "development"; + }[]; + /** + * Dependency Graph SPDX SBOM + * @description A schema for the SPDX JSON format returned by the Dependency Graph. + */ + "dependency-graph-spdx-sbom": { + sbom: { + /** + * @description The SPDX identifier for the SPDX document. + * @example SPDXRef-DOCUMENT + */ + SPDXID: string; + /** + * @description The version of the SPDX specification that this document conforms to. + * @example SPDX-2.3 + */ + spdxVersion: string; + creationInfo: { + /** + * @description The date and time the SPDX document was created. + * @example 2021-11-03T00:00:00Z + */ + created: string; + /** @description The tools that were used to generate the SPDX document. */ + creators: string[]; + }; + /** + * @description The name of the SPDX document. + * @example github/github + */ + name: string; + /** + * @description The license under which the SPDX document is licensed. + * @example CC0-1.0 + */ + dataLicense: string; + /** @description The name of the repository that the SPDX document describes. */ + documentDescribes: string[]; + /** + * @description The namespace for the SPDX document. + * @example https://github.com/example/dependency_graph/sbom-123 + */ + documentNamespace: string; + packages: { + /** + * @description A unique SPDX identifier for the package. + * @example SPDXRef-Package + */ + SPDXID?: string; + /** + * @description The name of the package. + * @example rubygems:github/github + */ + name?: string; + /** + * @description The version of the package. If the package does not have an exact version specified, + * a version range is given. + * @example 1.0.0 + */ + versionInfo?: string; + /** + * @description The location where the package can be downloaded, + * or NOASSERTION if this has not been determined. + * @example NOASSERTION + */ + downloadLocation?: string; + /** + * @description Whether the package's file content has been subjected to + * analysis during the creation of the SPDX document. + * @example false + */ + filesAnalyzed?: boolean; + /** + * @description The license of the package as determined while creating the SPDX document. + * @example MIT + */ + licenseConcluded?: string; + /** + * @description The license of the package as declared by its author, or NOASSERTION if this information + * was not available when the SPDX document was created. + * @example NOASSERTION + */ + licenseDeclared?: string; + /** + * @description The distribution source of this package, or NOASSERTION if this was not determined. + * @example NOASSERTION + */ + supplier?: string; + externalRefs?: { + /** + * @description The category of reference to an external resource this reference refers to. + * @example PACKAGE-MANAGER + */ + referenceCategory: string; + /** + * @description A locator for the particular external resource this reference refers to. + * @example pkg:gem/rails@6.0.1 + */ + referenceLocator: string; + /** + * @description The category of reference to an external resource this reference refers to. + * @example purl + */ + referenceType: string; + }[]; + }[]; + }; + }; + /** + * metadata + * @description User-defined metadata to store domain-specific information limited to 8 keys with scalar values. + */ + metadata: { + [key: string]: (string | number | boolean) | null; + }; + dependency: { + /** + * @description Package-url (PURL) of dependency. See https://github.com/package-url/purl-spec for more details. + * @example pkg:/npm/%40actions/http-client@1.0.11 + */ + package_url?: string; + metadata?: components["schemas"]["metadata"]; + /** + * @description A notation of whether a dependency is requested directly by this manifest or is a dependency of another dependency. + * @example direct + * @enum {string} + */ + relationship?: "direct" | "indirect"; + /** + * @description A notation of whether the dependency is required for the primary build artifact (runtime) or is only used for development. Future versions of this specification may allow for more granular scopes. + * @example runtime + * @enum {string} + */ + scope?: "runtime" | "development"; + /** + * @description Array of package-url (PURLs) of direct child dependencies. + * @example @actions/http-client + */ + dependencies?: string[]; + }; + manifest: { + /** + * @description The name of the manifest. + * @example package-lock.json + */ + name: string; + file?: { + /** + * @description The path of the manifest file relative to the root of the Git repository. + * @example /src/build/package-lock.json + */ + source_location?: string; + }; + metadata?: components["schemas"]["metadata"]; + /** @description A collection of resolved package dependencies. */ + resolved?: { + [key: string]: components["schemas"]["dependency"]; + }; + }; + /** + * snapshot + * @description Create a new snapshot of a repository's dependencies. + */ + snapshot: { + /** @description The version of the repository snapshot submission. */ + version: number; + job: { + /** + * @description The external ID of the job. + * @example 5622a2b0-63f6-4732-8c34-a1ab27e102a11 + */ + id: string; + /** + * @description Correlator provides a key that is used to group snapshots submitted over time. Only the "latest" submitted snapshot for a given combination of `job.correlator` and `detector.name` will be considered when calculating a repository's current dependencies. Correlator should be as unique as it takes to distinguish all detection runs for a given "wave" of CI workflow you run. If you're using GitHub Actions, a good default value for this could be the environment variables GITHUB_WORKFLOW and GITHUB_JOB concatenated together. If you're using a build matrix, then you'll also need to add additional key(s) to distinguish between each submission inside a matrix variation. + * @example yourworkflowname_yourjobname + */ + correlator: string; + /** + * @description The url for the job. + * @example http://example.com/build + */ + html_url?: string; + }; + /** + * @description The commit SHA associated with this dependency snapshot. Maximum length: 40 characters. + * @example ddc951f4b1293222421f2c8df679786153acf689 + */ + sha: string; + /** + * @description The repository branch that triggered this snapshot. + * @example refs/heads/main + */ + ref: string; + /** @description A description of the detector used. */ + detector: { + /** + * @description The name of the detector used. + * @example docker buildtime detector + */ + name: string; + /** + * @description The version of the detector used. + * @example 1.0.0 + */ + version: string; + /** + * @description The url of the detector used. + * @example http://example.com/docker-buildtimer-detector + */ + url: string; + }; + metadata?: components["schemas"]["metadata"]; + /** @description A collection of package manifests, which are a collection of related dependencies declared in a file or representing a logical group of dependencies. */ + manifests?: { + [key: string]: components["schemas"]["manifest"]; + }; + /** + * Format: date-time + * @description The time at which the snapshot was scanned. + * @example 2020-06-13T14:52:50-05:00 + */ + scanned: string; + }; + /** + * Deployment Status + * @description The status of a deployment. + */ + "deployment-status": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/42/statuses/1 + */ + url: string; + /** @example 1 */ + id: number; + /** @example MDE2OkRlcGxveW1lbnRTdGF0dXMx */ + node_id: string; + /** + * @description The state of the status. + * @example success + * @enum {string} + */ + state: + | "error" + | "failure" + | "inactive" + | "pending" + | "success" + | "queued" + | "in_progress"; + creator: components["schemas"]["nullable-simple-user"]; + /** + * @description A short description of the status. + * @default + * @example Deployment finished successfully. + */ + description: string; + /** + * @description The environment of the deployment that the status is for. + * @default + * @example production + */ + environment?: string; + /** + * Format: uri + * @description Deprecated: the URL to associate with this status. + * @default + * @example https://example.com/deployment/42/output + */ + target_url: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + created_at: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/42 + */ + deployment_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + /** + * Format: uri + * @description The URL for accessing your environment. + * @default + * @example https://staging.example.com/ + */ + environment_url?: string; + /** + * Format: uri + * @description The URL to associate with this status. + * @default + * @example https://example.com/deployment/42/output + */ + log_url?: string; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * @description The amount of time to delay a job after the job is initially triggered. The time (in minutes) must be an integer between 0 and 43,200 (30 days). + * @example 30 + */ + "wait-timer": number; + /** @description The type of deployment branch policy for this environment. To allow all branches to deploy, set to `null`. */ + "deployment-branch-policy-settings": { + /** @description Whether only branches with branch protection rules can deploy to this environment. If `protected_branches` is `true`, `custom_branch_policies` must be `false`; if `protected_branches` is `false`, `custom_branch_policies` must be `true`. */ + protected_branches: boolean; + /** @description Whether only branches that match the specified name patterns can deploy to this environment. If `custom_branch_policies` is `true`, `protected_branches` must be `false`; if `custom_branch_policies` is `false`, `protected_branches` must be `true`. */ + custom_branch_policies: boolean; + } | null; + /** + * Environment + * @description Details of a deployment environment + */ + environment: { + /** + * @description The id of the environment. + * @example 56780428 + */ + id: number; + /** @example MDExOkVudmlyb25tZW50NTY3ODA0Mjg= */ + node_id: string; + /** + * @description The name of the environment. + * @example staging + */ + name: string; + /** @example https://api.github.com/repos/github/hello-world/environments/staging */ + url: string; + /** @example https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging */ + html_url: string; + /** + * Format: date-time + * @description The time that the environment was created, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + created_at: string; + /** + * Format: date-time + * @description The time that the environment was last updated, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + updated_at: string; + /** @description Built-in deployment protection rules for the environment. */ + protection_rules?: ( + | { + /** @example 3515 */ + id: number; + /** @example MDQ6R2F0ZTM1MTU= */ + node_id: string; + /** @example wait_timer */ + type: string; + wait_timer?: components["schemas"]["wait-timer"]; + } + | { + /** @example 3755 */ + id: number; + /** @example MDQ6R2F0ZTM3NTU= */ + node_id: string; + /** + * @description Whether deployments to this environment can be approved by the user who created the deployment. + * @example false + */ + prevent_self_review?: boolean; + /** @example required_reviewers */ + type: string; + /** @description The people or teams that may approve jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ + reviewers?: { + type?: components["schemas"]["deployment-reviewer-type"]; + reviewer?: + | components["schemas"]["simple-user"] + | components["schemas"]["team"]; + }[]; + } + | { + /** @example 3515 */ + id: number; + /** @example MDQ6R2F0ZTM1MTU= */ + node_id: string; + /** @example branch_policy */ + type: string; + } + )[]; + deployment_branch_policy?: components["schemas"]["deployment-branch-policy-settings"]; + }; + /** + * @description Whether or not a user who created the job is prevented from approving their own job. + * @example false + */ + "prevent-self-review": boolean; + /** + * Deployment branch policy + * @description Details of a deployment branch or tag policy. + */ + "deployment-branch-policy": { + /** + * @description The unique identifier of the branch or tag policy. + * @example 361471 + */ + id?: number; + /** @example MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjE0NzE= */ + node_id?: string; + /** + * @description The name pattern that branches or tags must match in order to deploy to the environment. + * @example release/* + */ + name?: string; + /** + * @description Whether this rule targets a branch or tag. + * @example branch + * @enum {string} + */ + type?: "branch" | "tag"; + }; + /** Deployment branch and tag policy name pattern */ + "deployment-branch-policy-name-pattern-with-type": { + /** + * @description The name pattern that branches or tags must match in order to deploy to the environment. + * + * Wildcard characters will not match `/`. For example, to match branches that begin with `release/` and contain an additional single slash, use `release/*\/*`. + * For more information about pattern matching syntax, see the [Ruby File.fnmatch documentation](https://ruby-doc.org/core-2.5.1/File.html#method-c-fnmatch). + * @example release/* + */ + name: string; + /** + * @description Whether this rule targets a branch or tag + * @example branch + * @enum {string} + */ + type?: "branch" | "tag"; + }; + /** Deployment branch policy name pattern */ + "deployment-branch-policy-name-pattern": { + /** + * @description The name pattern that branches must match in order to deploy to the environment. + * + * Wildcard characters will not match `/`. For example, to match branches that begin with `release/` and contain an additional single slash, use `release/*\/*`. + * For more information about pattern matching syntax, see the [Ruby File.fnmatch documentation](https://ruby-doc.org/core-2.5.1/File.html#method-c-fnmatch). + * @example release/* + */ + name: string; + }; + /** + * Custom deployment protection rule app + * @description A GitHub App that is providing a custom deployment protection rule. + */ + "custom-deployment-rule-app": { + /** + * @description The unique identifier of the deployment protection rule integration. + * @example 3515 + */ + id: number; + /** + * @description The slugified name of the deployment protection rule integration. + * @example my-custom-app + */ + slug: string; + /** + * @description The URL for the endpoint to get details about the app. + * @example https://api.github.com/apps/custom-app-slug + */ + integration_url: string; + /** + * @description The node ID for the deployment protection rule integration. + * @example MDQ6R2F0ZTM1MTU= + */ + node_id: string; + }; + /** + * Deployment protection rule + * @description Deployment protection rule + */ + "deployment-protection-rule": { + /** + * @description The unique identifier for the deployment protection rule. + * @example 3515 + */ + id: number; + /** + * @description The node ID for the deployment protection rule. + * @example MDQ6R2F0ZTM1MTU= + */ + node_id: string; + /** + * @description Whether the deployment protection rule is enabled for the environment. + * @example true + */ + enabled: boolean; + app: components["schemas"]["custom-deployment-rule-app"]; + }; + /** + * Short Blob + * @description Short Blob + */ + "short-blob": { + url: string; + sha: string; + }; + /** + * Blob + * @description Blob + */ + blob: { + content: string; + encoding: string; + /** Format: uri */ + url: string; + sha: string; + size: number | null; + node_id: string; + highlighted_content?: string; + }; + /** + * Git Commit + * @description Low-level Git commit operations within a repository + */ + "git-commit": { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + node_id: string; + /** Format: uri */ + url: string; + /** @description Identifying information for the git-user */ + author: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** @description Identifying information for the git-user */ + committer: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + tree: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + }; + parents: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string | null; + payload: string | null; + }; + /** Format: uri */ + html_url: string; + }; + /** + * Git Reference + * @description Git references within a repository + */ + "git-ref": { + ref: string; + node_id: string; + /** Format: uri */ + url: string; + object: { + type: string; + /** + * @description SHA for the reference + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + }; + }; + /** + * Git Tag + * @description Metadata for a Git tag + */ + "git-tag": { + /** @example MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw== */ + node_id: string; + /** + * @description Name of the tag + * @example v0.0.1 + */ + tag: string; + /** @example 940bd336248efae0f9ee5bc7b2d5c985887b16ac */ + sha: string; + /** + * Format: uri + * @description URL for the tag + * @example https://api.github.com/repositories/42/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac + */ + url: string; + /** + * @description Message describing the purpose of the tag + * @example Initial public release + */ + message: string; + tagger: { + date: string; + email: string; + name: string; + }; + object: { + sha: string; + type: string; + /** Format: uri */ + url: string; + }; + verification?: components["schemas"]["verification"]; + }; + /** + * Git Tree + * @description The hierarchy between files in a Git repository. + */ + "git-tree": { + sha: string; + /** Format: uri */ + url: string; + truncated: boolean; + /** + * @description Objects specifying a tree structure + * @example [ + * { + * "path": "file.rb", + * "mode": "100644", + * "type": "blob", + * "size": 30, + * "sha": "44b4fc6d56897b048c772eb4087f854f46256132", + * "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", + * "properties": { + * "path": { + * "type": "string" + * }, + * "mode": { + * "type": "string" + * }, + * "type": { + * "type": "string" + * }, + * "size": { + * "type": "integer" + * }, + * "sha": { + * "type": "string" + * }, + * "url": { + * "type": "string" + * } + * }, + * "required": [ + * "path", + * "mode", + * "type", + * "sha", + * "url", + * "size" + * ] + * } + * ] + */ + tree: { + /** @example test/file.rb */ + path?: string; + /** @example 040000 */ + mode?: string; + /** @example tree */ + type?: string; + /** @example 23f6827669e43831def8a7ad935069c8bd418261 */ + sha?: string; + /** @example 12 */ + size?: number; + /** @example https://api.github.com/repos/owner-482f3203ecf01f67e9deb18e/BBB_Private_Repo/git/blobs/23f6827669e43831def8a7ad935069c8bd418261 */ + url?: string; + }[]; + }; + /** Hook Response */ + "hook-response": { + code: number | null; + status: string | null; + message: string | null; + }; + /** + * Webhook + * @description Webhooks for repositories. + */ + hook: { + type: string; + /** + * @description Unique identifier of the webhook. + * @example 42 + */ + id: number; + /** + * @description The name of a valid service, use 'web' for a webhook. + * @example web + */ + name: string; + /** + * @description Determines whether the hook is actually triggered on pushes. + * @example true + */ + active: boolean; + /** + * @description Determines what events the hook is triggered for. Default: ['push']. + * @example [ + * "push", + * "pull_request" + * ] + */ + events: string[]; + config: components["schemas"]["webhook-config"]; + /** + * Format: date-time + * @example 2011-09-06T20:39:23Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-09-06T17:26:27Z + */ + created_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1/test + */ + test_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1/pings + */ + ping_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1/deliveries + */ + deliveries_url?: string; + last_response: components["schemas"]["hook-response"]; + }; + /** + * Import + * @description A repository import from an external source. + */ + import: { + vcs: string | null; + use_lfs?: boolean; + /** @description The URL of the originating repository. */ + vcs_url: string; + svc_root?: string; + tfvc_project?: string; + /** @enum {string} */ + status: + | "auth" + | "error" + | "none" + | "detecting" + | "choose" + | "auth_failed" + | "importing" + | "mapping" + | "waiting_to_push" + | "pushing" + | "complete" + | "setup" + | "unknown" + | "detection_found_multiple" + | "detection_found_nothing" + | "detection_needs_auth"; + status_text?: string | null; + failed_step?: string | null; + error_message?: string | null; + import_percent?: number | null; + commit_count?: number | null; + push_percent?: number | null; + has_large_files?: boolean; + large_files_size?: number; + large_files_count?: number; + project_choices?: { + vcs?: string; + tfvc_project?: string; + human_name?: string; + }[]; + message?: string; + authors_count?: number | null; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + authors_url: string; + /** Format: uri */ + repository_url: string; + svn_root?: string; + }; + /** + * Porter Author + * @description Porter Author + */ + "porter-author": { + id: number; + remote_id: string; + remote_name: string; + email: string; + name: string; + /** Format: uri */ + url: string; + /** Format: uri */ + import_url: string; + }; + /** + * Porter Large File + * @description Porter Large File + */ + "porter-large-file": { + ref_name: string; + path: string; + oid: string; + size: number; + }; + /** + * Issue + * @description Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. + */ + "nullable-issue": { + /** Format: int64 */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue + * @example https://api.github.com/repositories/42/issues/1 + */ + url: string; + /** Format: uri */ + repository_url: string; + labels_url: string; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** + * @description Number uniquely identifying the issue within its repository + * @example 42 + */ + number: number; + /** + * @description State of the issue; either 'open' or 'closed' + * @example open + */ + state: string; + /** + * @description The reason for the current state + * @example not_planned + * @enum {string|null} + */ + state_reason?: "completed" | "reopened" | "not_planned" | null; + /** + * @description Title of the issue + * @example Widget creation fails in Safari on OS X 10.8 + */ + title: string; + /** + * @description Contents of the issue + * @example It looks like the new widget form is broken on Safari. When I try and create the widget, Safari crashes. This is reproducible on 10.8, but not 10.9. Maybe a browser bug? + */ + body?: string | null; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository + * @example [ + * "bug", + * "registration" + * ] + */ + labels: OneOf< + [ + string, + { + /** Format: int64 */ + id?: number; + node_id?: string; + /** Format: uri */ + url?: string; + name?: string; + description?: string | null; + color?: string | null; + default?: boolean; + }, + ] + >[]; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + milestone: components["schemas"]["nullable-milestone"]; + locked: boolean; + active_lock_reason?: string | null; + comments: number; + pull_request?: { + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + diff_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + patch_url: string | null; + /** Format: uri */ + url: string | null; + }; + /** Format: date-time */ + closed_at: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + draft?: boolean; + closed_by?: components["schemas"]["nullable-simple-user"]; + body_html?: string; + body_text?: string; + /** Format: uri */ + timeline_url?: string; + repository?: components["schemas"]["repository"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + author_association: components["schemas"]["author-association"]; + reactions?: components["schemas"]["reaction-rollup"]; + } | null; + /** + * Issue Event Label + * @description Issue Event Label + */ + "issue-event-label": { + name: string | null; + color: string | null; + }; + /** Issue Event Dismissed Review */ + "issue-event-dismissed-review": { + state: string; + review_id: number; + dismissal_message: string | null; + dismissal_commit_id?: string | null; + }; + /** + * Issue Event Milestone + * @description Issue Event Milestone + */ + "issue-event-milestone": { + title: string; + }; + /** + * Issue Event Project Card + * @description Issue Event Project Card + */ + "issue-event-project-card": { + /** Format: uri */ + url: string; + id: number; + /** Format: uri */ + project_url: string; + project_id: number; + column_name: string; + previous_column_name?: string; + }; + /** + * Issue Event Rename + * @description Issue Event Rename + */ + "issue-event-rename": { + from: string; + to: string; + }; + /** + * Issue Event + * @description Issue Event + */ + "issue-event": { + /** + * Format: int64 + * @example 1 + */ + id: number; + /** @example MDEwOklzc3VlRXZlbnQx */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/events/1 + */ + url: string; + actor: components["schemas"]["nullable-simple-user"]; + /** @example closed */ + event: string; + /** @example 6dcb09b5b57875f334f61aebed695e2e4193db5e */ + commit_id: string | null; + /** @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e */ + commit_url: string | null; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + issue?: components["schemas"]["nullable-issue"]; + label?: components["schemas"]["issue-event-label"]; + assignee?: components["schemas"]["nullable-simple-user"]; + assigner?: components["schemas"]["nullable-simple-user"]; + review_requester?: components["schemas"]["nullable-simple-user"]; + requested_reviewer?: components["schemas"]["nullable-simple-user"]; + requested_team?: components["schemas"]["team"]; + dismissed_review?: components["schemas"]["issue-event-dismissed-review"]; + milestone?: components["schemas"]["issue-event-milestone"]; + project_card?: components["schemas"]["issue-event-project-card"]; + rename?: components["schemas"]["issue-event-rename"]; + author_association?: components["schemas"]["author-association"]; + lock_reason?: string | null; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * Labeled Issue Event + * @description Labeled Issue Event + */ + "labeled-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + label: { + name: string; + color: string; + }; + }; + /** + * Unlabeled Issue Event + * @description Unlabeled Issue Event + */ + "unlabeled-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + label: { + name: string; + color: string; + }; + }; + /** + * Assigned Issue Event + * @description Assigned Issue Event + */ + "assigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["integration"]; + assignee: components["schemas"]["simple-user"]; + assigner: components["schemas"]["simple-user"]; + }; + /** + * Unassigned Issue Event + * @description Unassigned Issue Event + */ + "unassigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + assignee: components["schemas"]["simple-user"]; + assigner: components["schemas"]["simple-user"]; + }; + /** + * Milestoned Issue Event + * @description Milestoned Issue Event + */ + "milestoned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + milestone: { + title: string; + }; + }; + /** + * Demilestoned Issue Event + * @description Demilestoned Issue Event + */ + "demilestoned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + milestone: { + title: string; + }; + }; + /** + * Renamed Issue Event + * @description Renamed Issue Event + */ + "renamed-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + rename: { + from: string; + to: string; + }; + }; + /** + * Review Requested Issue Event + * @description Review Requested Issue Event + */ + "review-requested-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + review_requester: components["schemas"]["simple-user"]; + requested_team?: components["schemas"]["team"]; + requested_reviewer?: components["schemas"]["simple-user"]; + }; + /** + * Review Request Removed Issue Event + * @description Review Request Removed Issue Event + */ + "review-request-removed-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + review_requester: components["schemas"]["simple-user"]; + requested_team?: components["schemas"]["team"]; + requested_reviewer?: components["schemas"]["simple-user"]; + }; + /** + * Review Dismissed Issue Event + * @description Review Dismissed Issue Event + */ + "review-dismissed-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + dismissed_review: { + state: string; + review_id: number; + dismissal_message: string | null; + dismissal_commit_id?: string; + }; + }; + /** + * Locked Issue Event + * @description Locked Issue Event + */ + "locked-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + /** @example "off-topic" */ + lock_reason: string | null; + }; + /** + * Added to Project Issue Event + * @description Added to Project Issue Event + */ + "added-to-project-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Moved Column in Project Issue Event + * @description Moved Column in Project Issue Event + */ + "moved-column-in-project-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Removed from Project Issue Event + * @description Removed from Project Issue Event + */ + "removed-from-project-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Converted Note to Issue Issue Event + * @description Converted Note to Issue Issue Event + */ + "converted-note-to-issue-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Issue Event for Issue + * @description Issue Event for Issue + */ + "issue-event-for-issue": + | components["schemas"]["labeled-issue-event"] + | components["schemas"]["unlabeled-issue-event"] + | components["schemas"]["assigned-issue-event"] + | components["schemas"]["unassigned-issue-event"] + | components["schemas"]["milestoned-issue-event"] + | components["schemas"]["demilestoned-issue-event"] + | components["schemas"]["renamed-issue-event"] + | components["schemas"]["review-requested-issue-event"] + | components["schemas"]["review-request-removed-issue-event"] + | components["schemas"]["review-dismissed-issue-event"] + | components["schemas"]["locked-issue-event"] + | components["schemas"]["added-to-project-issue-event"] + | components["schemas"]["moved-column-in-project-issue-event"] + | components["schemas"]["removed-from-project-issue-event"] + | components["schemas"]["converted-note-to-issue-issue-event"]; + /** + * Label + * @description Color-coded labels help you categorize and filter your issues (just like labels in Gmail). + */ + label: { + /** + * Format: int64 + * @example 208045946 + */ + id: number; + /** @example MDU6TGFiZWwyMDgwNDU5NDY= */ + node_id: string; + /** + * Format: uri + * @description URL for the label + * @example https://api.github.com/repositories/42/labels/bug + */ + url: string; + /** + * @description The name of the label. + * @example bug + */ + name: string; + /** @example Something isn't working */ + description: string | null; + /** + * @description 6-character hex code, without the leading #, identifying the color + * @example FFFFFF + */ + color: string; + /** @example true */ + default: boolean; + }; + /** + * Timeline Comment Event + * @description Timeline Comment Event + */ + "timeline-comment-event": { + event: string; + actor: components["schemas"]["simple-user"]; + /** + * @description Unique identifier of the issue comment + * @example 42 + */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue comment + * @example https://api.github.com/repositories/42/issues/comments/1 + */ + url: string; + /** + * @description Contents of the issue comment + * @example What version of Safari were you using when you observed this bug? + */ + body?: string; + body_text?: string; + body_html?: string; + /** Format: uri */ + html_url: string; + user: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** Format: uri */ + issue_url: string; + author_association: components["schemas"]["author-association"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Timeline Cross Referenced Event + * @description Timeline Cross Referenced Event + */ + "timeline-cross-referenced-event": { + event: string; + actor?: components["schemas"]["simple-user"]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + source: { + type?: string; + issue?: components["schemas"]["issue"]; + }; + }; + /** + * Timeline Committed Event + * @description Timeline Committed Event + */ + "timeline-committed-event": { + event?: string; + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + node_id: string; + /** Format: uri */ + url: string; + /** @description Identifying information for the git-user */ + author: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** @description Identifying information for the git-user */ + committer: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + tree: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + }; + parents: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string | null; + payload: string | null; + }; + /** Format: uri */ + html_url: string; + }; + /** + * Timeline Reviewed Event + * @description Timeline Reviewed Event + */ + "timeline-reviewed-event": { + event: string; + /** + * @description Unique identifier of the review + * @example 42 + */ + id: number; + /** @example MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= */ + node_id: string; + user: components["schemas"]["simple-user"]; + /** + * @description The text of the review. + * @example This looks great. + */ + body: string | null; + /** @example CHANGES_REQUESTED */ + state: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/12 + */ + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + /** Format: date-time */ + submitted_at?: string; + /** + * @description A commit SHA for the review. + * @example 54bb654c9e6025347f57900a4a5c2313a96b8035 + */ + commit_id: string; + body_html?: string; + body_text?: string; + author_association: components["schemas"]["author-association"]; + }; + /** + * Pull Request Review Comment + * @description Pull Request Review Comments are comments on a portion of the Pull Request's diff. + */ + "pull-request-review-comment": { + /** + * @description URL for the pull request review comment + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + */ + url: string; + /** + * @description The ID of the pull request review to which the comment belongs. + * @example 42 + */ + pull_request_review_id: number | null; + /** + * @description The ID of the pull request review comment. + * @example 1 + */ + id: number; + /** + * @description The node ID of the pull request review comment. + * @example MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw + */ + node_id: string; + /** + * @description The diff of the line that the comment refers to. + * @example @@ -16,33 +16,40 @@ public class Connection : IConnection... + */ + diff_hunk: string; + /** + * @description The relative path of the file to which the comment applies. + * @example config/database.yaml + */ + path: string; + /** + * @description The line index in the diff to which the comment applies. This field is deprecated; use `line` instead. + * @example 1 + */ + position?: number; + /** + * @description The index of the original line in the diff to which the comment applies. This field is deprecated; use `original_line` instead. + * @example 4 + */ + original_position?: number; + /** + * @description The SHA of the commit to which the comment applies. + * @example 6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + commit_id: string; + /** + * @description The SHA of the original commit to which the comment applies. + * @example 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 + */ + original_commit_id: string; + /** + * @description The comment ID to reply to. + * @example 8 + */ + in_reply_to_id?: number; + user: components["schemas"]["simple-user"]; + /** + * @description The text of the comment. + * @example We should probably include a check for null values here. + */ + body: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + * @example https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + */ + html_url: string; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1 + */ + pull_request_url: string; + author_association: components["schemas"]["author-association"]; + _links: { + self: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + */ + href: string; + }; + html: { + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + */ + href: string; + }; + pull_request: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1 + */ + href: string; + }; + }; + /** + * @description The first line of the range for a multi-line comment. + * @example 2 + */ + start_line?: number | null; + /** + * @description The first line of the range for a multi-line comment. + * @example 2 + */ + original_start_line?: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side?: "LEFT" | "RIGHT" | null; + /** + * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + line?: number; + /** + * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + original_line?: number; + /** + * @description The side of the diff to which the comment applies. The side of the last line of the range for a multi-line comment + * @default RIGHT + * @enum {string} + */ + side?: "LEFT" | "RIGHT"; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + reactions?: components["schemas"]["reaction-rollup"]; + /** @example "

comment body

" */ + body_html?: string; + /** @example "comment body" */ + body_text?: string; + }; + /** + * Timeline Line Commented Event + * @description Timeline Line Commented Event + */ + "timeline-line-commented-event": { + event?: string; + node_id?: string; + comments?: components["schemas"]["pull-request-review-comment"][]; + }; + /** + * Timeline Commit Commented Event + * @description Timeline Commit Commented Event + */ + "timeline-commit-commented-event": { + event?: string; + node_id?: string; + commit_id?: string; + comments?: components["schemas"]["commit-comment"][]; + }; + /** + * Timeline Assigned Issue Event + * @description Timeline Assigned Issue Event + */ + "timeline-assigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + assignee: components["schemas"]["simple-user"]; + }; + /** + * Timeline Unassigned Issue Event + * @description Timeline Unassigned Issue Event + */ + "timeline-unassigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + assignee: components["schemas"]["simple-user"]; + }; + /** + * State Change Issue Event + * @description State Change Issue Event + */ + "state-change-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + state_reason?: string | null; + }; + /** + * Timeline Event + * @description Timeline Event + */ + "timeline-issue-events": + | components["schemas"]["labeled-issue-event"] + | components["schemas"]["unlabeled-issue-event"] + | components["schemas"]["milestoned-issue-event"] + | components["schemas"]["demilestoned-issue-event"] + | components["schemas"]["renamed-issue-event"] + | components["schemas"]["review-requested-issue-event"] + | components["schemas"]["review-request-removed-issue-event"] + | components["schemas"]["review-dismissed-issue-event"] + | components["schemas"]["locked-issue-event"] + | components["schemas"]["added-to-project-issue-event"] + | components["schemas"]["moved-column-in-project-issue-event"] + | components["schemas"]["removed-from-project-issue-event"] + | components["schemas"]["converted-note-to-issue-issue-event"] + | components["schemas"]["timeline-comment-event"] + | components["schemas"]["timeline-cross-referenced-event"] + | components["schemas"]["timeline-committed-event"] + | components["schemas"]["timeline-reviewed-event"] + | components["schemas"]["timeline-line-commented-event"] + | components["schemas"]["timeline-commit-commented-event"] + | components["schemas"]["timeline-assigned-issue-event"] + | components["schemas"]["timeline-unassigned-issue-event"] + | components["schemas"]["state-change-issue-event"]; + /** + * Deploy Key + * @description An SSH key granting access to a single repository. + */ + "deploy-key": { + id: number; + key: string; + url: string; + title: string; + verified: boolean; + created_at: string; + read_only: boolean; + added_by?: string | null; + last_used?: string | null; + }; + /** + * Language + * @description Language + */ + language: { + [key: string]: number; + }; + /** + * License Content + * @description License Content + */ + "license-content": { + name: string; + path: string; + sha: string; + size: number; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + download_url: string | null; + type: string; + content: string; + encoding: string; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + license: components["schemas"]["nullable-license-simple"]; + }; + /** + * Merged upstream + * @description Results of a successful merge upstream request + */ + "merged-upstream": { + message?: string; + /** @enum {string} */ + merge_type?: "merge" | "fast-forward" | "none"; + base_branch?: string; + }; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1 + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/milestones/v1.0 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + */ + labels_url: string; + /** @example 1002604 */ + id: number; + /** @example MDk6TWlsZXN0b25lMTAwMjYwNA== */ + node_id: string; + /** + * @description The number of the milestone. + * @example 42 + */ + number: number; + /** + * @description The state of the milestone. + * @default open + * @example open + * @enum {string} + */ + state: "open" | "closed"; + /** + * @description The title of the milestone. + * @example v1.0 + */ + title: string; + /** @example Tracking milestone for version 1.0 */ + description: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** @example 4 */ + open_issues: number; + /** @example 8 */ + closed_issues: number; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2013-02-12T13:22:01Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2012-10-09T23:39:01Z + */ + due_on: string | null; + }; + /** Pages Source Hash */ + "pages-source-hash": { + branch: string; + path: string; + }; + /** Pages Https Certificate */ + "pages-https-certificate": { + /** + * @example approved + * @enum {string} + */ + state: + | "new" + | "authorization_created" + | "authorization_pending" + | "authorized" + | "authorization_revoked" + | "issued" + | "uploaded" + | "approved" + | "errored" + | "bad_authz" + | "destroy_pending" + | "dns_changed"; + /** @example Certificate is approved */ + description: string; + /** + * @description Array of the domain set and its alternate name (if it is configured) + * @example [ + * "example.com", + * "www.example.com" + * ] + */ + domains: string[]; + /** Format: date */ + expires_at?: string; + }; + /** + * GitHub Pages + * @description The configuration for GitHub Pages for a repository. + */ + page: { + /** + * Format: uri + * @description The API address for accessing this Page resource. + * @example https://api.github.com/repos/github/hello-world/pages + */ + url: string; + /** + * @description The status of the most recent build of the Page. + * @example built + * @enum {string|null} + */ + status: "built" | "building" | "errored" | null; + /** + * @description The Pages site's custom domain + * @example example.com + */ + cname: string | null; + /** + * @description The state if the domain is verified + * @example pending + * @enum {string|null} + */ + protected_domain_state?: "pending" | "verified" | "unverified" | null; + /** + * Format: date-time + * @description The timestamp when a pending domain becomes unverified. + */ + pending_domain_unverified_at?: string | null; + /** + * @description Whether the Page has a custom 404 page. + * @default false + * @example false + */ + custom_404: boolean; + /** + * Format: uri + * @description The web address the Page can be accessed from. + * @example https://example.com + */ + html_url?: string; + /** + * @description The process in which the Page will be built. + * @example legacy + * @enum {string|null} + */ + build_type?: "legacy" | "workflow" | null; + source?: components["schemas"]["pages-source-hash"]; + /** + * @description Whether the GitHub Pages site is publicly visible. If set to `true`, the site is accessible to anyone on the internet. If set to `false`, the site will only be accessible to users who have at least `read` access to the repository that published the site. + * @example true + */ + public: boolean; + https_certificate?: components["schemas"]["pages-https-certificate"]; + /** + * @description Whether https is enabled on the domain + * @example true + */ + https_enforced?: boolean; + }; + /** + * Page Build + * @description Page Build + */ + "page-build": { + /** Format: uri */ + url: string; + status: string; + error: { + message: string | null; + }; + pusher: components["schemas"]["nullable-simple-user"]; + commit: string; + duration: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Page Build Status + * @description Page Build Status + */ + "page-build-status": { + /** + * Format: uri + * @example https://api.github.com/repos/github/hello-world/pages/builds/latest + */ + url: string; + /** @example queued */ + status: string; + }; + /** + * GitHub Pages + * @description The GitHub Pages deployment status. + */ + "page-deployment": { + /** @description The ID of the GitHub Pages deployment. This is the Git SHA of the deployed commit. */ + id: number | string; + /** + * Format: uri + * @description The URI to monitor GitHub Pages deployment status. + * @example https://api.github.com/repos/github/hello-world/pages/deployments/4fd754f7e594640989b406850d0bc8f06a121251 + */ + status_url: string; + /** + * Format: uri + * @description The URI to the deployed GitHub Pages. + * @example hello-world.github.io + */ + page_url: string; + /** + * Format: uri + * @description The URI to the deployed GitHub Pages preview. + * @example monalisa-1231a2312sa32-23sda74.drafts.github.io + */ + preview_url?: string; + }; + /** GitHub Pages deployment status */ + "pages-deployment-status": { + /** + * @description The current status of the deployment. + * @enum {string} + */ + status?: + | "deployment_in_progress" + | "syncing_files" + | "finished_file_sync" + | "updating_pages" + | "purging_cdn" + | "deployment_cancelled" + | "deployment_failed" + | "deployment_content_failed" + | "deployment_attempt_error" + | "deployment_lost" + | "succeed"; + }; + /** + * Pages Health Check Status + * @description Pages Health Check Status + */ + "pages-health-check": { + domain?: { + host?: string; + uri?: string; + nameservers?: string; + dns_resolves?: boolean; + is_proxied?: boolean | null; + is_cloudflare_ip?: boolean | null; + is_fastly_ip?: boolean | null; + is_old_ip_address?: boolean | null; + is_a_record?: boolean | null; + has_cname_record?: boolean | null; + has_mx_records_present?: boolean | null; + is_valid_domain?: boolean; + is_apex_domain?: boolean; + should_be_a_record?: boolean | null; + is_cname_to_github_user_domain?: boolean | null; + is_cname_to_pages_dot_github_dot_com?: boolean | null; + is_cname_to_fastly?: boolean | null; + is_pointed_to_github_pages_ip?: boolean | null; + is_non_github_pages_ip_present?: boolean | null; + is_pages_domain?: boolean; + is_served_by_pages?: boolean | null; + is_valid?: boolean; + reason?: string | null; + responds_to_https?: boolean; + enforces_https?: boolean; + https_error?: string | null; + is_https_eligible?: boolean | null; + caa_error?: string | null; + }; + alt_domain?: { + host?: string; + uri?: string; + nameservers?: string; + dns_resolves?: boolean; + is_proxied?: boolean | null; + is_cloudflare_ip?: boolean | null; + is_fastly_ip?: boolean | null; + is_old_ip_address?: boolean | null; + is_a_record?: boolean | null; + has_cname_record?: boolean | null; + has_mx_records_present?: boolean | null; + is_valid_domain?: boolean; + is_apex_domain?: boolean; + should_be_a_record?: boolean | null; + is_cname_to_github_user_domain?: boolean | null; + is_cname_to_pages_dot_github_dot_com?: boolean | null; + is_cname_to_fastly?: boolean | null; + is_pointed_to_github_pages_ip?: boolean | null; + is_non_github_pages_ip_present?: boolean | null; + is_pages_domain?: boolean; + is_served_by_pages?: boolean | null; + is_valid?: boolean; + reason?: string | null; + responds_to_https?: boolean; + enforces_https?: boolean; + https_error?: string | null; + is_https_eligible?: boolean | null; + caa_error?: string | null; + } | null; + }; + /** + * Pull Request + * @description Pull requests let you tell others about changes you've pushed to a repository on GitHub. Once a pull request is sent, interested parties can review the set of changes, discuss potential modifications, and even push follow-up commits if necessary. + */ + "pull-request": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347 + */ + url: string; + /** @example 1 */ + id: number; + /** @example MDExOlB1bGxSZXF1ZXN0MQ== */ + node_id: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347 + */ + html_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.diff + */ + diff_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.patch + */ + patch_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + */ + commits_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + */ + review_comments_url: string; + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} */ + review_comment_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + */ + comments_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + statuses_url: string; + /** + * @description Number uniquely identifying the pull request within its repository. + * @example 42 + */ + number: number; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @example open + * @enum {string} + */ + state: "open" | "closed"; + /** @example true */ + locked: boolean; + /** + * @description The title of the pull request. + * @example Amazing new feature + */ + title: string; + user: components["schemas"]["simple-user"]; + /** @example Please pull these awesome changes */ + body: string | null; + labels: { + /** Format: int64 */ + id: number; + node_id: string; + url: string; + name: string; + description: string | null; + color: string; + default: boolean; + }[]; + milestone: components["schemas"]["nullable-milestone"]; + /** @example too heated */ + active_lock_reason?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + merged_at: string | null; + /** @example e5bd3914e2e596debea16f433f57875b5b90bcd6 */ + merge_commit_sha: string | null; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + requested_reviewers?: components["schemas"]["simple-user"][] | null; + requested_teams?: components["schemas"]["team-simple"][] | null; + head: { + label: string; + ref: string; + repo: { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + milestones_url: string; + name: string; + notifications_url: string; + owner: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + private: boolean; + pulls_url: string; + releases_url: string; + /** Format: uri */ + stargazers_url: string; + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + trees_url: string; + /** Format: uri */ + url: string; + clone_url: string; + default_branch: string; + forks: number; + forks_count: number; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_discussions: boolean; + /** Format: uri */ + homepage: string | null; + language: string | null; + master_branch?: string; + archived: boolean; + disabled: boolean; + /** @description The repository visibility: public, private, or internal. */ + visibility?: string; + /** Format: uri */ + mirror_url: string | null; + open_issues: number; + open_issues_count: number; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + license: { + key: string; + name: string; + /** Format: uri */ + url: string | null; + spdx_id: string | null; + node_id: string; + } | null; + /** Format: date-time */ + pushed_at: string; + size: number; + ssh_url: string; + stargazers_count: number; + /** Format: uri */ + svn_url: string; + topics?: string[]; + watchers: number; + watchers_count: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + allow_forking?: boolean; + is_template?: boolean; + web_commit_signoff_required?: boolean; + } | null; + sha: string; + user: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + }; + base: { + label: string; + ref: string; + repo: { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + id: number; + is_template?: boolean; + node_id: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + milestones_url: string; + name: string; + notifications_url: string; + owner: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + private: boolean; + pulls_url: string; + releases_url: string; + /** Format: uri */ + stargazers_url: string; + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + trees_url: string; + /** Format: uri */ + url: string; + clone_url: string; + default_branch: string; + forks: number; + forks_count: number; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_discussions: boolean; + /** Format: uri */ + homepage: string | null; + language: string | null; + master_branch?: string; + archived: boolean; + disabled: boolean; + /** @description The repository visibility: public, private, or internal. */ + visibility?: string; + /** Format: uri */ + mirror_url: string | null; + open_issues: number; + open_issues_count: number; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + license: components["schemas"]["nullable-license-simple"]; + /** Format: date-time */ + pushed_at: string; + size: number; + ssh_url: string; + stargazers_count: number; + /** Format: uri */ + svn_url: string; + topics?: string[]; + watchers: number; + watchers_count: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + allow_forking?: boolean; + web_commit_signoff_required?: boolean; + }; + sha: string; + user: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + }; + _links: { + comments: components["schemas"]["link"]; + commits: components["schemas"]["link"]; + statuses: components["schemas"]["link"]; + html: components["schemas"]["link"]; + issue: components["schemas"]["link"]; + review_comments: components["schemas"]["link"]; + review_comment: components["schemas"]["link"]; + self: components["schemas"]["link"]; + }; + author_association: components["schemas"]["author-association"]; + auto_merge: components["schemas"]["auto-merge"]; + /** + * @description Indicates whether or not the pull request is a draft. + * @example false + */ + draft?: boolean; + merged: boolean; + /** @example true */ + mergeable: boolean | null; + /** @example true */ + rebaseable?: boolean | null; + /** @example clean */ + mergeable_state: string; + merged_by: components["schemas"]["nullable-simple-user"]; + /** @example 10 */ + comments: number; + /** @example 0 */ + review_comments: number; + /** + * @description Indicates whether maintainers can modify the pull request. + * @example true + */ + maintainer_can_modify: boolean; + /** @example 3 */ + commits: number; + /** @example 100 */ + additions: number; + /** @example 3 */ + deletions: number; + /** @example 5 */ + changed_files: number; + }; + /** + * Pull Request Merge Result + * @description Pull Request Merge Result + */ + "pull-request-merge-result": { + sha: string; + merged: boolean; + message: string; + }; + /** + * Pull Request Review Request + * @description Pull Request Review Request + */ + "pull-request-review-request": { + users: components["schemas"]["simple-user"][]; + teams: components["schemas"]["team"][]; + }; + /** + * Pull Request Review + * @description Pull Request Reviews are reviews on pull requests. + */ + "pull-request-review": { + /** + * @description Unique identifier of the review + * @example 42 + */ + id: number; + /** @example MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= */ + node_id: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description The text of the review. + * @example This looks great. + */ + body: string; + /** @example CHANGES_REQUESTED */ + state: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/12 + */ + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + /** Format: date-time */ + submitted_at?: string; + /** + * @description A commit SHA for the review. If the commit object was garbage collected or forcibly deleted, then it no longer exists in Git and this value will be `null`. + * @example 54bb654c9e6025347f57900a4a5c2313a96b8035 + */ + commit_id: string | null; + body_html?: string; + body_text?: string; + author_association: components["schemas"]["author-association"]; + }; + /** + * Legacy Review Comment + * @description Legacy Review Comment + */ + "review-comment": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + */ + url: string; + /** @example 42 */ + pull_request_review_id: number | null; + /** @example 10 */ + id: number; + /** @example MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw */ + node_id: string; + /** @example @@ -16,33 +16,40 @@ public class Connection : IConnection... */ + diff_hunk: string; + /** @example file1.txt */ + path: string; + /** @example 1 */ + position: number | null; + /** @example 4 */ + original_position: number; + /** @example 6dcb09b5b57875f334f61aebed695e2e4193db5e */ + commit_id: string; + /** @example 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 */ + original_commit_id: string; + /** @example 8 */ + in_reply_to_id?: number; + user: components["schemas"]["nullable-simple-user"]; + /** @example Great stuff */ + body: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1 + */ + pull_request_url: string; + author_association: components["schemas"]["author-association"]; + _links: { + self: components["schemas"]["link"]; + html: components["schemas"]["link"]; + pull_request: components["schemas"]["link"]; + }; + body_text?: string; + body_html?: string; + reactions?: components["schemas"]["reaction-rollup"]; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string} + */ + side?: "LEFT" | "RIGHT"; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side?: "LEFT" | "RIGHT" | null; + /** + * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + line?: number; + /** + * @description The original line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + original_line?: number; + /** + * @description The first line of the range for a multi-line comment. + * @example 2 + */ + start_line?: number | null; + /** + * @description The original first line of the range for a multi-line comment. + * @example 2 + */ + original_start_line?: number | null; + }; + /** + * Release Asset + * @description Data related to a release. + */ + "release-asset": { + /** Format: uri */ + url: string; + /** Format: uri */ + browser_download_url: string; + id: number; + node_id: string; + /** + * @description The file name of the asset. + * @example Team Environment + */ + name: string; + label: string | null; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded" | "open"; + content_type: string; + size: number; + download_count: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + uploader: components["schemas"]["nullable-simple-user"]; + }; + /** + * Release + * @description A release. + */ + release: { + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + assets_url: string; + upload_url: string; + /** Format: uri */ + tarball_url: string | null; + /** Format: uri */ + zipball_url: string | null; + id: number; + node_id: string; + /** + * @description The name of the tag. + * @example v1.0.0 + */ + tag_name: string; + /** + * @description Specifies the commitish value that determines where the Git tag is created from. + * @example master + */ + target_commitish: string; + name: string | null; + body?: string | null; + /** + * @description true to create a draft (unpublished) release, false to create a published one. + * @example false + */ + draft: boolean; + /** + * @description Whether to identify the release as a prerelease or a full release. + * @example false + */ + prerelease: boolean; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + published_at: string | null; + author: components["schemas"]["simple-user"]; + assets: components["schemas"]["release-asset"][]; + body_html?: string; + body_text?: string; + mentions_count?: number; + /** + * Format: uri + * @description The URL of the release discussion. + */ + discussion_url?: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Generated Release Notes Content + * @description Generated name and body describing a release + */ + "release-notes-content": { + /** + * @description The generated name of the release + * @example Release v1.0.0 is now available! + */ + name: string; + /** @description The generated body describing the contents of the release supporting markdown formatting */ + body: string; + }; + /** + * repository ruleset data for rule + * @description User-defined metadata to store domain-specific information limited to 8 keys with scalar values. + */ + "repository-rule-ruleset-info": { + /** + * @description The type of source for the ruleset that includes this rule. + * @enum {string} + */ + ruleset_source_type?: "Repository" | "Organization"; + /** @description The name of the source of the ruleset that includes this rule. */ + ruleset_source?: string; + /** @description The ID of the ruleset that includes this rule. */ + ruleset_id?: number; + }; + /** + * Repository Rule + * @description A repository rule with ruleset details. + */ + "repository-rule-detailed": + | (components["schemas"]["repository-rule-creation"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-update"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-deletion"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-required-linear-history"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-required-deployments"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-required-signatures"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-pull-request"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-required-status-checks"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-non-fast-forward"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-commit-message-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-commit-author-email-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-committer-email-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-branch-name-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-tag-name-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-workflows"] & + components["schemas"]["repository-rule-ruleset-info"]); + "secret-scanning-alert": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["nullable-alert-updated-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + /** + * Format: uri + * @description The REST API URL of the code locations for this alert. + */ + locations_url?: string; + state?: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + /** + * Format: date-time + * @description The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + resolved_at?: string | null; + resolved_by?: components["schemas"]["nullable-simple-user"]; + /** @description An optional comment to resolve an alert. */ + resolution_comment?: string | null; + /** @description The type of secret that secret scanning detected. */ + secret_type?: string; + /** + * @description User-friendly name for the detected secret, matching the `secret_type`. + * For a list of built-in patterns, see "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)." + */ + secret_type_display_name?: string; + /** @description The secret that was detected. */ + secret?: string; + /** @description Whether push protection was bypassed for the detected secret. */ + push_protection_bypassed?: boolean | null; + push_protection_bypassed_by?: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + push_protection_bypassed_at?: string | null; + /** + * @description The token status as of the latest validity check. + * @enum {string} + */ + validity?: "active" | "inactive" | "unknown"; + }; + /** @description An optional comment when closing an alert. Cannot be updated or deleted. Must be `null` when changing `state` to `open`. */ + "secret-scanning-alert-resolution-comment": string | null; + /** @description Represents a 'commit' secret scanning location type. This location type shows that a secret was detected inside a commit to a repository. */ + "secret-scanning-location-commit": { + /** + * @description The file path in the repository + * @example /example/secrets.txt + */ + path: string; + /** @description Line number at which the secret starts in the file */ + start_line: number; + /** @description Line number at which the secret ends in the file */ + end_line: number; + /** @description The column at which the secret starts within the start line when the file is interpreted as 8BIT ASCII */ + start_column: number; + /** @description The column at which the secret ends within the end line when the file is interpreted as 8BIT ASCII */ + end_column: number; + /** + * @description SHA-1 hash ID of the associated blob + * @example af5626b4a114abcb82d63db7c8082c3c4756e51b + */ + blob_sha: string; + /** @description The API URL to get the associated blob resource */ + blob_url: string; + /** + * @description SHA-1 hash ID of the associated commit + * @example af5626b4a114abcb82d63db7c8082c3c4756e51b + */ + commit_sha: string; + /** @description The API URL to get the associated commit resource */ + commit_url: string; + }; + /** @description Represents an 'issue_title' secret scanning location type. This location type shows that a secret was detected in the title of an issue. */ + "secret-scanning-location-issue-title": { + /** + * Format: uri + * @description The API URL to get the issue where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_title_url: string; + }; + /** @description Represents an 'issue_body' secret scanning location type. This location type shows that a secret was detected in the body of an issue. */ + "secret-scanning-location-issue-body": { + /** + * Format: uri + * @description The API URL to get the issue where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_body_url: string; + }; + /** @description Represents an 'issue_comment' secret scanning location type. This location type shows that a secret was detected in a comment on an issue. */ + "secret-scanning-location-issue-comment": { + /** + * Format: uri + * @description The API URL to get the issue comment where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/issues/comments/1081119451 + */ + issue_comment_url: string; + }; + /** @description Represents a 'discussion_title' secret scanning location type. This location type shows that a secret was detected in the title of a discussion. */ + "secret-scanning-location-discussion-title": { + /** + * Format: uri + * @description The URL to the discussion where the secret was detected. + * @example https://github.com/community/community/discussions/39082 + */ + discussion_title_url: string; + }; + /** @description Represents a 'discussion_body' secret scanning location type. This location type shows that a secret was detected in the body of a discussion. */ + "secret-scanning-location-discussion-body": { + /** + * Format: uri + * @description The URL to the discussion where the secret was detected. + * @example https://github.com/community/community/discussions/39082#discussion-4566270 + */ + discussion_body_url: string; + }; + /** @description Represents a 'discussion_comment' secret scanning location type. This location type shows that a secret was detected in a comment on a discussion. */ + "secret-scanning-location-discussion-comment": { + /** + * Format: uri + * @description The API URL to get the discussion comment where the secret was detected. + * @example https://github.com/community/community/discussions/39082#discussioncomment-4158232 + */ + discussion_comment_url: string; + }; + /** @description Represents a 'pull_request_title' secret scanning location type. This location type shows that a secret was detected in the title of a pull request. */ + "secret-scanning-location-pull-request-title": { + /** + * Format: uri + * @description The API URL to get the pull request where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/pull/2846 + */ + pull_request_title_url: string; + }; + /** @description Represents a 'pull_request_body' secret scanning location type. This location type shows that a secret was detected in the body of a pull request. */ + "secret-scanning-location-pull-request-body": { + /** + * Format: uri + * @description The API URL to get the pull request where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/pull/2846 + */ + pull_request_body_url: string; + }; + /** @description Represents a 'pull_request_comment' secret scanning location type. This location type shows that a secret was detected in a comment on a pull request. */ + "secret-scanning-location-pull-request-comment": { + /** + * Format: uri + * @description The API URL to get the pull request comment where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/issues/comments/1081119451 + */ + pull_request_comment_url: string; + }; + /** @description Represents a 'pull_request_review' secret scanning location type. This location type shows that a secret was detected in a review on a pull request. */ + "secret-scanning-location-pull-request-review": { + /** + * Format: uri + * @description The API URL to get the pull request review where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/pulls/2846/reviews/80 + */ + pull_request_review_url: string; + }; + /** @description Represents a 'pull_request_review_comment' secret scanning location type. This location type shows that a secret was detected in a review comment on a pull request. */ + "secret-scanning-location-pull-request-review-comment": { + /** + * Format: uri + * @description The API URL to get the pull request review comment where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/12 + */ + pull_request_review_comment_url: string; + }; + "secret-scanning-location": { + /** + * @description The location type. Because secrets may be found in different types of resources (ie. code, comments, issues, pull requests, discussions), this field identifies the type of resource where the secret was found. + * @example commit + * @enum {string} + */ + type: + | "commit" + | "issue_title" + | "issue_body" + | "issue_comment" + | "discussion_title" + | "discussion_body" + | "discussion_comment" + | "pull_request_title" + | "pull_request_body" + | "pull_request_comment" + | "pull_request_review" + | "pull_request_review_comment"; + details: + | components["schemas"]["secret-scanning-location-commit"] + | components["schemas"]["secret-scanning-location-issue-title"] + | components["schemas"]["secret-scanning-location-issue-body"] + | components["schemas"]["secret-scanning-location-issue-comment"] + | components["schemas"]["secret-scanning-location-discussion-title"] + | components["schemas"]["secret-scanning-location-discussion-body"] + | components["schemas"]["secret-scanning-location-discussion-comment"] + | components["schemas"]["secret-scanning-location-pull-request-title"] + | components["schemas"]["secret-scanning-location-pull-request-body"] + | components["schemas"]["secret-scanning-location-pull-request-comment"] + | components["schemas"]["secret-scanning-location-pull-request-review"] + | components["schemas"]["secret-scanning-location-pull-request-review-comment"]; + }; + "repository-advisory-create": { + /** @description A short summary of the advisory. */ + summary: string; + /** @description A detailed description of what the advisory impacts. */ + description: string; + /** @description The Common Vulnerabilities and Exposures (CVE) ID. */ + cve_id?: string | null; + /** @description A product affected by the vulnerability detailed in a repository security advisory. */ + vulnerabilities: { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name?: string | null; + }; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range?: string | null; + /** @description The package version(s) that resolve the vulnerability. */ + patched_versions?: string | null; + /** @description The functions in the package that are affected. */ + vulnerable_functions?: string[] | null; + }[]; + /** @description A list of Common Weakness Enumeration (CWE) IDs. */ + cwe_ids?: string[] | null; + /** @description A list of users receiving credit for their participation in the security advisory. */ + credits?: + | { + /** @description The username of the user credited. */ + login: string; + type: components["schemas"]["security-advisory-credit-types"]; + }[] + | null; + /** + * @description The severity of the advisory. You must choose between setting this field or `cvss_vector_string`. + * @enum {string|null} + */ + severity?: "critical" | "high" | "medium" | "low" | null; + /** @description The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`. */ + cvss_vector_string?: string | null; + /** + * @description Whether to create a temporary private fork of the repository to collaborate on a fix. + * @default false + */ + start_private_fork?: boolean; + }; + "private-vulnerability-report-create": { + /** @description A short summary of the advisory. */ + summary: string; + /** @description A detailed description of what the advisory impacts. */ + description: string; + /** @description An array of products affected by the vulnerability detailed in a repository security advisory. */ + vulnerabilities?: + | { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name?: string | null; + }; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range?: string | null; + /** @description The package version(s) that resolve the vulnerability. */ + patched_versions?: string | null; + /** @description The functions in the package that are affected. */ + vulnerable_functions?: string[] | null; + }[] + | null; + /** @description A list of Common Weakness Enumeration (CWE) IDs. */ + cwe_ids?: string[] | null; + /** + * @description The severity of the advisory. You must choose between setting this field or `cvss_vector_string`. + * @enum {string|null} + */ + severity?: "critical" | "high" | "medium" | "low" | null; + /** @description The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`. */ + cvss_vector_string?: string | null; + /** + * @description Whether to create a temporary private fork of the repository to collaborate on a fix. + * @default false + */ + start_private_fork?: boolean; + }; + "repository-advisory-update": { + /** @description A short summary of the advisory. */ + summary?: string; + /** @description A detailed description of what the advisory impacts. */ + description?: string; + /** @description The Common Vulnerabilities and Exposures (CVE) ID. */ + cve_id?: string | null; + /** @description A product affected by the vulnerability detailed in a repository security advisory. */ + vulnerabilities?: { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name?: string | null; + }; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range?: string | null; + /** @description The package version(s) that resolve the vulnerability. */ + patched_versions?: string | null; + /** @description The functions in the package that are affected. */ + vulnerable_functions?: string[] | null; + }[]; + /** @description A list of Common Weakness Enumeration (CWE) IDs. */ + cwe_ids?: string[] | null; + /** @description A list of users receiving credit for their participation in the security advisory. */ + credits?: + | { + /** @description The username of the user credited. */ + login: string; + type: components["schemas"]["security-advisory-credit-types"]; + }[] + | null; + /** + * @description The severity of the advisory. You must choose between setting this field or `cvss_vector_string`. + * @enum {string|null} + */ + severity?: "critical" | "high" | "medium" | "low" | null; + /** @description The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`. */ + cvss_vector_string?: string | null; + /** + * @description The state of the advisory. + * @enum {string} + */ + state?: "published" | "closed" | "draft"; + /** @description A list of usernames who have been granted write access to the advisory. */ + collaborating_users?: string[] | null; + /** @description A list of team slugs which have been granted write access to the advisory. */ + collaborating_teams?: string[] | null; + }; + /** + * Stargazer + * @description Stargazer + */ + stargazer: { + /** Format: date-time */ + starred_at: string; + user: components["schemas"]["nullable-simple-user"]; + }; + /** + * Code Frequency Stat + * @description Code Frequency Stat + */ + "code-frequency-stat": number[]; + /** + * Commit Activity + * @description Commit Activity + */ + "commit-activity": { + /** + * @example [ + * 0, + * 3, + * 26, + * 20, + * 39, + * 1, + * 0 + * ] + */ + days: number[]; + /** @example 89 */ + total: number; + /** @example 1336280400 */ + week: number; + }; + /** + * Contributor Activity + * @description Contributor Activity + */ + "contributor-activity": { + author: components["schemas"]["nullable-simple-user"]; + /** @example 135 */ + total: number; + /** + * @example [ + * { + * "w": "1367712000", + * "a": 6898, + * "d": 77, + * "c": 10 + * } + * ] + */ + weeks: { + w?: number; + a?: number; + d?: number; + c?: number; + }[]; + }; + /** Participation Stats */ + "participation-stats": { + all: number[]; + owner: number[]; + }; + /** + * Repository Invitation + * @description Repository invitations let you manage who you collaborate with. + */ + "repository-subscription": { + /** + * @description Determines if notifications should be received from this repository. + * @example true + */ + subscribed: boolean; + /** @description Determines if all notifications should be blocked from this repository. */ + ignored: boolean; + reason: string | null; + /** + * Format: date-time + * @example 2012-10-06T21:34:12Z + */ + created_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/subscription + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + }; + /** + * Tag + * @description Tag + */ + tag: { + /** @example v0.1 */ + name: string; + commit: { + sha: string; + /** Format: uri */ + url: string; + }; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/zipball/v0.1 + */ + zipball_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/tarball/v0.1 + */ + tarball_url: string; + node_id: string; + }; + /** + * Tag protection + * @description Tag protection + */ + "tag-protection": { + /** @example 2 */ + id?: number; + /** @example 2011-01-26T19:01:12Z */ + created_at?: string; + /** @example 2011-01-26T19:01:12Z */ + updated_at?: string; + /** @example true */ + enabled?: boolean; + /** @example v1.* */ + pattern: string; + }; + /** + * Topic + * @description A topic aggregates entities that are related to a subject. + */ + topic: { + names: string[]; + }; + /** Traffic */ + traffic: { + /** Format: date-time */ + timestamp: string; + uniques: number; + count: number; + }; + /** + * Clone Traffic + * @description Clone Traffic + */ + "clone-traffic": { + /** @example 173 */ + count: number; + /** @example 128 */ + uniques: number; + clones: components["schemas"]["traffic"][]; + }; + /** + * Content Traffic + * @description Content Traffic + */ + "content-traffic": { + /** @example /github/hubot */ + path: string; + /** @example github/hubot: A customizable life embetterment robot. */ + title: string; + /** @example 3542 */ + count: number; + /** @example 2225 */ + uniques: number; + }; + /** + * Referrer Traffic + * @description Referrer Traffic + */ + "referrer-traffic": { + /** @example Google */ + referrer: string; + /** @example 4 */ + count: number; + /** @example 3 */ + uniques: number; + }; + /** + * View Traffic + * @description View Traffic + */ + "view-traffic": { + /** @example 14850 */ + count: number; + /** @example 3782 */ + uniques: number; + views: components["schemas"]["traffic"][]; + }; + /** Search Result Text Matches */ + "search-result-text-matches": { + object_url?: string; + object_type?: string | null; + property?: string; + fragment?: string; + matches?: { + text?: string; + indices?: number[]; + }[]; + }[]; + /** + * Code Search Result Item + * @description Code Search Result Item + */ + "code-search-result-item": { + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string; + /** Format: uri */ + html_url: string; + repository: components["schemas"]["minimal-repository"]; + score: number; + file_size?: number; + language?: string | null; + /** Format: date-time */ + last_modified_at?: string; + /** + * @example [ + * "73..77", + * "77..78" + * ] + */ + line_numbers?: string[]; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Commit Search Result Item + * @description Commit Search Result Item + */ + "commit-search-result-item": { + /** Format: uri */ + url: string; + sha: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + comments_url: string; + commit: { + author: { + name: string; + email: string; + /** Format: date-time */ + date: string; + }; + committer: components["schemas"]["nullable-git-user"]; + comment_count: number; + message: string; + tree: { + sha: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + url: string; + verification?: components["schemas"]["verification"]; + }; + author: components["schemas"]["nullable-simple-user"]; + committer: components["schemas"]["nullable-git-user"]; + parents: { + url?: string; + html_url?: string; + sha?: string; + }[]; + repository: components["schemas"]["minimal-repository"]; + score: number; + node_id: string; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Issue Search Result Item + * @description Issue Search Result Item + */ + "issue-search-result-item": { + /** Format: uri */ + url: string; + /** Format: uri */ + repository_url: string; + labels_url: string; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + node_id: string; + number: number; + title: string; + locked: boolean; + active_lock_reason?: string | null; + assignees?: components["schemas"]["simple-user"][] | null; + user: components["schemas"]["nullable-simple-user"]; + labels: { + /** Format: int64 */ + id?: number; + node_id?: string; + url?: string; + name?: string; + color?: string; + default?: boolean; + description?: string | null; + }[]; + state: string; + state_reason?: string | null; + assignee: components["schemas"]["nullable-simple-user"]; + milestone: components["schemas"]["nullable-milestone"]; + comments: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + closed_at: string | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + pull_request?: { + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + diff_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + patch_url: string | null; + /** Format: uri */ + url: string | null; + }; + body?: string; + score: number; + author_association: components["schemas"]["author-association"]; + draft?: boolean; + repository?: components["schemas"]["repository"]; + body_html?: string; + body_text?: string; + /** Format: uri */ + timeline_url?: string; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Label Search Result Item + * @description Label Search Result Item + */ + "label-search-result-item": { + id: number; + node_id: string; + /** Format: uri */ + url: string; + name: string; + color: string; + default: boolean; + description: string | null; + score: number; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Repo Search Result Item + * @description Repo Search Result Item + */ + "repo-search-result-item": { + id: number; + node_id: string; + name: string; + full_name: string; + owner: components["schemas"]["nullable-simple-user"]; + private: boolean; + /** Format: uri */ + html_url: string; + description: string | null; + fork: boolean; + /** Format: uri */ + url: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + pushed_at: string; + /** Format: uri */ + homepage: string | null; + size: number; + stargazers_count: number; + watchers_count: number; + language: string | null; + forks_count: number; + open_issues_count: number; + master_branch?: string; + default_branch: string; + score: number; + /** Format: uri */ + forks_url: string; + keys_url: string; + collaborators_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri */ + hooks_url: string; + issue_events_url: string; + /** Format: uri */ + events_url: string; + assignees_url: string; + branches_url: string; + /** Format: uri */ + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + /** Format: uri */ + merges_url: string; + archive_url: string; + /** Format: uri */ + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + releases_url: string; + /** Format: uri */ + deployments_url: string; + git_url: string; + ssh_url: string; + clone_url: string; + /** Format: uri */ + svn_url: string; + forks: number; + open_issues: number; + watchers: number; + topics?: string[]; + /** Format: uri */ + mirror_url: string | null; + has_issues: boolean; + has_projects: boolean; + has_pages: boolean; + has_wiki: boolean; + has_downloads: boolean; + has_discussions?: boolean; + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** @description The repository visibility: public, private, or internal. */ + visibility?: string; + license: components["schemas"]["nullable-license-simple"]; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + text_matches?: components["schemas"]["search-result-text-matches"]; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + allow_auto_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_forking?: boolean; + is_template?: boolean; + /** @example false */ + web_commit_signoff_required?: boolean; + }; + /** + * Topic Search Result Item + * @description Topic Search Result Item + */ + "topic-search-result-item": { + name: string; + display_name: string | null; + short_description: string | null; + description: string | null; + created_by: string | null; + released: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + featured: boolean; + curated: boolean; + score: number; + repository_count?: number | null; + /** Format: uri */ + logo_url?: string | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + related?: + | { + topic_relation?: { + id?: number; + name?: string; + topic_id?: number; + relation_type?: string; + }; + }[] + | null; + aliases?: + | { + topic_relation?: { + id?: number; + name?: string; + topic_id?: number; + relation_type?: string; + }; + }[] + | null; + }; + /** + * User Search Result Item + * @description User Search Result Item + */ + "user-search-result-item": { + login: string; + id: number; + node_id: string; + /** Format: uri */ + avatar_url: string; + gravatar_id: string | null; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + followers_url: string; + /** Format: uri */ + subscriptions_url: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + repos_url: string; + /** Format: uri */ + received_events_url: string; + type: string; + score: number; + following_url: string; + gists_url: string; + starred_url: string; + events_url: string; + public_repos?: number; + public_gists?: number; + followers?: number; + following?: number; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + updated_at?: string; + name?: string | null; + bio?: string | null; + /** Format: email */ + email?: string | null; + location?: string | null; + site_admin: boolean; + hireable?: boolean | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + blog?: string | null; + company?: string | null; + /** Format: date-time */ + suspended_at?: string | null; + }; + /** + * Private User + * @description Private User + */ + "private-user": { + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example monalisa octocat */ + name: string | null; + /** @example GitHub */ + company: string | null; + /** @example https://github.com/blog */ + blog: string | null; + /** @example San Francisco */ + location: string | null; + /** + * Format: email + * @example octocat@github.com + */ + email: string | null; + hireable: boolean | null; + /** @example There once was... */ + bio: string | null; + /** @example monalisa */ + twitter_username?: string | null; + /** @example 2 */ + public_repos: number; + /** @example 1 */ + public_gists: number; + /** @example 20 */ + followers: number; + /** @example 0 */ + following: number; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + created_at: string; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + updated_at: string; + /** @example 81 */ + private_gists: number; + /** @example 100 */ + total_private_repos: number; + /** @example 100 */ + owned_private_repos: number; + /** @example 10000 */ + disk_usage: number; + /** @example 8 */ + collaborators: number; + /** @example true */ + two_factor_authentication: boolean; + plan?: { + collaborators: number; + name: string; + space: number; + private_repos: number; + }; + /** Format: date-time */ + suspended_at?: string | null; + business_plus?: boolean; + ldap_dn?: string; + }; + /** + * Codespaces Secret + * @description Secrets for a GitHub Codespace. + */ + "codespaces-secret": { + /** + * @description The name of the secret + * @example SECRET_NAME + */ + name: string; + /** + * Format: date-time + * @description The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the secret was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + updated_at: string; + /** + * @description The type of repositories in the organization that the secret is visible to + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @description The API URL at which the list of repositories this secret is visible to can be retrieved + * @example https://api.github.com/user/secrets/SECRET_NAME/repositories + */ + selected_repositories_url: string; + }; + /** + * CodespacesUserPublicKey + * @description The public key used for setting user Codespaces' Secrets. + */ + "codespaces-user-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + }; + /** + * Fetches information about an export of a codespace. + * @description An export of a codespace. Also, latest export details for a codespace can be fetched with id = latest + */ + "codespace-export-details": { + /** + * @description State of the latest export + * @example succeeded | failed | in_progress + */ + state?: string | null; + /** + * Format: date-time + * @description Completion time of the last export operation + * @example 2021-01-01T19:01:12Z + */ + completed_at?: string | null; + /** + * @description Name of the exported branch + * @example codespace-monalisa-octocat-hello-world-g4wpq6h95q + */ + branch?: string | null; + /** + * @description Git commit SHA of the exported branch + * @example fd95a81ca01e48ede9f39c799ecbcef817b8a3b2 + */ + sha?: string | null; + /** + * @description Id for the export details + * @example latest + */ + id?: string; + /** + * @description Url for fetching export details + * @example https://api.github.com/user/codespaces/:name/exports/latest + */ + export_url?: string; + /** + * @description Web url for the exported branch + * @example https://github.com/octocat/hello-world/tree/:branch + */ + html_url?: string | null; + }; + /** + * Codespace + * @description A codespace. + */ + "codespace-with-full-repository": { + /** @example 1 */ + id: number; + /** + * @description Automatically generated name of this codespace. + * @example monalisa-octocat-hello-world-g4wpq6h95q + */ + name: string; + /** + * @description Display name for this codespace. + * @example bookish space pancake + */ + display_name?: string | null; + /** + * @description UUID identifying this codespace's environment. + * @example 26a7c758-7299-4a73-b978-5a92a7ae98a0 + */ + environment_id: string | null; + owner: components["schemas"]["simple-user"]; + billable_owner: components["schemas"]["simple-user"]; + repository: components["schemas"]["full-repository"]; + machine: components["schemas"]["nullable-codespace-machine"]; + /** + * @description Path to devcontainer.json from repo root used to create Codespace. + * @example .devcontainer/example/devcontainer.json + */ + devcontainer_path?: string | null; + /** + * @description Whether the codespace was created from a prebuild. + * @example false + */ + prebuild: boolean | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @description Last known time this codespace was started. + * @example 2011-01-26T19:01:12Z + */ + last_used_at: string; + /** + * @description State of this codespace. + * @example Available + * @enum {string} + */ + state: + | "Unknown" + | "Created" + | "Queued" + | "Provisioning" + | "Available" + | "Awaiting" + | "Unavailable" + | "Deleted" + | "Moved" + | "Shutdown" + | "Archived" + | "Starting" + | "ShuttingDown" + | "Failed" + | "Exporting" + | "Updating" + | "Rebuilding"; + /** + * Format: uri + * @description API URL for this codespace. + */ + url: string; + /** @description Details about the codespace's git repository. */ + git_status: { + /** + * @description The number of commits the local repository is ahead of the remote. + * @example 0 + */ + ahead?: number; + /** + * @description The number of commits the local repository is behind the remote. + * @example 0 + */ + behind?: number; + /** @description Whether the local repository has unpushed changes. */ + has_unpushed_changes?: boolean; + /** @description Whether the local repository has uncommitted changes. */ + has_uncommitted_changes?: boolean; + /** + * @description The current branch (or SHA if in detached HEAD state) of the local repository. + * @example main + */ + ref?: string; + }; + /** + * @description The initally assigned location of a new codespace. + * @example WestUs2 + * @enum {string} + */ + location: "EastUs" | "SouthEastAsia" | "WestEurope" | "WestUs2"; + /** + * @description The number of minutes of inactivity after which this codespace will be automatically stopped. + * @example 60 + */ + idle_timeout_minutes: number | null; + /** + * Format: uri + * @description URL to access this codespace on the web. + */ + web_url: string; + /** + * Format: uri + * @description API URL to access available alternate machine types for this codespace. + */ + machines_url: string; + /** + * Format: uri + * @description API URL to start this codespace. + */ + start_url: string; + /** + * Format: uri + * @description API URL to stop this codespace. + */ + stop_url: string; + /** + * Format: uri + * @description API URL to publish this codespace to a new repository. + */ + publish_url?: string | null; + /** + * Format: uri + * @description API URL for the Pull Request associated with this codespace, if any. + */ + pulls_url: string | null; + recent_folders: string[]; + runtime_constraints?: { + /** @description The privacy settings a user can select from when forwarding a port. */ + allowed_port_privacy_settings?: string[] | null; + }; + /** @description Whether or not a codespace has a pending async operation. This would mean that the codespace is temporarily unavailable. The only thing that you can do with a codespace in this state is delete it. */ + pending_operation?: boolean | null; + /** @description Text to show user when codespace is disabled by a pending operation */ + pending_operation_disabled_reason?: string | null; + /** @description Text to show user when codespace idle timeout minutes has been overriden by an organization policy */ + idle_timeout_notice?: string | null; + /** + * @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). + * @example 60 + */ + retention_period_minutes?: number | null; + /** + * Format: date-time + * @description When a codespace will be auto-deleted based on the "retention_period_minutes" and "last_used_at" + * @example 2011-01-26T20:01:12Z + */ + retention_expires_at?: string | null; + }; + /** + * Email + * @description Email + */ + email: { + /** + * Format: email + * @example octocat@github.com + */ + email: string; + /** @example true */ + primary: boolean; + /** @example true */ + verified: boolean; + /** @example public */ + visibility: string | null; + }; + /** + * GPG Key + * @description A unique encryption key + */ + "gpg-key": { + /** @example 3 */ + id: number; + /** @example Octocat's GPG Key */ + name?: string | null; + primary_key_id: number | null; + /** @example 3262EFF25BA0D270 */ + key_id: string; + /** @example xsBNBFayYZ... */ + public_key: string; + /** + * @example [ + * { + * "email": "octocat@users.noreply.github.com", + * "verified": true + * } + * ] + */ + emails: { + email?: string; + verified?: boolean; + }[]; + /** + * @example [ + * { + * "id": 4, + * "primary_key_id": 3, + * "key_id": "4A595D4C72EE49C7", + * "public_key": "zsBNBFayYZ...", + * "emails": [], + * "can_sign": false, + * "can_encrypt_comms": true, + * "can_encrypt_storage": true, + * "can_certify": false, + * "created_at": "2016-03-24T11:31:04-06:00", + * "expires_at": null, + * "revoked": false + * } + * ] + */ + subkeys: { + id?: number; + primary_key_id?: number; + key_id?: string; + public_key?: string; + emails?: { + email?: string; + verified?: boolean; + }[]; + subkeys?: unknown[]; + can_sign?: boolean; + can_encrypt_comms?: boolean; + can_encrypt_storage?: boolean; + can_certify?: boolean; + created_at?: string; + expires_at?: string | null; + raw_key?: string | null; + revoked?: boolean; + }[]; + /** @example true */ + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + /** @example true */ + can_certify: boolean; + /** + * Format: date-time + * @example 2016-03-24T11:31:04-06:00 + */ + created_at: string; + /** Format: date-time */ + expires_at: string | null; + /** @example true */ + revoked: boolean; + raw_key: string | null; + }; + /** + * Key + * @description Key + */ + key: { + key: string; + id: number; + url: string; + title: string; + /** Format: date-time */ + created_at: string; + verified: boolean; + read_only: boolean; + }; + /** Marketplace Account */ + "marketplace-account": { + /** Format: uri */ + url: string; + id: number; + type: string; + node_id?: string; + login: string; + /** Format: email */ + email?: string | null; + /** Format: email */ + organization_billing_email?: string | null; + }; + /** + * User Marketplace Purchase + * @description User Marketplace Purchase + */ + "user-marketplace-purchase": { + /** @example monthly */ + billing_cycle: string; + /** + * Format: date-time + * @example 2017-11-11T00:00:00Z + */ + next_billing_date: string | null; + unit_count: number | null; + /** @example true */ + on_free_trial: boolean; + /** + * Format: date-time + * @example 2017-11-11T00:00:00Z + */ + free_trial_ends_on: string | null; + /** + * Format: date-time + * @example 2017-11-02T01:12:12Z + */ + updated_at: string | null; + account: components["schemas"]["marketplace-account"]; + plan: components["schemas"]["marketplace-listing-plan"]; + }; + /** + * Social account + * @description Social media account + */ + "social-account": { + /** @example linkedin */ + provider: string; + /** @example https://www.linkedin.com/company/github/ */ + url: string; + }; + /** + * SSH Signing Key + * @description A public SSH key used to sign Git commits + */ + "ssh-signing-key": { + key: string; + id: number; + title: string; + /** Format: date-time */ + created_at: string; + }; + /** + * Starred Repository + * @description Starred Repository + */ + "starred-repository": { + /** Format: date-time */ + starred_at: string; + repo: components["schemas"]["repository"]; + }; + /** + * Hovercard + * @description Hovercard + */ + hovercard: { + contexts: { + message: string; + octicon: string; + }[]; + }; + /** + * Key Simple + * @description Key Simple + */ + "key-simple": { + id: number; + key: string; + }; + /** + * Enterprise + * @description An enterprise on GitHub. Webhook payloads contain the `enterprise` property when the webhook is configured + * on an enterprise account or an organization that's part of an enterprise account. For more information, + * see "[About enterprise accounts](https://docs.github.com/admin/overview/about-enterprise-accounts)." + */ + "enterprise-webhooks": { + /** @description A short description of the enterprise. */ + description?: string | null; + /** + * Format: uri + * @example https://github.com/enterprises/octo-business + */ + html_url: string; + /** + * Format: uri + * @description The enterprise's website URL. + */ + website_url?: string | null; + /** + * @description Unique identifier of the enterprise + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the enterprise. + * @example Octo Business + */ + name: string; + /** + * @description The slug url identifier for the enterprise. + * @example octo-business + */ + slug: string; + /** + * Format: date-time + * @example 2019-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2019-01-26T19:14:43Z + */ + updated_at: string | null; + /** Format: uri */ + avatar_url: string; + }; + /** + * Simple Installation + * @description The GitHub App installation. Webhook payloads contain the `installation` property when the event is configured + * for and sent to a GitHub App. For more information, + * see "[Using webhooks with GitHub Apps](https://docs.github.com/apps/creating-github-apps/registering-a-github-app/using-webhooks-with-github-apps)." + */ + "simple-installation": { + /** + * @description The ID of the installation. + * @example 1 + */ + id: number; + /** + * @description The global node ID of the installation. + * @example MDQ6VXNlcjU4MzIzMQ== + */ + node_id: string; + }; + /** + * Organization Simple + * @description A GitHub organization. Webhook payloads contain the `organization` property when the webhook is configured for an + * organization, or when the event occurs from activity in a repository owned by an organization. + */ + "organization-simple-webhooks": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + }; + /** + * Repository + * @description The repository on GitHub where the event occurred. Webhook payloads contain the `repository` property + * when the event occurs from activity in a repository. + */ + "repository-webhooks": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + organization?: components["schemas"]["nullable-simple-user"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + template_repository?: { + id?: number; + node_id?: string; + name?: string; + full_name?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }; + private?: boolean; + html_url?: string; + description?: string; + fork?: boolean; + url?: string; + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + downloads_url?: string; + events_url?: string; + forks_url?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + git_url?: string; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + notifications_url?: string; + pulls_url?: string; + releases_url?: string; + ssh_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + clone_url?: string; + mirror_url?: string; + hooks_url?: string; + svn_url?: string; + homepage?: string; + language?: string; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + pushed_at?: string; + created_at?: string; + updated_at?: string; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + allow_rebase_merge?: boolean; + temp_clone_token?: string; + allow_squash_merge?: boolean; + allow_auto_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_update_branch?: boolean; + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + allow_merge_commit?: boolean; + subscribers_count?: number; + network_count?: number; + } | null; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + */ + web_commit_signoff_required?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + /** @description Whether anonymous git access is enabled for this repository */ + anonymous_access_enabled?: boolean; + }; + /** + * Simple User + * @description The GitHub user that triggered the event. This property is included in every webhook payload. + */ + "simple-user-webhooks": { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + }; + /** @description A suite of checks performed on the code of a given code change */ + "simple-check-suite": { + /** @example d6fde92930d4715a2b49857d24b940956b26d2d3 */ + after?: string | null; + app?: components["schemas"]["integration"]; + /** @example 146e867f55c26428e5f9fade55a9bbf5e95a7912 */ + before?: string | null; + /** + * @example neutral + * @enum {string|null} + */ + conclusion?: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | "stale" + | "startup_failure" + | null; + /** Format: date-time */ + created_at?: string; + /** @example master */ + head_branch?: string | null; + /** + * @description The SHA of the head commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha?: string; + /** @example 5 */ + id?: number; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id?: string; + pull_requests?: components["schemas"]["pull-request-minimal"][]; + repository?: components["schemas"]["minimal-repository"]; + /** + * @example completed + * @enum {string} + */ + status?: "queued" | "in_progress" | "completed" | "pending" | "waiting"; + /** Format: date-time */ + updated_at?: string; + /** @example https://api.github.com/repos/github/hello-world/check-suites/5 */ + url?: string; + }; + /** + * CheckRun + * @description A check performed on the code of a given code change + */ + "check-run-with-simple-check-suite": { + app: components["schemas"]["nullable-integration"]; + check_suite: components["schemas"]["simple-check-suite"]; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + completed_at: string | null; + /** + * @example neutral + * @enum {string|null} + */ + conclusion: + | "waiting" + | "pending" + | "startup_failure" + | "stale" + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | null; + deployment?: components["schemas"]["deployment-simple"]; + /** @example https://example.com */ + details_url: string; + /** @example 42 */ + external_id: string; + /** + * @description The SHA of the commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** @example https://github.com/github/hello-world/runs/4 */ + html_url: string; + /** + * @description The id of the check. + * @example 21 + */ + id: number; + /** + * @description The name of the check. + * @example test-coverage + */ + name: string; + /** @example MDg6Q2hlY2tSdW40 */ + node_id: string; + output: { + annotations_count: number; + /** Format: uri */ + annotations_url: string; + summary: string | null; + text: string | null; + title: string | null; + }; + pull_requests: components["schemas"]["pull-request-minimal"][]; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + started_at: string; + /** + * @description The phase of the lifecycle that the check is currently in. + * @example queued + * @enum {string} + */ + status: "queued" | "in_progress" | "completed" | "pending"; + /** @example https://api.github.com/repos/github/hello-world/check-runs/4 */ + url: string; + }; + /** + * Discussion + * @description A Discussion in a repository. + */ + discussion: { + active_lock_reason: string | null; + answer_chosen_at: string | null; + /** User */ + answer_chosen_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + answer_html_url: string | null; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + category: { + /** Format: date-time */ + created_at: string; + description: string; + emoji: string; + id: number; + is_answerable: boolean; + name: string; + node_id?: string; + repository_id: number; + slug: string; + updated_at: string; + }; + comments: number; + /** Format: date-time */ + created_at: string; + html_url: string; + id: number; + locked: boolean; + node_id: string; + number: number; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + /** + * @description The current state of the discussion. + * `converting` means that the discussion is being converted from an issue. + * `transferring` means that the discussion is being transferred from another repository. + * @enum {string} + */ + state: "open" | "closed" | "locked" | "converting" | "transferring"; + /** + * @description The reason for the current state + * @example resolved + * @enum {string|null} + */ + state_reason: "resolved" | "outdated" | "duplicate" | "reopened" | null; + timeline_url?: string; + title: string; + /** Format: date-time */ + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** + * Merge Group + * @description A group of pull requests that the merge queue has grouped together to be merged. + */ + "merge-group": { + /** @description The SHA of the merge group. */ + head_sha: string; + /** @description The full ref of the merge group. */ + head_ref: string; + /** @description The SHA of the merge group's parent commit. */ + base_sha: string; + /** @description The full ref of the branch the merge group will be merged into. */ + base_ref: string; + head_commit: components["schemas"]["simple-commit"]; + }; + /** + * Repository + * @description The repository on GitHub where the event occurred. Webhook payloads contain the `repository` property + * when the event occurs from activity in a repository. + */ + "nullable-repository-webhooks": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + organization?: components["schemas"]["nullable-simple-user"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + template_repository?: { + id?: number; + node_id?: string; + name?: string; + full_name?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }; + private?: boolean; + html_url?: string; + description?: string; + fork?: boolean; + url?: string; + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + downloads_url?: string; + events_url?: string; + forks_url?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + git_url?: string; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + notifications_url?: string; + pulls_url?: string; + releases_url?: string; + ssh_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + clone_url?: string; + mirror_url?: string; + hooks_url?: string; + svn_url?: string; + homepage?: string; + language?: string; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + pushed_at?: string; + created_at?: string; + updated_at?: string; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + allow_rebase_merge?: boolean; + temp_clone_token?: string; + allow_squash_merge?: boolean; + allow_auto_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_update_branch?: boolean; + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + allow_merge_commit?: boolean; + subscribers_count?: number; + network_count?: number; + } | null; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + */ + web_commit_signoff_required?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + /** @description Whether anonymous git access is enabled for this repository */ + anonymous_access_enabled?: boolean; + } | null; + /** + * Personal Access Token Request + * @description Details of a Personal Access Token Request. + */ + "personal-access-token-request": { + /** @description Unique identifier of the request for access via fine-grained personal access token. Used as the `pat_request_id` parameter in the list and review API calls. */ + id: number; + owner: components["schemas"]["simple-user"]; + /** @description New requested permissions, categorized by type of permission. */ + permissions_added: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** @description Requested permissions that elevate access for a previously approved request for access, categorized by type of permission. */ + permissions_upgraded: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** @description Permissions requested, categorized by type of permission. This field incorporates `permissions_added` and `permissions_upgraded`. */ + permissions_result: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** + * @description Type of repository selection requested. + * @enum {string} + */ + repository_selection: "none" | "all" | "subset"; + /** @description The number of repositories the token is requesting access to. This field is only populated when `repository_selection` is `subset`. */ + repository_count: number | null; + /** @description An array of repository objects the token is requesting access to. This field is only populated when `repository_selection` is `subset`. */ + repositories: + | { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[] + | null; + /** @description Date and time when the request for access was created. */ + created_at: string; + /** @description Whether the associated fine-grained personal access token has expired. */ + token_expired: boolean; + /** @description Date and time when the associated fine-grained personal access token expires. */ + token_expires_at: string | null; + /** @description Date and time when the associated fine-grained personal access token was last used for authentication. */ + token_last_used_at: string | null; + }; + /** + * Projects v2 Project + * @description A projects v2 project + */ + "projects-v2": { + id: number; + node_id: string; + owner: components["schemas"]["simple-user"]; + creator: components["schemas"]["simple-user"]; + title: string; + description: string | null; + public: boolean; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + created_at: string; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + updated_at: string; + number: number; + short_description: string | null; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + deleted_at: string | null; + deleted_by: components["schemas"]["nullable-simple-user"]; + }; + /** + * Projects v2 Item Content Type + * @description The type of content tracked in a project item + * @enum {string} + */ + "projects-v2-item-content-type": "Issue" | "PullRequest" | "DraftIssue"; + /** + * Projects v2 Item + * @description An item belonging to a project + */ + "projects-v2-item": { + id: number; + node_id?: string; + project_node_id?: string; + content_node_id: string; + content_type: components["schemas"]["projects-v2-item-content-type"]; + creator?: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + created_at: string; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + archived_at: string | null; + }; + /** + * @description The reason for resolving the alert. + * @enum {string|null} + */ + "secret-scanning-alert-resolution-webhook": + | "false_positive" + | "wont_fix" + | "revoked" + | "used_in_tests" + | "pattern_deleted" + | "pattern_edited" + | null; + "secret-scanning-alert-webhook": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["nullable-alert-updated-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + /** + * Format: uri + * @description The REST API URL of the code locations for this alert. + */ + locations_url?: string; + resolution?: components["schemas"]["secret-scanning-alert-resolution-webhook"]; + /** + * Format: date-time + * @description The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + resolved_at?: string | null; + resolved_by?: components["schemas"]["nullable-simple-user"]; + /** @description An optional comment to resolve an alert. */ + resolution_comment?: string | null; + /** @description The type of secret that secret scanning detected. */ + secret_type?: string; + /** + * @description The token status as of the latest validity check. + * @enum {string} + */ + validity?: "active" | "inactive" | "unknown"; + /** @description Whether push protection was bypassed for the detected secret. */ + push_protection_bypassed?: boolean | null; + push_protection_bypassed_by?: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + push_protection_bypassed_at?: string | null; + }; + /** branch protection configuration disabled event */ + "webhook-branch-protection-configuration-disabled": { + /** @enum {string} */ + action: "disabled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** branch protection configuration enabled event */ + "webhook-branch-protection-configuration-enabled": { + /** @enum {string} */ + action: "enabled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** branch protection rule created event */ + "webhook-branch-protection-rule-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + /** + * branch protection rule + * @description The branch protection rule. Includes a `name` and all the [branch protection settings](https://docs.github.com/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#about-branch-protection-settings) applied to branches that match the name. Binary settings are boolean. Multi-level configurations are one of `off`, `non_admins`, or `everyone`. Actor and build lists are arrays of strings. + */ + rule: { + admin_enforced: boolean; + /** @enum {string} */ + allow_deletions_enforcement_level: "off" | "non_admins" | "everyone"; + /** @enum {string} */ + allow_force_pushes_enforcement_level: "off" | "non_admins" | "everyone"; + authorized_actor_names: string[]; + authorized_actors_only: boolean; + authorized_dismissal_actors_only: boolean; + create_protected?: boolean; + /** Format: date-time */ + created_at: string; + dismiss_stale_reviews_on_push: boolean; + id: number; + ignore_approvals_from_contributors: boolean; + /** @enum {string} */ + linear_history_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + merge_queue_enforcement_level: "off" | "non_admins" | "everyone"; + name: string; + /** @enum {string} */ + pull_request_reviews_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + repository_id: number; + require_code_owner_review: boolean; + /** @description Whether the most recent push must be approved by someone other than the person who pushed it */ + require_last_push_approval?: boolean; + required_approving_review_count: number; + /** @enum {string} */ + required_conversation_resolution_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + required_deployments_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + required_status_checks: string[]; + /** @enum {string} */ + required_status_checks_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + signature_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + strict_required_status_checks_policy: boolean; + /** Format: date-time */ + updated_at: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** branch protection rule deleted event */ + "webhook-branch-protection-rule-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + /** + * branch protection rule + * @description The branch protection rule. Includes a `name` and all the [branch protection settings](https://docs.github.com/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#about-branch-protection-settings) applied to branches that match the name. Binary settings are boolean. Multi-level configurations are one of `off`, `non_admins`, or `everyone`. Actor and build lists are arrays of strings. + */ + rule: { + admin_enforced: boolean; + /** @enum {string} */ + allow_deletions_enforcement_level: "off" | "non_admins" | "everyone"; + /** @enum {string} */ + allow_force_pushes_enforcement_level: "off" | "non_admins" | "everyone"; + authorized_actor_names: string[]; + authorized_actors_only: boolean; + authorized_dismissal_actors_only: boolean; + create_protected?: boolean; + /** Format: date-time */ + created_at: string; + dismiss_stale_reviews_on_push: boolean; + id: number; + ignore_approvals_from_contributors: boolean; + /** @enum {string} */ + linear_history_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + merge_queue_enforcement_level: "off" | "non_admins" | "everyone"; + name: string; + /** @enum {string} */ + pull_request_reviews_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + repository_id: number; + require_code_owner_review: boolean; + /** @description Whether the most recent push must be approved by someone other than the person who pushed it */ + require_last_push_approval?: boolean; + required_approving_review_count: number; + /** @enum {string} */ + required_conversation_resolution_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + required_deployments_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + required_status_checks: string[]; + /** @enum {string} */ + required_status_checks_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + signature_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + strict_required_status_checks_policy: boolean; + /** Format: date-time */ + updated_at: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** branch protection rule edited event */ + "webhook-branch-protection-rule-edited": { + /** @enum {string} */ + action: "edited"; + /** @description If the action was `edited`, the changes to the rule. */ + changes?: { + admin_enforced?: { + from: boolean | null; + }; + authorized_actor_names?: { + from: string[]; + }; + authorized_actors_only?: { + from: boolean | null; + }; + authorized_dismissal_actors_only?: { + from: boolean | null; + }; + linear_history_requirement_enforcement_level?: { + /** @enum {string} */ + from: "off" | "non_admins" | "everyone"; + }; + required_status_checks?: { + from: string[]; + }; + required_status_checks_enforcement_level?: { + /** @enum {string} */ + from: "off" | "non_admins" | "everyone"; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + /** + * branch protection rule + * @description The branch protection rule. Includes a `name` and all the [branch protection settings](https://docs.github.com/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#about-branch-protection-settings) applied to branches that match the name. Binary settings are boolean. Multi-level configurations are one of `off`, `non_admins`, or `everyone`. Actor and build lists are arrays of strings. + */ + rule: { + admin_enforced: boolean; + /** @enum {string} */ + allow_deletions_enforcement_level: "off" | "non_admins" | "everyone"; + /** @enum {string} */ + allow_force_pushes_enforcement_level: "off" | "non_admins" | "everyone"; + authorized_actor_names: string[]; + authorized_actors_only: boolean; + authorized_dismissal_actors_only: boolean; + create_protected?: boolean; + /** Format: date-time */ + created_at: string; + dismiss_stale_reviews_on_push: boolean; + id: number; + ignore_approvals_from_contributors: boolean; + /** @enum {string} */ + linear_history_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + merge_queue_enforcement_level: "off" | "non_admins" | "everyone"; + name: string; + /** @enum {string} */ + pull_request_reviews_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + repository_id: number; + require_code_owner_review: boolean; + /** @description Whether the most recent push must be approved by someone other than the person who pushed it */ + require_last_push_approval?: boolean; + required_approving_review_count: number; + /** @enum {string} */ + required_conversation_resolution_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + required_deployments_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + required_status_checks: string[]; + /** @enum {string} */ + required_status_checks_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + signature_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + strict_required_status_checks_policy: boolean; + /** Format: date-time */ + updated_at: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Check Run Completed Event */ + "webhook-check-run-completed": { + /** @enum {string} */ + action?: "completed"; + check_run: components["schemas"]["check-run-with-simple-check-suite"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * Check Run Completed Event + * @description The check_run.completed webhook encoded with URL encoding + */ + "webhook-check-run-completed-form-encoded": { + /** @description A URL-encoded string of the check_run.completed JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** Check Run Created Event */ + "webhook-check-run-created": { + /** @enum {string} */ + action?: "created"; + check_run: components["schemas"]["check-run-with-simple-check-suite"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * Check Run Created Event + * @description The check_run.created webhook encoded with URL encoding + */ + "webhook-check-run-created-form-encoded": { + /** @description A URL-encoded string of the check_run.created JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** Check Run Requested Action Event */ + "webhook-check-run-requested-action": { + /** @enum {string} */ + action: "requested_action"; + check_run: components["schemas"]["check-run-with-simple-check-suite"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + /** @description The action requested by the user. */ + requested_action?: { + /** @description The integrator reference of the action requested by the user. */ + identifier?: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * Check Run Requested Action Event + * @description The check_run.requested_action webhook encoded with URL encoding + */ + "webhook-check-run-requested-action-form-encoded": { + /** @description A URL-encoded string of the check_run.requested_action JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** Check Run Re-Requested Event */ + "webhook-check-run-rerequested": { + /** @enum {string} */ + action?: "rerequested"; + check_run: components["schemas"]["check-run-with-simple-check-suite"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * Check Run Re-Requested Event + * @description The check_run.rerequested webhook encoded with URL encoding + */ + "webhook-check-run-rerequested-form-encoded": { + /** @description A URL-encoded string of the check_run.rerequested JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** check_suite completed event */ + "webhook-check-suite-completed": { + /** @enum {string} */ + action: "completed"; + /** @description The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite). */ + check_suite: { + after: string | null; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + app: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "merge_group" + | "pull_request_review_thread" + | "workflow_job" + | "merge_queue_entry" + | "security_and_analysis" + | "projects_v2_item" + | "secret_scanning_alert_location" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + }; + before: string | null; + /** Format: uri */ + check_runs_url: string; + /** + * @description The summary conclusion for all check runs that are part of the check suite. This value will be `null` until the check run has `completed`. + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "skipped" + | "startup_failure"; + /** Format: date-time */ + created_at: string; + /** @description The head branch name the changes are on. */ + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** @description The SHA of the head commit that is being checked. */ + head_sha: string; + id: number; + latest_check_runs_count: number; + node_id: string; + /** @description An array of pull requests that match this check suite. A pull request matches a check suite if they have the same `head_sha` and `head_branch`. When the check suite's `head_branch` is in a forked repository it will be `null` and the `pull_requests` array will be empty. */ + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + rerequestable?: boolean; + runs_rerequestable?: boolean; + /** + * @description The summary status for all check runs that are part of the check suite. Can be `requested`, `in_progress`, or `completed`. + * @enum {string|null} + */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | null + | "pending"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL that points to the check suite API resource. + */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** check_suite requested event */ + "webhook-check-suite-requested": { + /** @enum {string} */ + action: "requested"; + /** @description The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite). */ + check_suite: { + after: string | null; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + app: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "workflow_job" + | "merge_queue_entry" + | "security_and_analysis" + | "secret_scanning_alert_location" + | "projects_v2_item" + | "merge_group" + | "repository_import" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + }; + before: string | null; + /** Format: uri */ + check_runs_url: string; + /** + * @description The summary conclusion for all check runs that are part of the check suite. This value will be `null` until the check run has completed. + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "skipped"; + /** Format: date-time */ + created_at: string; + /** @description The head branch name the changes are on. */ + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** @description The SHA of the head commit that is being checked. */ + head_sha: string; + id: number; + latest_check_runs_count: number; + node_id: string; + /** @description An array of pull requests that match this check suite. A pull request matches a check suite if they have the same `head_sha` and `head_branch`. When the check suite's `head_branch` is in a forked repository it will be `null` and the `pull_requests` array will be empty. */ + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + rerequestable?: boolean; + runs_rerequestable?: boolean; + /** + * @description The summary status for all check runs that are part of the check suite. Can be `requested`, `in_progress`, or `completed`. + * @enum {string|null} + */ + status: "requested" | "in_progress" | "completed" | "queued" | null; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL that points to the check suite API resource. + */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** check_suite rerequested event */ + "webhook-check-suite-rerequested": { + /** @enum {string} */ + action: "rerequested"; + /** @description The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite). */ + check_suite: { + after: string | null; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + app: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "merge_queue_entry" + | "workflow_job" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + }; + before: string | null; + /** Format: uri */ + check_runs_url: string; + /** + * @description The summary conclusion for all check runs that are part of the check suite. This value will be `null` until the check run has completed. + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + /** @description The head branch name the changes are on. */ + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** @description The SHA of the head commit that is being checked. */ + head_sha: string; + id: number; + latest_check_runs_count: number; + node_id: string; + /** @description An array of pull requests that match this check suite. A pull request matches a check suite if they have the same `head_sha` and `head_branch`. When the check suite's `head_branch` is in a forked repository it will be `null` and the `pull_requests` array will be empty. */ + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + rerequestable?: boolean; + runs_rerequestable?: boolean; + /** + * @description The summary status for all check runs that are part of the check suite. Can be `requested`, `in_progress`, or `completed`. + * @enum {string|null} + */ + status: "requested" | "in_progress" | "completed" | "queued" | null; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL that points to the check suite API resource. + */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert appeared_in_branch event */ + "webhook-code-scanning-alert-appeared-in-branch": { + /** @enum {string} */ + action: "appeared_in_branch"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** + * Format: date-time + * @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + dismissed_at: string | null; + /** User */ + dismissed_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The reason for dismissing or closing the alert. + * @enum {string|null} + */ + dismissed_reason: + | "false positive" + | "won't fix" + | "used in tests" + | null; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + tool: { + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + }; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + commit_oid: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + ref: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert closed_by_user event */ + "webhook-code-scanning-alert-closed-by-user": { + /** @enum {string} */ + action: "closed_by_user"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** + * Format: date-time + * @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + dismissed_at: string; + /** User */ + dismissed_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The reason for dismissing or closing the alert. + * @enum {string|null} + */ + dismissed_reason: + | "false positive" + | "won't fix" + | "used in tests" + | null; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + full_description?: string; + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + tags?: string[] | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "dismissed" | "fixed"; + tool: { + guid?: string | null; + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + }; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + commit_oid: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + ref: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert created event */ + "webhook-code-scanning-alert-created": { + /** @enum {string} */ + action: "created"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string | null; + /** @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. */ + dismissed_at: unknown; + dismissed_by: unknown; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + /** @description The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`. */ + dismissed_reason: unknown; + fixed_at?: unknown; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + instances_url?: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + full_description?: string; + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + tags?: string[] | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed"; + tool: { + guid?: string | null; + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + } | null; + updated_at?: string | null; + /** Format: uri */ + url: string; + }; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + commit_oid: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + ref: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert fixed event */ + "webhook-code-scanning-alert-fixed": { + /** @enum {string} */ + action: "fixed"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** + * Format: date-time + * @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + dismissed_at: string | null; + /** User */ + dismissed_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The reason for dismissing or closing the alert. + * @enum {string|null} + */ + dismissed_reason: + | "false positive" + | "won't fix" + | "used in tests" + | null; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Format: uri */ + instances_url?: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + full_description?: string; + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + tags?: string[] | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "fixed"; + tool: { + guid?: string | null; + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + }; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + commit_oid: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + ref: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert reopened event */ + "webhook-code-scanning-alert-reopened": { + /** @enum {string} */ + action: "reopened"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. */ + dismissed_at: string | null; + dismissed_by: unknown; + /** @description The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`. */ + dismissed_reason: string | null; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + full_description?: string; + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + tags?: string[] | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + tool: { + guid?: string | null; + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + } | null; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + commit_oid: string | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + ref: string | null; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert reopened_by_user event */ + "webhook-code-scanning-alert-reopened-by-user": { + /** @enum {string} */ + action: "reopened_by_user"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. */ + dismissed_at: unknown; + dismissed_by: unknown; + /** @description The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`. */ + dismissed_reason: unknown; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "fixed"; + tool: { + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + }; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + commit_oid: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + ref: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** commit_comment created event */ + "webhook-commit-comment-created": { + /** + * @description The action performed. Can be `created`. + * @enum {string} + */ + action: "created"; + /** @description The [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment) resource. */ + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + created_at: string; + /** Format: uri */ + html_url: string; + /** @description The ID of the commit comment. */ + id: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the commit comment. */ + node_id: string; + /** @description The relative path of the file to which the comment applies. */ + path: string | null; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** create event */ + "webhook-create": { + /** @description The repository's current description. */ + description: string | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The name of the repository's default branch (usually `main`). */ + master_branch: string; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The pusher type for the event. Can be either `user` or a deploy key. */ + pusher_type: string; + /** @description The [`git ref`](https://docs.github.com/rest/git/refs#get-a-reference) resource. */ + ref: string; + /** + * @description The type of Git ref object created in the repository. + * @enum {string} + */ + ref_type: "tag" | "branch"; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** custom property created event */ + "webhook-custom-property-created": { + /** @enum {string} */ + action: "created"; + definition: components["schemas"]["org-custom-property"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** custom property deleted event */ + "webhook-custom-property-deleted": { + /** @enum {string} */ + action: "deleted"; + definition: { + /** @description The name of the property that was deleted. */ + property_name: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** custom property updated event */ + "webhook-custom-property-updated": { + /** @enum {string} */ + action: "updated"; + definition: components["schemas"]["org-custom-property"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** Custom property values updated event */ + "webhook-custom-property-values-updated": { + /** @enum {string} */ + action: "updated"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + repository: components["schemas"]["repository-webhooks"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + /** @description The new custom property values for the repository. */ + new_property_values: components["schemas"]["custom-property-value"][]; + /** @description The old custom property values for the repository. */ + old_property_values: components["schemas"]["custom-property-value"][]; + }; + /** delete event */ + "webhook-delete": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The pusher type for the event. Can be either `user` or a deploy key. */ + pusher_type: string; + /** @description The [`git ref`](https://docs.github.com/rest/git/refs#get-a-reference) resource. */ + ref: string; + /** + * @description The type of Git ref object deleted in the repository. + * @enum {string} + */ + ref_type: "tag" | "branch"; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert auto-dismissed event */ + "webhook-dependabot-alert-auto-dismissed": { + /** @enum {string} */ + action: "auto_dismissed"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert auto-reopened event */ + "webhook-dependabot-alert-auto-reopened": { + /** @enum {string} */ + action: "auto_reopened"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert created event */ + "webhook-dependabot-alert-created": { + /** @enum {string} */ + action: "created"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert dismissed event */ + "webhook-dependabot-alert-dismissed": { + /** @enum {string} */ + action: "dismissed"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert fixed event */ + "webhook-dependabot-alert-fixed": { + /** @enum {string} */ + action: "fixed"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert reintroduced event */ + "webhook-dependabot-alert-reintroduced": { + /** @enum {string} */ + action: "reintroduced"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert reopened event */ + "webhook-dependabot-alert-reopened": { + /** @enum {string} */ + action: "reopened"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** deploy_key created event */ + "webhook-deploy-key-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [`deploy key`](https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key) resource. */ + key: { + added_by?: string | null; + created_at: string; + id: number; + key: string; + last_used?: string | null; + read_only: boolean; + title: string; + /** Format: uri */ + url: string; + verified: boolean; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** deploy_key deleted event */ + "webhook-deploy-key-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [`deploy key`](https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key) resource. */ + key: { + added_by?: string | null; + created_at: string; + id: number; + key: string; + last_used?: string | null; + read_only: boolean; + title: string; + /** Format: uri */ + url: string; + verified: boolean; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** deployment created event */ + "webhook-deployment-created": { + /** @enum {string} */ + action: "created"; + /** + * Deployment + * @description The [deployment](https://docs.github.com/rest/deployments/deployments#list-deployments). + */ + deployment: { + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + environment: string; + id: number; + node_id: string; + original_environment: string; + payload: Record | string; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "workflow_job" + | "pull_request_review_thread" + | "merge_queue_entry" + | "secret_scanning_alert_location" + | "merge_group" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + production_environment?: boolean; + ref: string; + /** Format: uri */ + repository_url: string; + sha: string; + /** Format: uri */ + statuses_url: string; + task: string; + transient_environment?: boolean; + updated_at: string; + /** Format: uri */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** Workflow */ + workflow: { + /** Format: uri */ + badge_url: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + node_id: string; + path: string; + state: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + /** Deployment Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + display_title: string; + event: string; + head_branch: string; + head_commit?: unknown; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: unknown; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: unknown; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: unknown; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting" + | "pending"; + /** User */ + triggering_actor?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + } | null; + }; + /** deployment protection rule requested event */ + "webhook-deployment-protection-rule-requested": { + /** @enum {string} */ + action?: "requested"; + /** @description The name of the environment that has the deployment protection rule. */ + environment?: string; + /** @description The event that triggered the deployment protection rule. */ + event?: string; + /** + * Format: uri + * @description The URL to review the deployment protection rule. + */ + deployment_callback_url?: string; + deployment?: components["schemas"]["deployment"]; + pull_requests?: components["schemas"]["pull-request"][]; + repository?: components["schemas"]["repository-webhooks"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-deployment-review-approved": { + /** @enum {string} */ + action: "approved"; + approver?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + comment?: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + reviewers?: { + /** User */ + reviewer?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @enum {string} */ + type?: "User"; + }[]; + sender: components["schemas"]["simple-user-webhooks"]; + since: string; + workflow_job_run?: { + conclusion: unknown; + created_at: string; + environment: string; + html_url: string; + id: number; + name: unknown; + status: string; + updated_at: string; + }; + workflow_job_runs?: { + conclusion?: unknown; + created_at?: string; + environment?: string; + html_url?: string; + id?: number; + name?: string | null; + status?: string; + updated_at?: string; + }[]; + /** Deployment Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + display_title: string; + event: string; + head_branch: string; + head_commit?: unknown; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting" + | "pending"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + } | null; + }; + "webhook-deployment-review-rejected": { + /** @enum {string} */ + action: "rejected"; + approver?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + comment?: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + reviewers?: { + /** User */ + reviewer?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @enum {string} */ + type?: "User"; + }[]; + sender: components["schemas"]["simple-user-webhooks"]; + since: string; + workflow_job_run?: { + conclusion: unknown; + created_at: string; + environment: string; + html_url: string; + id: number; + name: unknown; + status: string; + updated_at: string; + }; + workflow_job_runs?: { + conclusion?: string | null; + created_at?: string; + environment?: string; + html_url?: string; + id?: number; + name?: string | null; + status?: string; + updated_at?: string; + }[]; + /** Deployment Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string; + head_commit?: unknown; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + display_title: string; + } | null; + }; + "webhook-deployment-review-requested": { + /** @enum {string} */ + action: "requested"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + environment: string; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + /** User */ + requestor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + reviewers: { + /** User */ + reviewer?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login?: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @enum {string} */ + type?: "User" | "Team"; + }[]; + sender: components["schemas"]["simple-user-webhooks"]; + since: string; + workflow_job_run: { + conclusion: unknown; + created_at: string; + environment: string; + html_url: string; + id: number; + name: string | null; + status: string; + updated_at: string; + }; + /** Deployment Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string; + head_commit?: unknown; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting" + | "pending"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + display_title: string; + } | null; + }; + /** deployment_status created event */ + "webhook-deployment-status-created": { + /** @enum {string} */ + action: "created"; + check_run?: { + /** Format: date-time */ + completed_at: string | null; + /** + * @description The result of the completed check run. This value will be `null` until the check run has completed. + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | "skipped" + | null; + /** Format: uri */ + details_url: string; + external_id: string; + /** @description The SHA of the commit that is being checked. */ + head_sha: string; + /** Format: uri */ + html_url: string; + /** @description The id of the check. */ + id: number; + /** @description The name of the check run. */ + name: string; + node_id: string; + /** Format: date-time */ + started_at: string; + /** + * @description The current status of the check run. Can be `queued`, `in_progress`, or `completed`. + * @enum {string} + */ + status: "queued" | "in_progress" | "completed" | "waiting" | "pending"; + /** Format: uri */ + url: string; + } | null; + /** + * Deployment + * @description The [deployment](https://docs.github.com/rest/deployments/deployments#list-deployments). + */ + deployment: { + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + environment: string; + id: number; + node_id: string; + original_environment: string; + payload: string | Record | null; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "merge_queue_entry" + | "workflow_job" + | "pull_request_review_thread" + | "secret_scanning_alert_location" + | "merge_group" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + production_environment?: boolean; + ref: string; + /** Format: uri */ + repository_url: string; + sha: string; + /** Format: uri */ + statuses_url: string; + task: string; + transient_environment?: boolean; + updated_at: string; + /** Format: uri */ + url: string; + }; + /** @description The [deployment status](https://docs.github.com/rest/deployments/statuses#list-deployment-statuses). */ + deployment_status: { + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + deployment_url: string; + /** @description The optional human-readable description added to the status. */ + description: string; + environment: string; + /** Format: uri */ + environment_url?: string; + id: number; + /** Format: uri */ + log_url?: string; + node_id: string; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "merge_queue_entry" + | "workflow_job" + | "merge_group" + | "secret_scanning_alert_location" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + /** Format: uri */ + repository_url: string; + /** @description The new state. Can be `pending`, `success`, `failure`, or `error`. */ + state: string; + /** @description The optional link added to the status. */ + target_url: string; + updated_at: string; + /** Format: uri */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** Workflow */ + workflow?: { + /** Format: uri */ + badge_url: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + node_id: string; + path: string; + state: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + /** Deployment Workflow Run */ + workflow_run?: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "startup_failure"; + /** Format: date-time */ + created_at: string; + display_title: string; + event: string; + head_branch: string; + head_commit?: unknown; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: unknown; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: unknown; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: unknown; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting" + | "pending"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + } | null; + }; + /** discussion answered event */ + "webhook-discussion-answered": { + /** @enum {string} */ + action: "answered"; + answer: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + child_comment_count: number; + /** Format: date-time */ + created_at: string; + discussion_id: number; + html_url: string; + id: number; + node_id: string; + parent_id: unknown; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + /** Format: date-time */ + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion category changed event */ + "webhook-discussion-category-changed": { + /** @enum {string} */ + action: "category_changed"; + changes: { + category: { + from: { + /** Format: date-time */ + created_at: string; + description: string; + emoji: string; + id: number; + is_answerable: boolean; + name: string; + node_id?: string; + repository_id: number; + slug: string; + updated_at: string; + }; + }; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion closed event */ + "webhook-discussion-closed": { + /** @enum {string} */ + action: "closed"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion_comment created event */ + "webhook-discussion-comment-created": { + /** @enum {string} */ + action: "created"; + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + child_comment_count: number; + created_at: string; + discussion_id: number; + html_url: string; + id: number; + node_id: string; + parent_id: number | null; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion_comment deleted event */ + "webhook-discussion-comment-deleted": { + /** @enum {string} */ + action: "deleted"; + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + child_comment_count: number; + created_at: string; + discussion_id: number; + html_url: string; + id: number; + node_id: string; + parent_id: number | null; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion_comment edited event */ + "webhook-discussion-comment-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + body: { + from: string; + }; + }; + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + child_comment_count: number; + created_at: string; + discussion_id: number; + html_url: string; + id: number; + node_id: string; + parent_id: number | null; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion created event */ + "webhook-discussion-created": { + /** @enum {string} */ + action: "created"; + discussion: { + active_lock_reason: string | null; + answer_chosen_at: string | null; + /** User */ + answer_chosen_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + answer_html_url: string | null; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string | null; + category: { + /** Format: date-time */ + created_at: string; + description: string; + emoji: string; + id: number; + is_answerable: boolean; + name: string; + node_id?: string; + repository_id: number; + slug: string; + updated_at: string; + }; + comments: number; + /** Format: date-time */ + created_at: string; + html_url: string; + id: number; + locked: boolean; + node_id: string; + number: number; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + /** @enum {string} */ + state: "open" | "locked" | "converting" | "transferring"; + timeline_url?: string; + title: string; + /** Format: date-time */ + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: unknown; + answer_chosen_at: unknown; + answer_chosen_by: unknown; + answer_html_url: string | null; + author_association?: string; + body?: string | null; + category?: { + created_at?: string; + description?: string; + emoji?: string; + id?: number; + is_answerable?: boolean; + name?: string; + node_id?: string; + repository_id?: number; + slug?: string; + updated_at?: string; + }; + comments?: number; + created_at?: string; + html_url?: string; + id?: number; + /** @enum {boolean} */ + locked: false; + node_id?: string; + number?: number; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** @enum {string} */ + state: "open" | "converting" | "transferring"; + timeline_url?: string; + title?: string; + updated_at?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion deleted event */ + "webhook-discussion-deleted": { + /** @enum {string} */ + action: "deleted"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion edited event */ + "webhook-discussion-edited": { + /** @enum {string} */ + action: "edited"; + changes?: { + body?: { + from: string; + }; + title?: { + from: string; + }; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion labeled event */ + "webhook-discussion-labeled": { + /** @enum {string} */ + action: "labeled"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion locked event */ + "webhook-discussion-locked": { + /** @enum {string} */ + action: "locked"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion pinned event */ + "webhook-discussion-pinned": { + /** @enum {string} */ + action: "pinned"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion reopened event */ + "webhook-discussion-reopened": { + /** @enum {string} */ + action: "reopened"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion transferred event */ + "webhook-discussion-transferred": { + /** @enum {string} */ + action: "transferred"; + changes: { + new_discussion: components["schemas"]["discussion"]; + new_repository: components["schemas"]["repository-webhooks"]; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion unanswered event */ + "webhook-discussion-unanswered": { + /** @enum {string} */ + action: "unanswered"; + discussion: components["schemas"]["discussion"]; + old_answer: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + child_comment_count: number; + /** Format: date-time */ + created_at: string; + discussion_id: number; + html_url: string; + id: number; + node_id: string; + parent_id: unknown; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + /** Format: date-time */ + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion unlabeled event */ + "webhook-discussion-unlabeled": { + /** @enum {string} */ + action: "unlabeled"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion unlocked event */ + "webhook-discussion-unlocked": { + /** @enum {string} */ + action: "unlocked"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion unpinned event */ + "webhook-discussion-unpinned": { + /** @enum {string} */ + action: "unpinned"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * fork event + * @description A user forks a repository. + */ + "webhook-fork": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + /** @description The created [`repository`](https://docs.github.com/rest/repos/repos#get-a-repository) resource. */ + forkee: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } & { + allow_forking?: boolean; + archive_url?: string; + archived?: boolean; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + clone_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + created_at?: string; + default_branch?: string; + deployments_url?: string; + description?: string | null; + disabled?: boolean; + downloads_url?: string; + events_url?: string; + /** @enum {boolean} */ + fork?: true; + forks?: number; + forks_count?: number; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + git_url?: string; + has_downloads?: boolean; + has_issues?: boolean; + has_pages?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + homepage?: string | null; + hooks_url?: string; + html_url?: string; + id?: number; + is_template?: boolean; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + language?: unknown; + languages_url?: string; + license?: unknown; + merges_url?: string; + milestones_url?: string; + mirror_url?: unknown; + name?: string; + node_id?: string; + notifications_url?: string; + open_issues?: number; + open_issues_count?: number; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + public?: boolean; + pulls_url?: string; + pushed_at?: string; + releases_url?: string; + size?: number; + ssh_url?: string; + stargazers_count?: number; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + svn_url?: string; + tags_url?: string; + teams_url?: string; + topics?: unknown[]; + trees_url?: string; + updated_at?: string; + url?: string; + visibility?: string; + watchers?: number; + watchers_count?: number; + }; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** github_app_authorization revoked event */ + "webhook-github-app-authorization-revoked": { + /** @enum {string} */ + action: "revoked"; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** gollum event */ + "webhook-gollum": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The pages that were updated. */ + pages: { + /** + * @description The action that was performed on the page. Can be `created` or `edited`. + * @enum {string} + */ + action: "created" | "edited"; + /** + * Format: uri + * @description Points to the HTML wiki page. + */ + html_url: string; + /** @description The name of the page. */ + page_name: string; + /** @description The latest commit SHA of the page. */ + sha: string; + summary: string | null; + /** @description The current page title. */ + title: string; + }[]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation created event */ + "webhook-installation-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects that the installation can access. */ + repositories?: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + /** User */ + requester?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation deleted event */ + "webhook-installation-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects that the installation can access. */ + repositories?: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + requester?: unknown; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation new_permissions_accepted event */ + "webhook-installation-new-permissions-accepted": { + /** @enum {string} */ + action: "new_permissions_accepted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects that the installation can access. */ + repositories?: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + requester?: unknown; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation_repositories added event */ + "webhook-installation-repositories-added": { + /** @enum {string} */ + action: "added"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects, which were added to the installation. */ + repositories_added: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + /** @description An array of repository objects, which were removed from the installation. */ + repositories_removed: { + full_name?: string; + /** @description Unique identifier of the repository */ + id?: number; + /** @description The name of the repository. */ + name?: string; + node_id?: string; + /** @description Whether the repository is private or public. */ + private?: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** User */ + requester: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation_repositories removed event */ + "webhook-installation-repositories-removed": { + /** @enum {string} */ + action: "removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects, which were added to the installation. */ + repositories_added: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + /** @description An array of repository objects, which were removed from the installation. */ + repositories_removed: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** User */ + requester: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation suspend event */ + "webhook-installation-suspend": { + /** @enum {string} */ + action: "suspend"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects that the installation can access. */ + repositories?: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + requester?: unknown; + sender: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-installation-target-renamed": { + account: { + archived_at?: string | null; + avatar_url: string; + created_at?: string; + description?: unknown; + events_url?: string; + followers?: number; + followers_url?: string; + following?: number; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + has_organization_projects?: boolean; + has_repository_projects?: boolean; + hooks_url?: string; + html_url: string; + id: number; + is_verified?: boolean; + issues_url?: string; + login?: string; + members_url?: string; + name?: string; + node_id: string; + organizations_url?: string; + public_gists?: number; + public_members_url?: string; + public_repos?: number; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + slug?: string; + starred_url?: string; + subscriptions_url?: string; + type?: string; + updated_at?: string; + url?: string; + website_url?: unknown; + }; + /** @enum {string} */ + action: "renamed"; + changes: { + login?: { + from: string; + }; + slug?: { + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + target_type: string; + }; + /** installation unsuspend event */ + "webhook-installation-unsuspend": { + /** @enum {string} */ + action: "unsuspend"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects that the installation can access. */ + repositories?: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + requester?: unknown; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issue_comment created event */ + "webhook-issue-comment-created": { + /** @enum {string} */ + action: "created"; + /** + * issue comment + * @description The [comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment) itself. + */ + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue comment */ + body: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + /** + * Format: int64 + * @description Unique identifier of the issue comment + */ + id: number; + /** Format: uri */ + issue_url: string; + node_id: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to. */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + labels_url?: string; + locked: boolean; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issue_comment deleted event */ + "webhook-issue-comment-deleted": { + /** @enum {string} */ + action: "deleted"; + /** + * issue comment + * @description The [comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment) itself. + */ + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue comment */ + body: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + /** + * Format: int64 + * @description Unique identifier of the issue comment + */ + id: number; + /** Format: uri */ + issue_url: string; + node_id: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to. */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + labels_url?: string; + locked: boolean; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issue_comment edited event */ + "webhook-issue-comment-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the comment. */ + changes: { + body?: { + /** @description The previous version of the body. */ + from: string; + }; + }; + /** + * issue comment + * @description The [comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment) itself. + */ + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue comment */ + body: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + /** + * Format: int64 + * @description Unique identifier of the issue comment + */ + id: number; + /** Format: uri */ + issue_url: string; + node_id: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to. */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + labels_url?: string; + locked: boolean; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues assigned event */ + "webhook-issues-assigned": { + /** + * @description The action that was performed. + * @enum {string} + */ + action: "assigned"; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues closed event */ + "webhook-issues-closed": { + /** + * @description The action that was performed. + * @enum {string} + */ + action: "closed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "security_and_analysis" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + assignee?: unknown; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels?: unknown[]; + labels_url?: string; + locked?: boolean; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** @enum {string} */ + state: "closed" | "open"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues deleted event */ + "webhook-issues-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues demilestoned event */ + "webhook-issues-demilestoned": { + /** @enum {string} */ + action: "demilestoned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + assignee?: unknown; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels?: unknown[]; + labels_url?: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + state?: string; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone?: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues edited event */ + "webhook-issues-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the issue. */ + changes: { + body?: { + /** @description The previous version of the body. */ + from: string; + }; + title?: { + /** @description The previous version of the title. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "security_and_analysis" + | "pull_request_review_thread" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Label */ + label?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues labeled event */ + "webhook-issues-labeled": { + /** @enum {string} */ + action: "labeled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Label */ + label?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues locked event */ + "webhook-issues-locked": { + /** @enum {string} */ + action: "locked"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "security_and_analysis" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + } & { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + assignee?: unknown; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels?: unknown[]; + labels_url?: string; + /** @enum {boolean} */ + locked: true; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + state?: string; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues milestoned event */ + "webhook-issues-milestoned": { + /** @enum {string} */ + action: "milestoned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + assignee?: unknown; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels?: unknown[]; + labels_url?: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + state?: string; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues opened event */ + "webhook-issues-opened": { + /** @enum {string} */ + action: "opened"; + changes?: { + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + old_issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + } | null; + /** + * Repository + * @description A git repository + */ + old_repository: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** @description Whether the repository has discussions enabled. */ + has_discussions?: boolean; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require commit signoff. */ + web_commit_signoff_required?: boolean; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "security_and_analysis" + | "pull_request_review_thread" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues pinned event */ + "webhook-issues-pinned": { + /** @enum {string} */ + action: "pinned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues reopened event */ + "webhook-issues-reopened": { + /** @enum {string} */ + action: "reopened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + assignee?: unknown; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels?: unknown[]; + labels_url?: string; + locked?: boolean; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** @enum {string} */ + state: "open" | "closed"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues transferred event */ + "webhook-issues-transferred": { + /** @enum {string} */ + action: "transferred"; + changes: { + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + new_issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** + * Repository + * @description A git repository + */ + new_repository: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues unassigned event */ + "webhook-issues-unassigned": { + /** + * @description The action that was performed. + * @enum {string} + */ + action: "unassigned"; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues unlabeled event */ + "webhook-issues-unlabeled": { + /** @enum {string} */ + action: "unlabeled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Label */ + label?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues unlocked event */ + "webhook-issues-unlocked": { + /** @enum {string} */ + action: "unlocked"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason: unknown; + assignee?: unknown; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels?: unknown[]; + labels_url?: string; + /** @enum {boolean} */ + locked: false; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + state?: string; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues unpinned event */ + "webhook-issues-unpinned": { + /** @enum {string} */ + action: "unpinned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** label created event */ + "webhook-label-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** label deleted event */ + "webhook-label-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** label edited event */ + "webhook-label-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the label if the action was `edited`. */ + changes?: { + color?: { + /** @description The previous version of the color if the action was `edited`. */ + from: string; + }; + description?: { + /** @description The previous version of the description if the action was `edited`. */ + from: string; + }; + name?: { + /** @description The previous version of the name if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase cancelled event */ + "webhook-marketplace-purchase-cancelled": { + /** @enum {string} */ + action: "cancelled"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + } & { + account?: { + id?: number; + login?: string; + node_id?: string; + organization_billing_email?: string | null; + type?: string; + }; + billing_cycle?: string; + free_trial_ends_on?: string | null; + next_billing_date: string | null; + on_free_trial?: boolean; + plan?: { + bullets?: (string | null)[]; + description?: string; + has_free_trial?: boolean; + id?: number; + monthly_price_in_cents?: number; + name?: string; + /** @enum {string} */ + price_model?: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name?: string | null; + yearly_price_in_cents?: number; + }; + unit_count?: number; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Marketplace Purchase */ + previous_marketplace_purchase?: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: unknown; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase changed event */ + "webhook-marketplace-purchase-changed": { + /** @enum {string} */ + action: "changed"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + } & { + account?: { + id?: number; + login?: string; + node_id?: string; + organization_billing_email?: string | null; + type?: string; + }; + billing_cycle?: string; + free_trial_ends_on?: string | null; + next_billing_date: string | null; + on_free_trial?: boolean; + plan?: { + bullets?: (string | null)[]; + description?: string; + has_free_trial?: boolean; + id?: number; + monthly_price_in_cents?: number; + name?: string; + /** @enum {string} */ + price_model?: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name?: string | null; + yearly_price_in_cents?: number; + }; + unit_count?: number; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Marketplace Purchase */ + previous_marketplace_purchase?: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean | null; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase pending_change event */ + "webhook-marketplace-purchase-pending-change": { + /** @enum {string} */ + action: "pending_change"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + } & { + account?: { + id?: number; + login?: string; + node_id?: string; + organization_billing_email?: string | null; + type?: string; + }; + billing_cycle?: string; + free_trial_ends_on?: string | null; + next_billing_date: string | null; + on_free_trial?: boolean; + plan?: { + bullets?: (string | null)[]; + description?: string; + has_free_trial?: boolean; + id?: number; + monthly_price_in_cents?: number; + name?: string; + /** @enum {string} */ + price_model?: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name?: string | null; + yearly_price_in_cents?: number; + }; + unit_count?: number; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Marketplace Purchase */ + previous_marketplace_purchase?: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase pending_change_cancelled event */ + "webhook-marketplace-purchase-pending-change-cancelled": { + /** @enum {string} */ + action: "pending_change_cancelled"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: unknown; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + } & { + next_billing_date: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Marketplace Purchase */ + previous_marketplace_purchase?: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: unknown; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase purchased event */ + "webhook-marketplace-purchase-purchased": { + /** @enum {string} */ + action: "purchased"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + } & { + account?: { + id?: number; + login?: string; + node_id?: string; + organization_billing_email?: string | null; + type?: string; + }; + billing_cycle?: string; + free_trial_ends_on?: string | null; + next_billing_date: string | null; + on_free_trial?: boolean; + plan?: { + bullets?: (string | null)[]; + description?: string; + has_free_trial?: boolean; + id?: number; + monthly_price_in_cents?: number; + name?: string; + /** @enum {string} */ + price_model?: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name?: string | null; + yearly_price_in_cents?: number; + }; + unit_count?: number; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Marketplace Purchase */ + previous_marketplace_purchase?: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: unknown; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** member added event */ + "webhook-member-added": { + /** @enum {string} */ + action: "added"; + changes?: { + permission?: { + /** @enum {string} */ + to: "write" | "admin" | "read"; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** User */ + member: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** member edited event */ + "webhook-member-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the collaborator permissions */ + changes: { + old_permission?: { + /** @description The previous permissions of the collaborator if the action was edited. */ + from: string; + }; + permission?: { + from?: string | null; + to?: string | null; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** User */ + member: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** member removed event */ + "webhook-member-removed": { + /** @enum {string} */ + action: "removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** User */ + member: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** membership added event */ + "webhook-membership-added": { + /** @enum {string} */ + action: "added"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** User */ + member: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + /** + * @description The scope of the membership. Currently, can only be `team`. + * @enum {string} + */ + scope: "team"; + /** User */ + sender: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** @enum {string} */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** membership removed event */ + "webhook-membership-removed": { + /** @enum {string} */ + action: "removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** User */ + member: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + /** + * @description The scope of the membership. Currently, can only be `team`. + * @enum {string} + */ + scope: "team" | "organization"; + /** User */ + sender: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** @enum {string} */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + "webhook-merge-group-checks-requested": { + /** @enum {string} */ + action: "checks_requested"; + installation?: components["schemas"]["simple-installation"]; + merge_group: components["schemas"]["merge-group"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-merge-group-destroyed": { + /** @enum {string} */ + action: "destroyed"; + /** + * @description Explains why the merge group is being destroyed. The group could have been merged, removed from the queue (dequeued), or invalidated by an earlier queue entry being dequeued (invalidated). + * @enum {string} + */ + reason?: "merged" | "invalidated" | "dequeued"; + installation?: components["schemas"]["simple-installation"]; + merge_group: components["schemas"]["merge-group"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** meta deleted event */ + "webhook-meta-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + /** @description The modified webhook. This will contain different keys based on the type of webhook it is: repository, organization, business, app, or GitHub Marketplace. */ + hook: { + active: boolean; + config: { + /** @enum {string} */ + content_type: "json" | "form"; + insecure_ssl: string; + secret?: string; + /** Format: uri */ + url: string; + }; + created_at: string; + events: ( + | "*" + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "create" + | "delete" + | "deployment" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "meta" + | "milestone" + | "organization" + | "org_block" + | "package" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "pull_request_review_thread" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_import" + | "repository_vulnerability_alert" + | "secret_scanning_alert" + | "secret_scanning_alert_location" + | "security_and_analysis" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_job" + | "workflow_run" + | "repository_dispatch" + | "projects_v2_item" + )[]; + id: number; + name: string; + type: string; + updated_at: string; + }; + /** @description The id of the modified webhook. */ + hook_id: number; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["nullable-repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone closed event */ + "webhook-milestone-closed": { + /** @enum {string} */ + action: "closed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone created event */ + "webhook-milestone-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone deleted event */ + "webhook-milestone-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone edited event */ + "webhook-milestone-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the milestone if the action was `edited`. */ + changes: { + description?: { + /** @description The previous version of the description if the action was `edited`. */ + from: string; + }; + due_on?: { + /** @description The previous version of the due date if the action was `edited`. */ + from: string; + }; + title?: { + /** @description The previous version of the title if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone opened event */ + "webhook-milestone-opened": { + /** @enum {string} */ + action: "opened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** org_block blocked event */ + "webhook-org-block-blocked": { + /** @enum {string} */ + action: "blocked"; + /** User */ + blocked_user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** org_block unblocked event */ + "webhook-org-block-unblocked": { + /** @enum {string} */ + action: "unblocked"; + /** User */ + blocked_user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** organization deleted event */ + "webhook-organization-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Membership + * @description The membership between the user and the organization. Not present when the action is `member_invited`. + */ + membership?: { + /** Format: uri */ + organization_url: string; + role: string; + state: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** organization member_added event */ + "webhook-organization-member-added": { + /** @enum {string} */ + action: "member_added"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Membership + * @description The membership between the user and the organization. Not present when the action is `member_invited`. + */ + membership: { + /** Format: uri */ + organization_url: string; + role: string; + state: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** organization member_invited event */ + "webhook-organization-member-invited": { + /** @enum {string} */ + action: "member_invited"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The invitation for the user or email if the action is `member_invited`. */ + invitation: { + /** Format: date-time */ + created_at: string; + email: string | null; + /** Format: date-time */ + failed_at: string | null; + failed_reason: string | null; + id: number; + /** Format: uri */ + invitation_teams_url: string; + /** User */ + inviter: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + login: string | null; + node_id: string; + role: string; + team_count: number; + invitation_source?: string; + }; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** User */ + user?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** organization member_removed event */ + "webhook-organization-member-removed": { + /** @enum {string} */ + action: "member_removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Membership + * @description The membership between the user and the organization. Not present when the action is `member_invited`. + */ + membership: { + /** Format: uri */ + organization_url: string; + role: string; + state: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** organization renamed event */ + "webhook-organization-renamed": { + /** @enum {string} */ + action: "renamed"; + changes?: { + login?: { + from?: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Membership + * @description The membership between the user and the organization. Not present when the action is `member_invited`. + */ + membership?: { + /** Format: uri */ + organization_url: string; + role: string; + state: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Ruby Gems metadata */ + "webhook-rubygems-metadata": { + name?: string; + description?: string; + readme?: string; + homepage?: string; + version_info?: { + version?: string; + }; + platform?: string; + metadata?: { + [key: string]: string; + }; + repo?: string; + dependencies?: { + [key: string]: string; + }[]; + commit_oid?: string; + }; + /** package published event */ + "webhook-package-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description Information about the package. */ + package: { + created_at: string | null; + description: string | null; + ecosystem: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + namespace: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + package_type: string; + package_version: { + /** User */ + author?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body?: string | Record; + body_html?: string; + container_metadata?: { + labels?: unknown; + manifest?: unknown; + tag?: { + digest?: string; + name?: string; + }; + } | null; + created_at?: string; + description: string; + docker_metadata?: { + tags?: string[]; + }[]; + draft?: boolean; + /** Format: uri */ + html_url: string; + id: number; + installation_command: string; + manifest?: string; + metadata: { + [key: string]: unknown; + }[]; + name: string; + npm_metadata?: { + name?: string; + version?: string; + npm_user?: string; + author?: unknown; + bugs?: unknown; + dependencies?: Record; + dev_dependencies?: Record; + peer_dependencies?: Record; + optional_dependencies?: Record; + description?: string; + dist?: unknown; + git_head?: string; + homepage?: string; + license?: string; + main?: string; + repository?: unknown; + scripts?: Record; + id?: string; + node_version?: string; + npm_version?: string; + has_shrinkwrap?: boolean; + maintainers?: Record[]; + contributors?: Record[]; + engines?: Record; + keywords?: string[]; + files?: string[]; + bin?: Record; + man?: Record; + directories?: unknown; + os?: string[]; + cpu?: string[]; + readme?: string; + installation_command?: string; + release_id?: number; + commit_oid?: string; + published_via_actions?: boolean; + deleted_by_id?: number; + } | null; + nuget_metadata?: + | { + id?: number | string; + name?: string; + value?: OneOf< + [ + boolean, + string, + number, + { + url?: string; + branch?: string; + commit?: string; + type?: string; + }, + ] + >; + }[] + | null; + package_files: { + content_type: string; + created_at: string; + /** Format: uri */ + download_url: string; + id: number; + md5: string | null; + name: string; + sha1: string | null; + sha256: string | null; + size: number; + state: string | null; + updated_at: string; + }[]; + package_url?: string; + prerelease?: boolean; + release?: { + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + created_at: string; + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + prerelease: boolean; + published_at: string; + tag_name: string; + target_commitish: string; + /** Format: uri */ + url: string; + }; + rubygems_metadata?: components["schemas"]["webhook-rubygems-metadata"][]; + source_url?: string; + summary: string; + tag_name?: string; + target_commitish?: string; + target_oid?: string; + updated_at?: string; + version: string; + } | null; + registry: { + /** Format: uri */ + about_url: string; + name: string; + type: string; + /** Format: uri */ + url: string; + vendor: string; + } | null; + updated_at: string | null; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** package updated event */ + "webhook-package-updated": { + /** @enum {string} */ + action: "updated"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description Information about the package. */ + package: { + created_at: string; + description: string | null; + ecosystem: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + namespace: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + package_type: string; + package_version: { + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string; + body_html: string; + created_at: string; + description: string; + docker_metadata?: { + tags?: string[]; + }[]; + draft?: boolean; + /** Format: uri */ + html_url: string; + id: number; + installation_command: string; + manifest?: string; + metadata: { + [key: string]: unknown; + }[]; + name: string; + package_files: { + content_type: string; + created_at: string; + /** Format: uri */ + download_url: string; + id: number; + md5: string | null; + name: string; + sha1: string | null; + sha256: string; + size: number; + state: string; + updated_at: string; + }[]; + package_url?: string; + prerelease?: boolean; + release?: { + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + created_at: string; + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string; + prerelease: boolean; + published_at: string; + tag_name: string; + target_commitish: string; + /** Format: uri */ + url: string; + }; + rubygems_metadata?: components["schemas"]["webhook-rubygems-metadata"][]; + /** Format: uri */ + source_url?: string; + summary: string; + tag_name?: string; + target_commitish: string; + target_oid: string; + updated_at: string; + version: string; + }; + registry: { + /** Format: uri */ + about_url: string; + name: string; + type: string; + /** Format: uri */ + url: string; + vendor: string; + } | null; + updated_at: string; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** page_build event */ + "webhook-page-build": { + /** @description The [List GitHub Pages builds](https://docs.github.com/rest/pages/pages#list-github-pages-builds) itself. */ + build: { + commit: string | null; + created_at: string; + duration: number; + error: { + message: string | null; + }; + /** User */ + pusher: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + status: string; + updated_at: string; + /** Format: uri */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + id: number; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** personal_access_token_request approved event */ + "webhook-personal-access-token-request-approved": { + /** @enum {string} */ + action: "approved"; + personal_access_token_request: components["schemas"]["personal-access-token-request"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + installation: components["schemas"]["simple-installation"]; + }; + /** personal_access_token_request cancelled event */ + "webhook-personal-access-token-request-cancelled": { + /** @enum {string} */ + action: "cancelled"; + personal_access_token_request: components["schemas"]["personal-access-token-request"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + installation: components["schemas"]["simple-installation"]; + }; + /** personal_access_token_request created event */ + "webhook-personal-access-token-request-created": { + /** @enum {string} */ + action: "created"; + personal_access_token_request: components["schemas"]["personal-access-token-request"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + installation: components["schemas"]["simple-installation"]; + }; + /** personal_access_token_request denied event */ + "webhook-personal-access-token-request-denied": { + /** @enum {string} */ + action: "denied"; + personal_access_token_request: components["schemas"]["personal-access-token-request"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + installation: components["schemas"]["simple-installation"]; + }; + "webhook-ping": { + /** + * Webhook + * @description The webhook that is being pinged + */ + hook?: { + /** @description Determines whether the hook is actually triggered for the events it subscribes to. */ + active: boolean; + /** @description Only included for GitHub Apps. When you register a new GitHub App, GitHub sends a ping event to the webhook URL you specified during registration. The GitHub App ID sent in this field is required for authenticating an app. */ + app_id?: number; + config: { + content_type?: components["schemas"]["webhook-config-content-type"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + secret?: components["schemas"]["webhook-config-secret"]; + url?: components["schemas"]["webhook-config-url"]; + }; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + deliveries_url?: string; + /** @description Determines what events the hook is triggered for. Default: ['push']. */ + events: string[]; + /** @description Unique identifier of the webhook. */ + id: number; + last_response?: components["schemas"]["hook-response"]; + /** + * @description The type of webhook. The only valid value is 'web'. + * @enum {string} + */ + name: "web"; + /** Format: uri */ + ping_url?: string; + /** Format: uri */ + test_url?: string; + type: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url?: string; + }; + /** @description The ID of the webhook that triggered the ping. */ + hook_id?: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + /** @description Random string of GitHub zen. */ + zen?: string; + }; + /** @description The webhooks ping payload encoded with URL encoding. */ + "webhook-ping-form-encoded": { + /** @description A URL-encoded string of the ping JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** project_card converted event */ + "webhook-project-card-converted": { + /** @enum {string} */ + action: "converted"; + changes: { + note: { + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Card */ + project_card: { + after_id?: number | null; + /** @description Whether or not the card is archived */ + archived: boolean; + column_id: number; + /** Format: uri */ + column_url: string; + /** Format: uri */ + content_url?: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The project card's ID */ + id: number; + node_id: string; + note: string | null; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_card created event */ + "webhook-project-card-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Card */ + project_card: { + after_id?: number | null; + /** @description Whether or not the card is archived */ + archived: boolean; + column_id: number; + /** Format: uri */ + column_url: string; + /** Format: uri */ + content_url?: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The project card's ID */ + id: number; + node_id: string; + note: string | null; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_card deleted event */ + "webhook-project-card-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Card */ + project_card: { + after_id?: number | null; + /** @description Whether or not the card is archived */ + archived: boolean; + column_id: number | null; + /** Format: uri */ + column_url: string; + /** Format: uri */ + content_url?: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** @description The project card's ID */ + id: number; + node_id: string; + note: string | null; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["nullable-repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_card edited event */ + "webhook-project-card-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + note: { + from: string | null; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Card */ + project_card: { + after_id?: number | null; + /** @description Whether or not the card is archived */ + archived: boolean; + column_id: number; + /** Format: uri */ + column_url: string; + /** Format: uri */ + content_url?: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The project card's ID */ + id: number; + node_id: string; + note: string | null; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_card moved event */ + "webhook-project-card-moved": { + /** @enum {string} */ + action: "moved"; + changes?: { + column_id: { + from: number; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project_card: { + after_id?: number | null; + /** @description Whether or not the card is archived */ + archived: boolean; + column_id: number; + /** Format: uri */ + column_url: string; + /** Format: uri */ + content_url?: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** @description The project card's ID */ + id: number; + node_id: string; + note: string | null; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } & { + after_id: number | null; + archived?: boolean; + column_id?: number; + column_url?: string; + created_at?: string; + creator?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + } | null; + id?: number; + node_id?: string; + note?: string | null; + project_url?: string; + updated_at?: string; + url?: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project closed event */ + "webhook-project-closed": { + /** @enum {string} */ + action: "closed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project */ + project: { + /** @description Body of the project */ + body: string | null; + /** Format: uri */ + columns_url: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + id: number; + /** @description Name of the project */ + name: string; + node_id: string; + number: number; + /** Format: uri */ + owner_url: string; + /** + * @description State of the project; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_column created event */ + "webhook-project-column-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Column */ + project_column: { + after_id?: number | null; + /** Format: uri */ + cards_url: string; + /** Format: date-time */ + created_at: string; + /** @description The unique identifier of the project column */ + id: number; + /** @description Name of the project column */ + name: string; + node_id: string; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project_column deleted event */ + "webhook-project-column-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Column */ + project_column: { + after_id?: number | null; + /** Format: uri */ + cards_url: string; + /** Format: date-time */ + created_at: string; + /** @description The unique identifier of the project column */ + id: number; + /** @description Name of the project column */ + name: string; + node_id: string; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["nullable-repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project_column edited event */ + "webhook-project-column-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + name?: { + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Column */ + project_column: { + after_id?: number | null; + /** Format: uri */ + cards_url: string; + /** Format: date-time */ + created_at: string; + /** @description The unique identifier of the project column */ + id: number; + /** @description Name of the project column */ + name: string; + node_id: string; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project_column moved event */ + "webhook-project-column-moved": { + /** @enum {string} */ + action: "moved"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Column */ + project_column: { + after_id?: number | null; + /** Format: uri */ + cards_url: string; + /** Format: date-time */ + created_at: string; + /** @description The unique identifier of the project column */ + id: number; + /** @description Name of the project column */ + name: string; + node_id: string; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project created event */ + "webhook-project-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project */ + project: { + /** @description Body of the project */ + body: string | null; + /** Format: uri */ + columns_url: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + id: number; + /** @description Name of the project */ + name: string; + node_id: string; + number: number; + /** Format: uri */ + owner_url: string; + /** + * @description State of the project; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project deleted event */ + "webhook-project-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project */ + project: { + /** @description Body of the project */ + body: string | null; + /** Format: uri */ + columns_url: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + id: number; + /** @description Name of the project */ + name: string; + node_id: string; + number: number; + /** Format: uri */ + owner_url: string; + /** + * @description State of the project; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["nullable-repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project edited event */ + "webhook-project-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the project if the action was `edited`. */ + changes?: { + body?: { + /** @description The previous version of the body if the action was `edited`. */ + from: string; + }; + name?: { + /** @description The changes to the project if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project */ + project: { + /** @description Body of the project */ + body: string | null; + /** Format: uri */ + columns_url: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + id: number; + /** @description Name of the project */ + name: string; + node_id: string; + number: number; + /** Format: uri */ + owner_url: string; + /** + * @description State of the project; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project reopened event */ + "webhook-project-reopened": { + /** @enum {string} */ + action: "reopened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project */ + project: { + /** @description Body of the project */ + body: string | null; + /** Format: uri */ + columns_url: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + id: number; + /** @description Name of the project */ + name: string; + node_id: string; + number: number; + /** Format: uri */ + owner_url: string; + /** + * @description State of the project; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Project Closed Event */ + "webhook-projects-v2-project-closed": { + /** @enum {string} */ + action: "closed"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** @description A project was created */ + "webhook-projects-v2-project-created": { + /** @enum {string} */ + action: "created"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Project Deleted Event */ + "webhook-projects-v2-project-deleted": { + /** @enum {string} */ + action: "deleted"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Project Edited Event */ + "webhook-projects-v2-project-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + description?: { + from?: string | null; + to?: string | null; + }; + public?: { + from?: boolean; + to?: boolean; + }; + short_description?: { + from?: string | null; + to?: string | null; + }; + title?: { + from?: string; + to?: string; + }; + }; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Archived Event */ + "webhook-projects-v2-item-archived": { + /** @enum {string} */ + action: "archived"; + changes: { + archived_at?: { + /** Format: date-time */ + from?: string | null; + /** Format: date-time */ + to?: string | null; + }; + }; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Converted Event */ + "webhook-projects-v2-item-converted": { + /** @enum {string} */ + action: "converted"; + changes: { + content_type?: { + from?: string | null; + to?: string; + }; + }; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Created Event */ + "webhook-projects-v2-item-created": { + /** @enum {string} */ + action: "created"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Deleted Event */ + "webhook-projects-v2-item-deleted": { + /** @enum {string} */ + action: "deleted"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Edited Event */ + "webhook-projects-v2-item-edited": { + /** @enum {string} */ + action: "edited"; + changes?: OneOf< + [ + { + field_value: { + field_node_id?: string; + field_type?: string; + }; + }, + { + body: { + from?: string | null; + to?: string | null; + }; + }, + ] + >; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Reordered Event */ + "webhook-projects-v2-item-reordered": { + /** @enum {string} */ + action: "reordered"; + changes: { + previous_projects_v2_item_node_id?: { + from?: string | null; + to?: string | null; + }; + }; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Restored Event */ + "webhook-projects-v2-item-restored": { + /** @enum {string} */ + action: "restored"; + changes: { + archived_at?: { + /** Format: date-time */ + from?: string | null; + /** Format: date-time */ + to?: string | null; + }; + }; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Project Reopened Event */ + "webhook-projects-v2-project-reopened": { + /** @enum {string} */ + action: "reopened"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** public event */ + "webhook-public": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request assigned event */ + "webhook-pull-request-assigned": { + /** @enum {string} */ + action: "assigned"; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request auto_merge_disabled event */ + "webhook-pull-request-auto-merge-disabled": { + /** @enum {string} */ + action: "auto_merge_disabled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + reason: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request auto_merge_enabled event */ + "webhook-pull-request-auto-merge-enabled": { + /** @enum {string} */ + action: "auto_merge_enabled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + reason?: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request closed event */ + "webhook-pull-request-closed": { + /** @enum {string} */ + action: "closed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request"] & { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow updating the pull request's branch. */ + allow_update_branch?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a merge commit message. + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., "Merge pull request #123 from branch-name"). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a squash merge commit message: + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.** + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request converted_to_draft event */ + "webhook-pull-request-converted-to-draft": { + /** @enum {string} */ + action: "converted_to_draft"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request"] & { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow updating the pull request's branch. */ + allow_update_branch?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a merge commit message. + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., "Merge pull request #123 from branch-name"). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a squash merge commit message: + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.** + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request demilestoned event */ + "webhook-pull-request-demilestoned": { + /** @enum {string} */ + action: "demilestoned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + milestone?: components["schemas"]["milestone"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request dequeued event */ + "webhook-pull-request-dequeued": { + /** @enum {string} */ + action: "dequeued"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + reason: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request edited event */ + "webhook-pull-request-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the comment if the action was `edited`. */ + changes: { + base?: { + ref: { + from: string; + }; + sha: { + from: string; + }; + }; + body?: { + /** @description The previous version of the body if the action was `edited`. */ + from: string; + }; + title?: { + /** @description The previous version of the title if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request"] & { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow updating the pull request's branch. */ + allow_update_branch?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a merge commit message. + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., "Merge pull request #123 from branch-name"). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a squash merge commit message: + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request enqueued event */ + "webhook-pull-request-enqueued": { + /** @enum {string} */ + action: "enqueued"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request labeled event */ + "webhook-pull-request-labeled": { + /** @enum {string} */ + action: "labeled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request locked event */ + "webhook-pull-request-locked": { + /** @enum {string} */ + action: "locked"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request milestoned event */ + "webhook-pull-request-milestoned": { + /** @enum {string} */ + action: "milestoned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + milestone?: components["schemas"]["milestone"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request opened event */ + "webhook-pull-request-opened": { + /** @enum {string} */ + action: "opened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request"] & { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow updating the pull request's branch. */ + allow_update_branch?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a merge commit message. + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a squash merge commit message: + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.** + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request ready_for_review event */ + "webhook-pull-request-ready-for-review": { + /** @enum {string} */ + action: "ready_for_review"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request"] & { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow updating the pull request's branch. */ + allow_update_branch?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a merge commit message. + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., "Merge pull request #123 from branch-name"). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a squash merge commit message: + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.** + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request reopened event */ + "webhook-pull-request-reopened": { + /** @enum {string} */ + action: "reopened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request"] & { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow updating the pull request's branch. */ + allow_update_branch?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a merge commit message. + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., "Merge pull request #123 from branch-name"). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a squash merge commit message: + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.** + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review_comment created event */ + "webhook-pull-request-review-comment-created": { + /** @enum {string} */ + action: "created"; + /** + * Pull Request Review Comment + * @description The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) itself. + */ + comment: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number | null; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge?: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft?: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions?: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review_comment deleted event */ + "webhook-pull-request-review-comment-deleted": { + /** @enum {string} */ + action: "deleted"; + /** + * Pull Request Review Comment + * @description The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) itself. + */ + comment: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge?: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft?: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review_comment edited event */ + "webhook-pull-request-review-comment-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the comment. */ + changes: { + body?: { + /** @description The previous version of the body. */ + from: string; + }; + }; + /** + * Pull Request Review Comment + * @description The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) itself. + */ + comment: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge?: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft?: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review dismissed event */ + "webhook-pull-request-review-dismissed": { + /** @enum {string} */ + action: "dismissed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** @description The review that was affected. */ + review: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the review. */ + body: string | null; + /** @description A commit SHA for the review. */ + commit_id: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the review */ + id: number; + node_id: string; + /** Format: uri */ + pull_request_url: string; + /** @enum {string} */ + state: "dismissed" | "approved" | "changes_requested"; + /** Format: date-time */ + submitted_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review edited event */ + "webhook-pull-request-review-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + body?: { + /** @description The previous version of the body if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** @description The review that was affected. */ + review: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the review. */ + body: string | null; + /** @description A commit SHA for the review. */ + commit_id: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the review */ + id: number; + node_id: string; + /** Format: uri */ + pull_request_url: string; + state: string; + /** Format: date-time */ + submitted_at: string | null; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request review_request_removed event */ + "webhook-pull-request-review-request-removed": OneOf< + [ + { + /** @enum {string} */ + action: "review_request_removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title. + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** User */ + requested_reviewer: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + sender: components["schemas"]["simple-user-webhooks"]; + }, + { + /** @enum {string} */ + action: "review_request_removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + requested_team: { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }, + ] + >; + /** pull_request review_requested event */ + "webhook-pull-request-review-requested": OneOf< + [ + { + /** @enum {string} */ + action: "review_requested"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** User */ + requested_reviewer: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + sender: components["schemas"]["simple-user-webhooks"]; + }, + { + /** @enum {string} */ + action: "review_requested"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + requested_team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }, + ] + >; + /** pull_request_review submitted event */ + "webhook-pull-request-review-submitted": { + /** @enum {string} */ + action: "submitted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** @description The review that was affected. */ + review: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the review. */ + body: string | null; + /** @description A commit SHA for the review. */ + commit_id: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the review */ + id: number; + node_id: string; + /** Format: uri */ + pull_request_url: string; + state: string; + /** Format: date-time */ + submitted_at: string | null; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review_thread resolved event */ + "webhook-pull-request-review-thread-resolved": { + /** @enum {string} */ + action: "resolved"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + thread: { + comments: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number | null; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }[]; + node_id: string; + }; + }; + /** pull_request_review_thread unresolved event */ + "webhook-pull-request-review-thread-unresolved": { + /** @enum {string} */ + action: "unresolved"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + thread: { + comments: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }[]; + node_id: string; + }; + }; + /** pull_request synchronize event */ + "webhook-pull-request-synchronize": { + /** @enum {string} */ + action: "synchronize"; + after: string; + before: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit message title. + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request unassigned event */ + "webhook-pull-request-unassigned": { + /** @enum {string} */ + action: "unassigned"; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request unlabeled event */ + "webhook-pull-request-unlabeled": { + /** @enum {string} */ + action: "unlabeled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit message title. + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request unlocked event */ + "webhook-pull-request-unlocked": { + /** @enum {string} */ + action: "unlocked"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** push event */ + "webhook-push": { + /** @description The SHA of the most recent commit on `ref` after the push. */ + after: string; + base_ref: string | null; + /** @description The SHA of the most recent commit on `ref` before the push. */ + before: string; + /** @description An array of commit objects describing the pushed commits. (Pushed commits are all commits that are included in the `compare` between the `before` commit and the `after` commit.) The array includes a maximum of 20 commits. If necessary, you can use the [Commits API](https://docs.github.com/rest/commits) to fetch additional commits. This limit is applied to timeline events only and isn't applied to webhook deliveries. */ + commits: { + /** @description An array of files added in the commit. A maximum of 3000 changed files will be reported per commit. */ + added?: string[]; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** @description Whether this commit is distinct from any that have been pushed before. */ + distinct: boolean; + id: string; + /** @description The commit message. */ + message: string; + /** @description An array of files modified by the commit. A maximum of 3000 changed files will be reported per commit. */ + modified?: string[]; + /** @description An array of files removed in the commit. A maximum of 3000 changed files will be reported per commit. */ + removed?: string[]; + /** + * Format: date-time + * @description The ISO 8601 timestamp of the commit. + */ + timestamp: string; + tree_id: string; + /** + * Format: uri + * @description URL that points to the commit API resource. + */ + url: string; + }[]; + /** @description URL that shows the changes in this `ref` update, from the `before` commit to the `after` commit. For a newly created `ref` that is directly based on the default branch, this is the comparison between the head of the default branch and the `after` commit. Otherwise, this shows all commits until the `after` commit. */ + compare: string; + /** @description Whether this push created the `ref`. */ + created: boolean; + /** @description Whether this push deleted the `ref`. */ + deleted: boolean; + enterprise?: components["schemas"]["enterprise-webhooks"]; + /** @description Whether this push was a force push of the `ref`. */ + forced: boolean; + /** Commit */ + head_commit: { + /** @description An array of files added in the commit. */ + added?: string[]; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** @description Whether this commit is distinct from any that have been pushed before. */ + distinct: boolean; + id: string; + /** @description The commit message. */ + message: string; + /** @description An array of files modified by the commit. */ + modified?: string[]; + /** @description An array of files removed in the commit. */ + removed?: string[]; + /** + * Format: date-time + * @description The ISO 8601 timestamp of the commit. + */ + timestamp: string; + tree_id: string; + /** + * Format: uri + * @description URL that points to the commit API resource. + */ + url: string; + } | null; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + pusher: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email?: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** @description The full git ref that was pushed. Example: `refs/heads/main` or `refs/tags/v3.14.1`. */ + ref: string; + /** + * Repository + * @description A git repository + */ + repository: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-registry-package-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + registry_package: { + created_at: string | null; + description: string | null; + ecosystem: string; + html_url: string; + id: number; + name: string; + namespace: string; + owner: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + package_type: string; + package_version: { + author?: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + body?: string | Record; + body_html?: string; + container_metadata?: { + labels?: unknown; + manifest?: unknown; + tag?: { + digest?: string; + name?: string; + }; + }; + created_at?: string; + description: string; + docker_metadata?: { + tags?: string[]; + }[]; + draft?: boolean; + html_url: string; + id: number; + installation_command: string; + manifest?: string; + metadata: { + [key: string]: unknown; + }[]; + name: string; + npm_metadata?: { + name?: string; + version?: string; + npm_user?: string; + author?: string | Record | null; + bugs?: string | Record | null; + dependencies?: Record; + dev_dependencies?: Record; + peer_dependencies?: Record; + optional_dependencies?: Record; + description?: string; + dist?: string | Record | null; + git_head?: string; + homepage?: string; + license?: string; + main?: string; + repository?: string | Record | null; + scripts?: Record; + id?: string; + node_version?: string; + npm_version?: string; + has_shrinkwrap?: boolean; + maintainers?: string[]; + contributors?: string[]; + engines?: Record; + keywords?: string[]; + files?: string[]; + bin?: Record; + man?: Record; + directories?: string | Record | null; + os?: string[]; + cpu?: string[]; + readme?: string; + installation_command?: string; + release_id?: number; + commit_oid?: string; + published_via_actions?: boolean; + deleted_by_id?: number; + } | null; + nuget_metadata?: + | { + id?: string | Record | number | null; + name?: string; + value?: OneOf< + [ + boolean, + string, + number, + { + url?: string; + branch?: string; + commit?: string; + type?: string; + }, + ] + >; + }[] + | null; + package_files: { + content_type: string; + created_at: string; + download_url: string; + id: number; + md5: string | null; + name: string; + sha1: string | null; + sha256: string | null; + size: number; + state: string | null; + updated_at: string; + }[]; + package_url: string; + prerelease?: boolean; + release?: { + author?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + created_at?: string; + draft?: boolean; + html_url?: string; + id?: number; + name?: string | null; + prerelease?: boolean; + published_at?: string; + tag_name?: string; + target_commitish?: string; + url?: string; + }; + rubygems_metadata?: components["schemas"]["webhook-rubygems-metadata"][]; + summary: string; + tag_name?: string; + target_commitish?: string; + target_oid?: string; + updated_at?: string; + version: string; + } | null; + registry: { + about_url?: string; + name?: string; + type?: string; + url?: string; + vendor?: string; + } | null; + updated_at: string | null; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-registry-package-updated": { + /** @enum {string} */ + action: "updated"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + registry_package: { + created_at: string; + description: unknown; + ecosystem: string; + html_url: string; + id: number; + name: string; + namespace: string; + owner: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + package_type: string; + package_version: { + author: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + body: string; + body_html: string; + created_at: string; + description: string; + docker_metadata?: ({ + tags?: string[]; + } | null)[]; + draft?: boolean; + html_url: string; + id: number; + installation_command: string; + manifest?: string; + metadata: { + [key: string]: unknown; + }[]; + name: string; + package_files: { + content_type?: string; + created_at?: string; + download_url?: string; + id?: number; + md5?: string | null; + name?: string; + sha1?: string | null; + sha256?: string; + size?: number; + state?: string; + updated_at?: string; + }[]; + package_url: string; + prerelease?: boolean; + release?: { + author: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + created_at: string; + draft: boolean; + html_url: string; + id: number; + name: string; + prerelease: boolean; + published_at: string; + tag_name: string; + target_commitish: string; + url: string; + }; + rubygems_metadata?: components["schemas"]["webhook-rubygems-metadata"][]; + summary: string; + tag_name?: string; + target_commitish: string; + target_oid: string; + updated_at: string; + version: string; + }; + registry: unknown; + updated_at: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** release created event */ + "webhook-release-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** + * Release + * @description The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object. + */ + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** release deleted event */ + "webhook-release-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** + * Release + * @description The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object. + */ + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** release edited event */ + "webhook-release-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + body?: { + /** @description The previous version of the body if the action was `edited`. */ + from: string; + }; + name?: { + /** @description The previous version of the name if the action was `edited`. */ + from: string; + }; + make_latest?: { + /** @description Whether this release was explicitly `edited` to be the latest. */ + to: boolean; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** + * Release + * @description The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object. + */ + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** release prereleased event */ + "webhook-release-prereleased": { + /** @enum {string} */ + action: "prereleased"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + } & { + assets?: unknown[]; + assets_url?: string; + author?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + body?: string | null; + created_at?: string; + draft?: boolean; + html_url?: string; + id?: number; + name?: string | null; + node_id?: string; + /** + * @description Whether the release is identified as a prerelease or a full release. + * @enum {boolean} + */ + prerelease: true; + published_at?: string | null; + tag_name?: string; + tarball_url?: string | null; + target_commitish?: string; + upload_url?: string; + url?: string; + zipball_url?: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** release published event */ + "webhook-release-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + } & { + assets?: unknown[]; + assets_url?: string; + author?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + body?: string | null; + created_at?: string; + draft?: boolean; + html_url?: string; + id?: number; + name?: string | null; + node_id?: string; + prerelease?: boolean; + /** Format: date-time */ + published_at: string | null; + tag_name?: string; + tarball_url?: string | null; + target_commitish?: string; + upload_url?: string; + url?: string; + zipball_url?: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** release released event */ + "webhook-release-released": { + /** @enum {string} */ + action: "released"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** + * Release + * @description The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object. + */ + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** release unpublished event */ + "webhook-release-unpublished": { + /** @enum {string} */ + action: "unpublished"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + } & { + assets?: unknown[]; + assets_url?: string; + author?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + body?: string | null; + created_at?: string; + draft?: boolean; + html_url?: string; + id?: number; + name?: string | null; + node_id?: string; + prerelease?: boolean; + published_at: string | null; + tag_name?: string; + tarball_url?: string | null; + target_commitish?: string; + upload_url?: string; + url?: string; + zipball_url?: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** Repository advisory published event */ + "webhook-repository-advisory-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + repository_advisory: components["schemas"]["repository-advisory"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** Repository advisory reported event */ + "webhook-repository-advisory-reported": { + /** @enum {string} */ + action: "reported"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + repository_advisory: components["schemas"]["repository-advisory"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** repository archived event */ + "webhook-repository-archived": { + /** @enum {string} */ + action: "archived"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository created event */ + "webhook-repository-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository deleted event */ + "webhook-repository-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_dispatch event */ + "webhook-repository-dispatch-sample": { + /** @enum {string} */ + action: "sample.collected"; + branch: string; + client_payload: { + [key: string]: unknown; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository edited event */ + "webhook-repository-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + default_branch?: { + from: string; + }; + description?: { + from: string | null; + }; + homepage?: { + from: string | null; + }; + topics?: { + from?: string[] | null; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_import event */ + "webhook-repository-import": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** @enum {string} */ + status: "success" | "cancelled" | "failure"; + }; + /** repository privatized event */ + "webhook-repository-privatized": { + /** @enum {string} */ + action: "privatized"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository publicized event */ + "webhook-repository-publicized": { + /** @enum {string} */ + action: "publicized"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository renamed event */ + "webhook-repository-renamed": { + /** @enum {string} */ + action: "renamed"; + changes: { + repository: { + name: { + from: string; + }; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository ruleset created event */ + "webhook-repository-ruleset-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + repository_ruleset: components["schemas"]["repository-ruleset"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository ruleset deleted event */ + "webhook-repository-ruleset-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + repository_ruleset: components["schemas"]["repository-ruleset"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository ruleset edited event */ + "webhook-repository-ruleset-edited": { + /** @enum {string} */ + action: "edited"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + repository_ruleset: components["schemas"]["repository-ruleset"]; + changes?: { + name?: { + from?: string; + }; + enforcement?: { + from?: string; + }; + conditions?: { + added?: components["schemas"]["repository-ruleset-conditions"][]; + deleted?: components["schemas"]["repository-ruleset-conditions"][]; + updated?: { + condition?: components["schemas"]["repository-ruleset-conditions"]; + changes?: { + condition_type?: { + from?: string; + }; + target?: { + from?: string; + }; + include?: { + from?: string[]; + }; + exclude?: { + from?: string[]; + }; + }; + }[]; + }; + rules?: { + added?: components["schemas"]["repository-rule"][]; + deleted?: components["schemas"]["repository-rule"][]; + updated?: { + rule?: components["schemas"]["repository-rule"]; + changes?: { + configuration?: { + from?: string; + }; + rule_type?: { + from?: string; + }; + pattern?: { + from?: string; + }; + }; + }[]; + }; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository transferred event */ + "webhook-repository-transferred": { + /** @enum {string} */ + action: "transferred"; + changes: { + owner: { + from: { + /** Organization */ + organization?: { + /** Format: uri */ + avatar_url: string; + description: string | null; + /** Format: uri */ + events_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url?: string; + id: number; + /** Format: uri */ + issues_url: string; + login: string; + /** Format: uri-template */ + members_url: string; + node_id: string; + /** Format: uri-template */ + public_members_url: string; + /** Format: uri */ + repos_url: string; + /** Format: uri */ + url: string; + }; + /** User */ + user?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository unarchived event */ + "webhook-repository-unarchived": { + /** @enum {string} */ + action: "unarchived"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_vulnerability_alert create event */ + "webhook-repository-vulnerability-alert-create": { + /** @enum {string} */ + action: "create"; + alert: { + affected_package_name: string; + affected_range: string; + created_at: string; + dismiss_reason?: string; + dismissed_at?: string; + /** User */ + dismisser?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + external_identifier: string; + /** Format: uri */ + external_reference: string | null; + fix_reason?: string; + /** Format: date-time */ + fixed_at?: string; + fixed_in?: string; + ghsa_id: string; + id: number; + node_id: string; + number: number; + severity: string; + /** @enum {string} */ + state: "open" | "dismissed" | "fixed"; + } & { + affected_package_name?: string; + affected_range?: string; + created_at?: string; + external_identifier?: string; + external_reference?: string | null; + fixed_in?: string; + ghsa_id?: string; + id?: number; + node_id?: string; + number?: number; + severity?: string; + /** @enum {string} */ + state: "open"; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_vulnerability_alert dismiss event */ + "webhook-repository-vulnerability-alert-dismiss": { + /** @enum {string} */ + action: "dismiss"; + alert: { + affected_package_name: string; + affected_range: string; + created_at: string; + dismiss_comment?: string | null; + dismiss_reason?: string; + dismissed_at?: string; + /** User */ + dismisser?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + external_identifier: string; + /** Format: uri */ + external_reference: string | null; + fix_reason?: string; + /** Format: date-time */ + fixed_at?: string; + fixed_in?: string; + ghsa_id: string; + id: number; + node_id: string; + number: number; + severity: string; + /** @enum {string} */ + state: "open" | "dismissed" | "fixed"; + } & { + affected_package_name?: string; + affected_range?: string; + created_at?: string; + dismiss_comment?: string | null; + dismiss_reason: string; + dismissed_at: string; + /** User */ + dismisser: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + external_identifier?: string; + external_reference?: string | null; + fixed_in?: string; + ghsa_id?: string; + id?: number; + node_id?: string; + number?: number; + severity?: string; + /** @enum {string} */ + state: "dismissed"; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_vulnerability_alert reopen event */ + "webhook-repository-vulnerability-alert-reopen": { + /** @enum {string} */ + action: "reopen"; + alert: { + affected_package_name: string; + affected_range: string; + created_at: string; + dismiss_reason?: string; + dismissed_at?: string; + /** User */ + dismisser?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + external_identifier: string; + /** Format: uri */ + external_reference: string | null; + fix_reason?: string; + /** Format: date-time */ + fixed_at?: string; + fixed_in?: string; + ghsa_id: string; + id: number; + node_id: string; + number: number; + severity: string; + /** @enum {string} */ + state: "open" | "dismissed" | "fixed"; + } & { + affected_package_name?: string; + affected_range?: string; + created_at?: string; + external_identifier?: string; + external_reference?: string | null; + fixed_in?: string; + ghsa_id?: string; + id?: number; + node_id?: string; + number?: number; + severity?: string; + /** @enum {string} */ + state: "open"; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_vulnerability_alert resolve event */ + "webhook-repository-vulnerability-alert-resolve": { + /** @enum {string} */ + action: "resolve"; + alert: { + affected_package_name: string; + affected_range: string; + created_at: string; + dismiss_reason?: string; + dismissed_at?: string; + /** User */ + dismisser?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + external_identifier: string; + /** Format: uri */ + external_reference: string | null; + fix_reason?: string; + /** Format: date-time */ + fixed_at?: string; + fixed_in?: string; + ghsa_id: string; + id: number; + node_id: string; + number: number; + severity: string; + /** @enum {string} */ + state: "open" | "dismissed" | "fixed"; + } & { + affected_package_name?: string; + affected_range?: string; + created_at?: string; + external_identifier?: string; + external_reference?: string | null; + fix_reason?: string; + /** Format: date-time */ + fixed_at?: string; + fixed_in?: string; + ghsa_id?: string; + id?: number; + node_id?: string; + number?: number; + severity?: string; + /** @enum {string} */ + state: "fixed" | "open"; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** secret_scanning_alert created event */ + "webhook-secret-scanning-alert-created": { + /** @enum {string} */ + action: "created"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** Secret Scanning Alert Location Created Event */ + "webhook-secret-scanning-alert-location-created": { + /** @enum {string} */ + action?: "created"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + installation?: components["schemas"]["simple-installation"]; + location: components["schemas"]["secret-scanning-location"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Secret Scanning Alert Location Created Event */ + "webhook-secret-scanning-alert-location-created-form-encoded": { + /** @description A URL-encoded string of the secret_scanning_alert_location.created JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** secret_scanning_alert reopened event */ + "webhook-secret-scanning-alert-reopened": { + /** @enum {string} */ + action: "reopened"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** secret_scanning_alert resolved event */ + "webhook-secret-scanning-alert-resolved": { + /** @enum {string} */ + action: "resolved"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** secret_scanning_alert revoked event */ + "webhook-secret-scanning-alert-revoked": { + /** @enum {string} */ + action: "revoked"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** secret_scanning_alert validated event */ + "webhook-secret-scanning-alert-validated": { + /** @enum {string} */ + action: "validated"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** security_advisory published event */ + "webhook-security-advisory-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + /** @description The details of the security advisory, including summary, description, and severity. */ + security_advisory: { + cvss: { + score: number; + vector_string: string | null; + }; + cwes: { + cwe_id: string; + name: string; + }[]; + description: string; + ghsa_id: string; + identifiers: { + type: string; + value: string; + }[]; + published_at: string; + references: { + /** Format: uri */ + url: string; + }[]; + severity: string; + summary: string; + updated_at: string; + vulnerabilities: { + first_patched_version: { + identifier: string; + } | null; + package: { + ecosystem: string; + name: string; + }; + severity: string; + vulnerable_version_range: string; + }[]; + withdrawn_at: string | null; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** security_advisory updated event */ + "webhook-security-advisory-updated": { + /** @enum {string} */ + action: "updated"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + /** @description The details of the security advisory, including summary, description, and severity. */ + security_advisory: { + cvss: { + score: number; + vector_string: string | null; + }; + cwes: { + cwe_id: string; + name: string; + }[]; + description: string; + ghsa_id: string; + identifiers: { + type: string; + value: string; + }[]; + published_at: string; + references: { + /** Format: uri */ + url: string; + }[]; + severity: string; + summary: string; + updated_at: string; + vulnerabilities: { + first_patched_version: { + identifier: string; + } | null; + package: { + ecosystem: string; + name: string; + }; + severity: string; + vulnerable_version_range: string; + }[]; + withdrawn_at: string | null; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** security_advisory withdrawn event */ + "webhook-security-advisory-withdrawn": { + /** @enum {string} */ + action: "withdrawn"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + /** @description The details of the security advisory, including summary, description, and severity. */ + security_advisory: { + cvss: { + score: number; + vector_string: string | null; + }; + cwes: { + cwe_id: string; + name: string; + }[]; + description: string; + ghsa_id: string; + identifiers: { + type: string; + value: string; + }[]; + published_at: string; + references: { + /** Format: uri */ + url: string; + }[]; + severity: string; + summary: string; + updated_at: string; + vulnerabilities: { + first_patched_version: { + identifier: string; + } | null; + package: { + ecosystem: string; + name: string; + }; + severity: string; + vulnerable_version_range: string; + }[]; + withdrawn_at: string; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** security_and_analysis event */ + "webhook-security-and-analysis": { + changes: { + from?: { + security_and_analysis?: components["schemas"]["security-and-analysis"]; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["full-repository"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** sponsorship cancelled event */ + "webhook-sponsorship-cancelled": { + /** @enum {string} */ + action: "cancelled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: { + created_at: string; + maintainer?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + node_id: string; + privacy_level: string; + /** User */ + sponsor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** User */ + sponsorable: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + tier: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** sponsorship created event */ + "webhook-sponsorship-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: { + created_at: string; + maintainer?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + node_id: string; + privacy_level: string; + /** User */ + sponsor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** User */ + sponsorable: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + tier: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** sponsorship edited event */ + "webhook-sponsorship-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + privacy_level?: { + /** @description The `edited` event types include the details about the change when someone edits a sponsorship to change the privacy. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: { + created_at: string; + maintainer?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + node_id: string; + privacy_level: string; + /** User */ + sponsor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** User */ + sponsorable: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + tier: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** sponsorship pending_cancellation event */ + "webhook-sponsorship-pending-cancellation": { + /** @enum {string} */ + action: "pending_cancellation"; + /** @description The `pending_cancellation` and `pending_tier_change` event types will include the date the cancellation or tier change will take effect. */ + effective_date?: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: { + created_at: string; + maintainer?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + node_id: string; + privacy_level: string; + /** User */ + sponsor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** User */ + sponsorable: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + tier: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** sponsorship pending_tier_change event */ + "webhook-sponsorship-pending-tier-change": { + /** @enum {string} */ + action: "pending_tier_change"; + changes: { + tier: { + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + from: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** @description The `pending_cancellation` and `pending_tier_change` event types will include the date the cancellation or tier change will take effect. */ + effective_date?: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: { + created_at: string; + maintainer?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + node_id: string; + privacy_level: string; + /** User */ + sponsor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** User */ + sponsorable: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + tier: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** sponsorship tier_changed event */ + "webhook-sponsorship-tier-changed": { + /** @enum {string} */ + action: "tier_changed"; + changes: { + tier: { + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + from: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: { + created_at: string; + maintainer?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + node_id: string; + privacy_level: string; + /** User */ + sponsor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** User */ + sponsorable: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + tier: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** star created event */ + "webhook-star-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** @description The time the star was created. This is a timestamp in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. Will be `null` for the `deleted` action. */ + starred_at: string | null; + }; + /** star deleted event */ + "webhook-star-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** @description The time the star was created. This is a timestamp in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. Will be `null` for the `deleted` action. */ + starred_at: unknown; + }; + /** status event */ + "webhook-status": { + /** Format: uri */ + avatar_url?: string | null; + /** @description An array of branch objects containing the status' SHA. Each branch contains the given SHA, but the SHA may or may not be the head of the branch. The array includes a maximum of 10 branches. */ + branches: { + commit: { + sha: string | null; + /** Format: uri */ + url: string | null; + }; + name: string; + protected: boolean; + }[]; + commit: { + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id?: number; + login?: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + comments_url: string; + commit: { + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + } & { + date: string; + email?: string; + name?: string; + }; + comment_count: number; + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + } & { + date: string; + email?: string; + name?: string; + }; + message: string; + tree: { + sha: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + url: string; + verification: { + payload: string | null; + /** @enum {string} */ + reason: + | "expired_key" + | "not_signing_key" + | "gpgverify_error" + | "gpgverify_unavailable" + | "unsigned" + | "unknown_signature_type" + | "no_user" + | "unverified_email" + | "bad_email" + | "unknown_key" + | "malformed_signature" + | "invalid" + | "valid" + | "bad_cert" + | "ocsp_pending"; + signature: string | null; + verified: boolean; + }; + }; + /** User */ + committer: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id?: number; + login?: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + node_id: string; + parents: { + /** Format: uri */ + html_url: string; + sha: string; + /** Format: uri */ + url: string; + }[]; + sha: string; + /** Format: uri */ + url: string; + }; + context: string; + created_at: string; + /** @description The optional human-readable description added to the status. */ + description: string | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + /** @description The unique identifier of the status. */ + id: number; + installation?: components["schemas"]["simple-installation"]; + name: string; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** @description The Commit SHA. */ + sha: string; + /** + * @description The new state. Can be `pending`, `success`, `failure`, or `error`. + * @enum {string} + */ + state: "pending" | "success" | "failure" | "error"; + /** @description The optional link added to the status. */ + target_url: string | null; + updated_at: string; + }; + /** team_add event */ + "webhook-team-add": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** team added_to_repository event */ + "webhook-team-added-to-repository": { + /** @enum {string} */ + action: "added_to_repository"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** team created event */ + "webhook-team-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender: components["schemas"]["simple-user-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** team deleted event */ + "webhook-team-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** team edited event */ + "webhook-team-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the team if the action was `edited`. */ + changes: { + description?: { + /** @description The previous version of the description if the action was `edited`. */ + from: string; + }; + name?: { + /** @description The previous version of the name if the action was `edited`. */ + from: string; + }; + privacy?: { + /** @description The previous version of the team's privacy if the action was `edited`. */ + from: string; + }; + notification_setting?: { + /** @description The previous version of the team's notification setting if the action was `edited`. */ + from: string; + }; + repository?: { + permissions: { + from: { + /** @description The previous version of the team member's `admin` permission on a repository, if the action was `edited`. */ + admin?: boolean; + /** @description The previous version of the team member's `pull` permission on a repository, if the action was `edited`. */ + pull?: boolean; + /** @description The previous version of the team member's `push` permission on a repository, if the action was `edited`. */ + push?: boolean; + }; + }; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender: components["schemas"]["simple-user-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** team removed_from_repository event */ + "webhook-team-removed-from-repository": { + /** @enum {string} */ + action: "removed_from_repository"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender: components["schemas"]["simple-user-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** watch started event */ + "webhook-watch-started": { + /** @enum {string} */ + action: "started"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** workflow_dispatch event */ + "webhook-workflow-dispatch": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + inputs: { + [key: string]: unknown; + } | null; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + ref: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow: string; + }; + /** workflow_job completed event */ + "webhook-workflow-job-completed": { + /** @enum {string} */ + action: "completed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow_job: { + /** Format: uri */ + check_run_url: string; + completed_at: string | null; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | null + | "skipped" + | "cancelled" + | "action_required" + | "neutral" + | "timed_out"; + /** @description The time that the job created. */ + created_at: string; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** @description Custom labels for the job. Specified by the [`"runs-on"` attribute](https://docs.github.com/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) in the workflow YAML. */ + labels: string[]; + name: string; + node_id: string; + run_attempt: number; + run_id: number; + /** Format: uri */ + run_url: string; + /** @description The ID of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_group_id: number | null; + /** @description The name of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_group_name: string | null; + /** @description The ID of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_id: number | null; + /** @description The name of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_name: string | null; + started_at: string; + /** + * @description The current status of the job. Can be `queued`, `in_progress`, `waiting`, or `completed`. + * @enum {string} + */ + status: "queued" | "in_progress" | "completed" | "waiting"; + /** @description The name of the current branch. */ + head_branch: string | null; + /** @description The name of the workflow. */ + workflow_name: string | null; + steps: { + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "failure" | "skipped" | "success" | "cancelled" | null; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: "in_progress" | "completed" | "queued"; + }[]; + /** Format: uri */ + url: string; + } & { + check_run_url?: string; + completed_at?: string; + /** @enum {string} */ + conclusion: + | "success" + | "failure" + | "skipped" + | "cancelled" + | "action_required" + | "neutral" + | "timed_out"; + /** @description The time that the job created. */ + created_at?: string; + head_sha?: string; + html_url?: string; + id?: number; + labels?: (string | null)[]; + name?: string; + node_id?: string; + run_attempt?: number; + run_id?: number; + run_url?: string; + runner_group_id?: number | null; + runner_group_name?: string | null; + runner_id?: number | null; + runner_name?: string | null; + started_at?: string; + status?: string; + /** @description The name of the current branch. */ + head_branch?: string | null; + /** @description The name of the workflow. */ + workflow_name?: string | null; + steps?: unknown[]; + url?: string; + }; + deployment?: components["schemas"]["deployment"]; + }; + /** workflow_job in_progress event */ + "webhook-workflow-job-in-progress": { + /** @enum {string} */ + action: "in_progress"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow_job: { + /** Format: uri */ + check_run_url: string; + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "success" | "failure" | null | "cancelled" | "neutral"; + /** @description The time that the job created. */ + created_at: string; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** @description Custom labels for the job. Specified by the [`"runs-on"` attribute](https://docs.github.com/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) in the workflow YAML. */ + labels: string[]; + name: string; + node_id: string; + run_attempt: number; + run_id: number; + /** Format: uri */ + run_url: string; + /** @description The ID of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_group_id: number | null; + /** @description The name of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_group_name: string | null; + /** @description The ID of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_id: number | null; + /** @description The name of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_name: string | null; + started_at: string; + /** + * @description The current status of the job. Can be `queued`, `in_progress`, or `completed`. + * @enum {string} + */ + status: "queued" | "in_progress" | "completed"; + /** @description The name of the current branch. */ + head_branch: string | null; + /** @description The name of the workflow. */ + workflow_name: string | null; + steps: { + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "failure" | "skipped" | "success" | null | "cancelled"; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: "in_progress" | "completed" | "queued" | "pending"; + }[]; + /** Format: uri */ + url: string; + } & { + check_run_url?: string; + completed_at?: string | null; + conclusion?: string | null; + /** @description The time that the job created. */ + created_at?: string; + head_sha?: string; + html_url?: string; + id?: number; + labels?: string[]; + name?: string; + node_id?: string; + run_attempt?: number; + run_id?: number; + run_url?: string; + runner_group_id?: number | null; + runner_group_name?: string | null; + runner_id?: number | null; + runner_name?: string | null; + started_at?: string; + /** @enum {string} */ + status: "in_progress" | "completed" | "queued"; + /** @description The name of the current branch. */ + head_branch?: string | null; + /** @description The name of the workflow. */ + workflow_name?: string | null; + steps: { + completed_at: string | null; + conclusion: string | null; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: "in_progress" | "completed" | "pending" | "queued"; + }[]; + url?: string; + }; + deployment?: components["schemas"]["deployment"]; + }; + /** workflow_job queued event */ + "webhook-workflow-job-queued": { + /** @enum {string} */ + action: "queued"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow_job: { + /** Format: uri */ + check_run_url: string; + completed_at: string | null; + conclusion: string | null; + /** @description The time that the job created. */ + created_at: string; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + labels: string[]; + name: string; + node_id: string; + run_attempt: number; + run_id: number; + /** Format: uri */ + run_url: string; + runner_group_id: number | null; + runner_group_name: string | null; + runner_id: number | null; + runner_name: string | null; + /** Format: date-time */ + started_at: string; + /** @enum {string} */ + status: "queued" | "in_progress" | "completed" | "waiting"; + /** @description The name of the current branch. */ + head_branch: string | null; + /** @description The name of the workflow. */ + workflow_name: string | null; + steps: { + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "failure" | "skipped" | "success" | "cancelled" | null; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: "completed" | "in_progress" | "queued" | "pending"; + }[]; + /** Format: uri */ + url: string; + }; + deployment?: components["schemas"]["deployment"]; + }; + /** workflow_job waiting event */ + "webhook-workflow-job-waiting": { + /** @enum {string} */ + action: "waiting"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow_job: { + /** Format: uri */ + check_run_url: string; + completed_at: string | null; + conclusion: string | null; + /** @description The time that the job created. */ + created_at: string; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + labels: string[]; + name: string; + node_id: string; + run_attempt: number; + run_id: number; + /** Format: uri */ + run_url: string; + runner_group_id: number | null; + runner_group_name: string | null; + runner_id: number | null; + runner_name: string | null; + /** Format: date-time */ + started_at: string; + /** @description The name of the current branch. */ + head_branch: string | null; + /** @description The name of the workflow. */ + workflow_name: string | null; + /** @enum {string} */ + status: "queued" | "in_progress" | "completed" | "waiting"; + steps: { + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "failure" | "skipped" | "success" | "cancelled" | null; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: + | "completed" + | "in_progress" + | "queued" + | "pending" + | "waiting"; + }[]; + /** Format: uri */ + url: string; + }; + deployment?: components["schemas"]["deployment"]; + }; + /** workflow_run completed event */ + "webhook-workflow-run-completed": { + /** @enum {string} */ + action: "completed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** Workflow */ + workflow: { + /** Format: uri */ + badge_url: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + node_id: string; + path: string; + state: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + artifacts_url: string; + /** Format: uri */ + cancel_url: string; + check_suite_id: number; + check_suite_node_id: string; + /** Format: uri */ + check_suite_url: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "skipped"; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** Repository Lite */ + head_repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + jobs_url: string; + /** Format: uri */ + logs_url: string; + name: string | null; + node_id: string; + path: string; + /** Format: uri */ + previous_attempt_url: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + /** Repository Lite */ + repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + rerun_url: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "pending" + | "waiting"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + /** Format: uri */ + workflow_url: string; + } & { + actor?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + artifacts_url?: string; + cancel_url?: string; + check_suite_id?: number; + check_suite_node_id?: string; + check_suite_url?: string; + /** @enum {string} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | "skipped"; + created_at?: string; + event?: string; + head_branch?: string | null; + head_commit?: { + author?: { + email?: string; + name?: string; + }; + committer?: { + email?: string; + name?: string; + }; + id?: string; + message?: string; + timestamp?: string; + tree_id?: string; + }; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha?: string; + html_url?: string; + id?: number; + jobs_url?: string; + logs_url?: string; + name?: string | null; + node_id?: string; + path?: string; + previous_attempt_url?: string | null; + pull_requests?: unknown[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt?: number; + run_number?: number; + run_started_at?: string; + status?: string; + triggering_actor?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + } | null; + updated_at?: string; + url?: string; + workflow_id?: number; + workflow_url?: string; + }; + }; + /** workflow_run in_progress event */ + "webhook-workflow-run-in-progress": { + /** @enum {string} */ + action: "in_progress"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** Workflow */ + workflow: { + /** Format: uri */ + badge_url: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + node_id: string; + path: string; + state: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + artifacts_url: string; + /** Format: uri */ + cancel_url: string; + check_suite_id: number; + check_suite_node_id: string; + /** Format: uri */ + check_suite_url: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | "skipped" + | null; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** Repository Lite */ + head_repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + jobs_url: string; + /** Format: uri */ + logs_url: string; + name: string | null; + node_id: string; + path: string; + /** Format: uri */ + previous_attempt_url: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + /** Repository Lite */ + repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + rerun_url: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "pending"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + /** Format: uri */ + workflow_url: string; + } & { + actor?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + artifacts_url?: string; + cancel_url?: string; + check_suite_id?: number; + check_suite_node_id?: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "skipped" + | "stale" + | null; + created_at?: string; + event?: string; + head_branch?: string | null; + head_commit?: { + author?: { + email?: string; + name?: string; + }; + committer?: { + email?: string; + name?: string; + }; + id?: string; + message?: string; + timestamp?: string; + tree_id?: string; + }; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string | null; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha?: string; + html_url?: string; + id?: number; + jobs_url?: string; + logs_url?: string; + name?: string | null; + node_id?: string; + path?: string; + previous_attempt_url?: string | null; + pull_requests?: unknown[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt?: number; + run_number?: number; + run_started_at?: string; + status?: string; + triggering_actor?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + updated_at?: string; + url?: string; + workflow_id?: number; + workflow_url?: string; + }; + }; + /** workflow_run requested event */ + "webhook-workflow-run-requested": { + /** @enum {string} */ + action: "requested"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** Workflow */ + workflow: { + /** Format: uri */ + badge_url: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + node_id: string; + path: string; + state: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + /** Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + artifacts_url: string; + /** Format: uri */ + cancel_url: string; + check_suite_id: number; + check_suite_node_id: string; + /** Format: uri */ + check_suite_url: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "skipped" + | "startup_failure"; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** Repository Lite */ + head_repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + jobs_url: string; + /** Format: uri */ + logs_url: string; + name: string | null; + node_id: string; + path: string; + /** Format: uri */ + previous_attempt_url: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + /** Repository Lite */ + repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + rerun_url: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "pending" + | "waiting"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + /** Format: uri */ + workflow_url: string; + display_title: string; + }; + }; + }; + responses: { + /** @description Validation failed, or the endpoint has been spammed. */ + validation_failed_simple: { + content: { + "application/json": components["schemas"]["validation-error-simple"]; + }; + }; + /** @description Resource not found */ + not_found: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Bad Request */ + bad_request: { + content: { + "application/json": components["schemas"]["basic-error"]; + "application/scim+json": components["schemas"]["scim-error"]; + }; + }; + /** @description Validation failed, or the endpoint has been spammed. */ + validation_failed: { + content: { + "application/json": components["schemas"]["validation-error"]; + }; + }; + /** @description Accepted */ + accepted: { + content: { + "application/json": Record; + }; + }; + /** @description Not modified */ + not_modified: { + content: never; + }; + /** @description Requires authentication */ + requires_authentication: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Forbidden */ + forbidden: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Service unavailable */ + service_unavailable: { + content: { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + }; + }; + }; + /** @description Forbidden Gist */ + forbidden_gist: { + content: { + "application/json": { + block?: { + reason?: string; + created_at?: string; + html_url?: string | null; + }; + message?: string; + documentation_url?: string; + }; + }; + }; + /** @description Moved permanently */ + moved_permanently: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Conflict */ + conflict: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Response */ + actions_runner_jitconfig: { + content: { + "application/json": { + runner: components["schemas"]["runner"]; + /** @description The base64 encoded runner configuration. */ + encoded_jit_config: string; + }; + }; + }; + /** @description Response */ + actions_runner_labels: { + content: { + "application/json": { + total_count: number; + labels: components["schemas"]["runner-label"][]; + }; + }; + }; + /** @description Response */ + actions_runner_labels_readonly: { + content: { + "application/json": { + total_count: number; + labels: components["schemas"]["runner-label"][]; + }; + }; + }; + /** @description Internal Error */ + internal_error: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description The value of `per_page` multiplied by `page` cannot be greater than 10000. */ + package_es_list_error: { + content: never; + }; + /** @description A header with no content is returned. */ + no_content: { + content: never; + }; + /** @description Gone */ + gone: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Temporary Redirect */ + temporary_redirect: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Response if GitHub Advanced Security is not enabled for this repository */ + code_scanning_forbidden_read: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Response if the repository is archived or if GitHub Advanced Security is not enabled for this repository */ + code_scanning_forbidden_write: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Found */ + found: { + content: never; + }; + /** @description Response if there is already a validation run in progress with a different default setup configuration */ + code_scanning_conflict: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Response if GitHub Advanced Security is not enabled for this repository */ + dependency_review_forbidden: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Unavailable due to service under maintenance. */ + porter_maintenance: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + parameters: { + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + "pagination-before"?: string; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + "pagination-after"?: string; + /** @description The direction to sort the results by. */ + direction?: "asc" | "desc"; + /** @description The GHSA (GitHub Security Advisory) identifier of the advisory. */ + ghsa_id: string; + /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + "per-page"?: number; + /** @description Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors. */ + cursor?: string; + "delivery-id": number; + /** @description The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + page?: number; + /** @description Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: string; + /** @description The unique identifier of the installation. */ + "installation-id": number; + /** @description The client ID of the GitHub app. */ + "client-id": string; + "app-slug": string; + /** @description The unique identifier of the classroom assignment. */ + "assignment-id": number; + /** @description The unique identifier of the classroom. */ + "classroom-id": number; + /** @description The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: string; + /** + * @description A comma-separated list of states. If specified, only alerts with these states will be returned. + * + * Can be: `auto_dismissed`, `dismissed`, `fixed`, `open` + */ + "dependabot-alert-comma-separated-states"?: string; + /** + * @description A comma-separated list of severities. If specified, only alerts with these severities will be returned. + * + * Can be: `low`, `medium`, `high`, `critical` + */ + "dependabot-alert-comma-separated-severities"?: string; + /** + * @description A comma-separated list of ecosystems. If specified, only alerts for these ecosystems will be returned. + * + * Can be: `composer`, `go`, `maven`, `npm`, `nuget`, `pip`, `pub`, `rubygems`, `rust` + */ + "dependabot-alert-comma-separated-ecosystems"?: string; + /** @description A comma-separated list of package names. If specified, only alerts for these packages will be returned. */ + "dependabot-alert-comma-separated-packages"?: string; + /** @description The scope of the vulnerable dependency. If specified, only alerts with this scope will be returned. */ + "dependabot-alert-scope"?: "development" | "runtime"; + /** + * @description The property by which to sort the results. + * `created` means when the alert was created. + * `updated` means when the alert's state last changed. + */ + "dependabot-alert-sort"?: "created" | "updated"; + /** + * @description **Deprecated**. The number of results per page (max 100), starting from the first matching result. + * This parameter must not be used in combination with `last`. + * Instead, use `per_page` in combination with `after` to fetch the first page of results. + */ + "pagination-first"?: number; + /** + * @description **Deprecated**. The number of results per page (max 100), starting from the last matching result. + * This parameter must not be used in combination with `first`. + * Instead, use `per_page` in combination with `before` to fetch the last page of results. + */ + "pagination-last"?: number; + /** @description Set to `open` or `resolved` to only list secret scanning alerts in a specific state. */ + "secret-scanning-alert-state"?: "open" | "resolved"; + /** + * @description A comma-separated list of secret types to return. By default all secret types are returned. + * See "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)" + * for a complete list of secret types. + */ + "secret-scanning-alert-secret-type"?: string; + /** @description A comma-separated list of resolutions. Only secret scanning alerts with one of these resolutions are listed. Valid resolutions are `false_positive`, `wont_fix`, `revoked`, `pattern_edited`, `pattern_deleted` or `used_in_tests`. */ + "secret-scanning-alert-resolution"?: string; + /** @description The property to sort the results by. `created` means when the alert was created. `updated` means when the alert was updated or resolved. */ + "secret-scanning-alert-sort"?: "created" | "updated"; + /** @description A comma-separated list of validities that, when present, will return alerts that match the validities in this list. Valid options are `active`, `inactive`, and `unknown`. */ + "secret-scanning-alert-validity"?: string; + /** @description The unique identifier of the gist. */ + "gist-id": string; + /** @description The unique identifier of the comment. */ + "comment-id": number; + /** @description A list of comma separated label names. Example: `bug,ui,@high` */ + labels?: string; + /** @description account_id parameter */ + "account-id": number; + /** @description The unique identifier of the plan. */ + "plan-id": number; + /** @description The property to sort the results by. */ + sort?: "created" | "updated"; + /** @description The account owner of the repository. The name is not case sensitive. */ + owner: string; + /** @description The name of the repository without the `.git` extension. The name is not case sensitive. */ + repo: string; + /** @description If `true`, show notifications marked as read. */ + all?: boolean; + /** @description If `true`, only shows notifications in which the user is directly participating or mentioned. */ + participating?: boolean; + /** @description Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + before?: string; + /** @description The unique identifier of the notification thread. This corresponds to the value returned in the `id` field when you retrieve notifications (for example with the [`GET /notifications` operation](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user)). */ + "thread-id": number; + /** @description An organization ID. Only return organizations with an ID greater than this ID. */ + "since-org"?: number; + /** @description The organization name. The name is not case sensitive. */ + org: string; + /** @description The unique identifier of the repository. */ + "repository-id": number; + /** @description Unique identifier of the self-hosted runner. */ + "runner-id": number; + /** @description The name of a self-hosted runner's custom label. */ + "runner-label-name": string; + /** @description The name of the secret. */ + "secret-name": string; + /** @description The number of results per page (max 30). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + "variables-per-page"?: number; + /** @description The name of the variable. */ + "variable-name": string; + /** @description The handle for the GitHub user account. */ + username: string; + /** @description The name of a code scanning tool. Only results by this tool will be listed. You can specify the tool by using either `tool_name` or `tool_guid`, but not both. */ + "tool-name"?: components["schemas"]["code-scanning-analysis-tool-name"]; + /** @description The GUID of a code scanning tool. Only results by this tool will be listed. Note that some code scanning tools may not include a GUID in their analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, but not both. */ + "tool-guid"?: components["schemas"]["code-scanning-analysis-tool-guid"]; + /** @description The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. */ + "hook-id": number; + /** @description The unique identifier of the invitation. */ + "invitation-id": number; + /** @description The name of the codespace. */ + "codespace-name": string; + /** @description The unique identifier of the migration. */ + "migration-id": number; + /** @description repo_name parameter */ + "repo-name": string; + /** @description The slug of the team name. */ + "team-slug": string; + /** @description The unique identifier of the role. */ + "role-id": number; + /** + * @description The selected visibility of the packages. This parameter is optional and only filters an existing result set. + * + * The `internal` visibility is only supported for GitHub Packages registries that allow for granular permissions. For other ecosystems `internal` is synonymous with `private`. + * For the list of GitHub Packages registries that support granular permissions, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + */ + "package-visibility"?: "public" | "private" | "internal"; + /** @description The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + "package-type": + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** @description The name of the package. */ + "package-name": string; + /** @description Unique identifier of the package version. */ + "package-version-id": number; + /** @description The property by which to sort the results. */ + "personal-access-token-sort"?: "created_at"; + /** @description A list of owner usernames to use to filter the results. */ + "personal-access-token-owner"?: string[]; + /** @description The name of the repository to use to filter the results. */ + "personal-access-token-repository"?: string; + /** @description The permission to use to filter the results. */ + "personal-access-token-permission"?: string; + /** @description Only show fine-grained personal access tokens used before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + "personal-access-token-before"?: string; + /** @description Only show fine-grained personal access tokens used after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + "personal-access-token-after"?: string; + /** @description The unique identifier of the fine-grained personal access token. */ + "fine-grained-personal-access-token-id": number; + /** @description The custom property name. The name is case sensitive. */ + "custom-property-name": string; + /** @description The name of the repository to filter on. When specified, only rule evaluations from this repository will be returned. */ + "repository-name-in-query"?: number; + /** + * @description The time period to filter by. + * + * For example, `day` will filter for rule suites that occurred in the past 24 hours, and `week` will filter for insights that occurred in the past 7 days (168 hours). + */ + "time-period"?: "hour" | "day" | "week" | "month"; + /** @description The handle for the GitHub user account to filter on. When specified, only rule evaluations triggered by this actor will be returned. */ + "actor-name-in-query"?: string; + /** @description The rule results to filter on. When specified, only suites with this result will be returned. */ + "rule-suite-result"?: "pass" | "fail" | "bypass" | "all"; + /** + * @description The unique identifier of the rule suite result. + * To get this ID, you can use [GET /repos/{owner}/{repo}/rulesets/rule-suites](https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites) + * for repositories and [GET /orgs/{org}/rulesets/rule-suites](https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites) + * for organizations. + */ + "rule-suite-id": number; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events before this cursor. To receive an initial cursor on your first request, include an empty "before" query string. */ + "secret-scanning-pagination-before-org-repo"?: string; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events after this cursor. To receive an initial cursor on your first request, include an empty "after" query string. */ + "secret-scanning-pagination-after-org-repo"?: string; + /** @description The number that identifies the discussion. */ + "discussion-number": number; + /** @description The number that identifies the comment. */ + "comment-number": number; + /** @description The unique identifier of the reaction. */ + "reaction-id": number; + /** @description The unique identifier of the project. */ + "project-id": number; + /** @description The security feature to enable or disable. */ + "security-product": + | "dependency_graph" + | "dependabot_alerts" + | "dependabot_security_updates" + | "advanced_security" + | "code_scanning_default_setup" + | "secret_scanning" + | "secret_scanning_push_protection"; + /** + * @description The action to take. + * + * `enable_all` means to enable the specified security feature for all repositories in the organization. + * `disable_all` means to disable the specified security feature for all repositories in the organization. + */ + "org-security-product-enablement": "enable_all" | "disable_all"; + /** @description The unique identifier of the card. */ + "card-id": number; + /** @description The unique identifier of the column. */ + "column-id": number; + /** @description The name field of an artifact. When specified, only artifacts with this name will be returned. */ + "artifact-name"?: string; + /** @description The unique identifier of the artifact. */ + "artifact-id": number; + /** @description The full Git reference for narrowing down the cache. The `ref` for a branch should be formatted as `refs/heads/`. To reference a pull request use `refs/pull//merge`. */ + "actions-cache-git-ref-full"?: string; + /** @description An explicit key or prefix for identifying the cache */ + "actions-cache-key"?: string; + /** @description The property to sort the results by. `created_at` means when the cache was created. `last_accessed_at` means when the cache was last accessed. `size_in_bytes` is the size of the cache in bytes. */ + "actions-cache-list-sort"?: + | "created_at" + | "last_accessed_at" + | "size_in_bytes"; + /** @description A key for identifying the cache. */ + "actions-cache-key-required": string; + /** @description The unique identifier of the GitHub Actions cache. */ + "cache-id": number; + /** @description The unique identifier of the job. */ + "job-id": number; + /** @description Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. */ + actor?: string; + /** @description Returns workflow runs associated with a branch. Use the name of the branch of the `push`. */ + "workflow-run-branch"?: string; + /** @description Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://docs.github.com/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows)." */ + event?: string; + /** @description Returns workflow runs with the check run `status` or `conclusion` that you specify. For example, a conclusion can be `success` or a status can be `in_progress`. Only GitHub can set a status of `waiting` or `requested`. */ + "workflow-run-status"?: + | "completed" + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "skipped" + | "stale" + | "success" + | "timed_out" + | "in_progress" + | "queued" + | "requested" + | "waiting" + | "pending"; + /** @description Returns workflow runs created within the given date-time range. For more information on the syntax, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." */ + created?: string; + /** @description If `true` pull requests are omitted from the response (empty array). */ + "exclude-pull-requests"?: boolean; + /** @description Returns workflow runs with the `check_suite_id` that you specify. */ + "workflow-run-check-suite-id"?: number; + /** @description Only returns workflow runs that are associated with the specified `head_sha`. */ + "workflow-run-head-sha"?: string; + /** @description The unique identifier of the workflow run. */ + "run-id": number; + /** @description The attempt number of the workflow run. */ + "attempt-number": number; + /** @description The ID of the workflow. You can also pass the workflow file name as a string. */ + "workflow-id": number | string; + /** @description The unique identifier of the autolink. */ + "autolink-id": number; + /** @description The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ + branch: string; + /** @description The unique identifier of the check run. */ + "check-run-id": number; + /** @description The unique identifier of the check suite. */ + "check-suite-id": number; + /** @description Returns check runs with the specified `name`. */ + "check-name"?: string; + /** @description Returns check runs with the specified `status`. */ + status?: "queued" | "in_progress" | "completed"; + /** @description The Git reference for the results you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. */ + "git-ref"?: components["schemas"]["code-scanning-ref"]; + /** @description The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. */ + "alert-number": components["schemas"]["alert-number"]; + /** @description The SHA of the commit. */ + "commit-sha": string; + /** @description The commit reference. Can be a commit SHA, branch name (`heads/BRANCH_NAME`), or tag name (`tags/TAG_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. */ + "commit-ref": string; + /** @description A comma-separated list of full manifest paths. If specified, only alerts for these manifests will be returned. */ + "dependabot-alert-comma-separated-manifests"?: string; + /** + * @description The number that identifies a Dependabot alert in its repository. + * You can find this at the end of the URL for a Dependabot alert within GitHub, + * or in `number` fields in the response from the + * `GET /repos/{owner}/{repo}/dependabot/alerts` operation. + */ + "dependabot-alert-number": components["schemas"]["alert-number"]; + /** @description The full path, relative to the repository root, of the dependency manifest file. */ + "manifest-path"?: string; + /** @description deployment_id parameter */ + "deployment-id": number; + /** @description The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. */ + "environment-name": string; + /** @description The unique identifier of the branch policy. */ + "branch-policy-id": number; + /** @description The unique identifier of the protection rule. */ + "protection-rule-id": number; + /** @description A user ID. Only return users with an ID greater than this ID. */ + "since-user"?: number; + /** @description The number that identifies the issue. */ + "issue-number": number; + /** @description The unique identifier of the key. */ + "key-id": number; + /** @description The number that identifies the milestone. */ + "milestone-number": number; + /** @description The ID of the Pages deployment. You can also give the commit SHA of the deployment. */ + "pages-deployment-id": number | string; + /** @description The number that identifies the pull request. */ + "pull-number": number; + /** @description The unique identifier of the review. */ + "review-id": number; + /** @description The unique identifier of the asset. */ + "asset-id": number; + /** @description The unique identifier of the release. */ + "release-id": number; + /** @description The name of the ref. Cannot contain wildcard characters. When specified, only rule evaluations triggered for this ref will be returned. */ + "ref-in-query"?: string; + /** @description The unique identifier of the tag protection. */ + "tag-protection-id": number; + /** @description The time frame to display results for. */ + per?: "day" | "week"; + /** @description A repository ID. Only return repositories with an ID greater than this ID. */ + "since-repo"?: number; + /** @description Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. */ + order?: "desc" | "asc"; + /** @description The unique identifier of the team. */ + "team-id": number; + /** @description ID of the Repository to filter on */ + "repository-id-in-query"?: number; + /** @description The ID of the export operation, or `latest`. Currently only `latest` is currently supported. */ + "export-id": string; + /** @description The unique identifier of the GPG key. */ + "gpg-key-id": number; + /** @description Only show repositories updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + "since-repo-date"?: string; + /** @description Only show repositories updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + "before-repo-date"?: string; + /** @description The unique identifier of the SSH signing key. */ + "ssh-signing-key-id": number; + /** @description The property to sort the results by. `created` means when the repository was starred. `updated` means when the repository was last pushed to. */ + "sort-starred"?: "created" | "updated"; + }; + requestBodies: never; + headers: { + /** @example ; rel="next", ; rel="last" */ + link: string; + /** @example text/html */ + "content-type": string; + /** @example 0.17.4 */ + "x-common-marker-version": string; + /** @example 5000 */ + "x-rate-limit-limit": number; + /** @example 4999 */ + "x-rate-limit-remaining": number; + /** @example 1590701888 */ + "x-rate-limit-reset": number; + /** @example https://pipelines.actions.githubusercontent.com/OhgS4QRKqmgx7bKC27GKU83jnQjyeqG8oIMTge8eqtheppcmw8/_apis/pipelines/1/runs/176/signedlogcontent?urlExpires=2020-01-24T18%3A10%3A31.5729946Z&urlSigningMethod=HMACV1&urlSignature=agG73JakPYkHrh06seAkvmH7rBR4Ji4c2%2B6a2ejYh3E%3D */ + location: string; + }; + pathItems: never; +} + +export type $defs = Record; + +export type external = Record; + +export interface operations { + /** + * GitHub API Root + * @description Get Hypermedia links to resources accessible in GitHub's REST API + */ + "meta/root": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["root"]; + }; + }; + }; + }; + /** + * List global security advisories + * @description Lists all global security advisories that match the specified parameters. If no other parameters are defined, the request will return only GitHub-reviewed advisories that are not malware. + * + * By default, all responses will exclude advisories for malware, because malware are not standard vulnerabilities. To list advisories for malware, you must include the `type` parameter in your request, with the value `malware`. For more information about the different types of security advisories, see "[About the GitHub Advisory database](https://docs.github.com/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database#about-types-of-security-advisories)." + */ + "security-advisories/list-global-advisories": { + parameters: { + query?: { + /** @description If specified, only advisories with this GHSA (GitHub Security Advisory) identifier will be returned. */ + ghsa_id?: string; + /** @description If specified, only advisories of this type will be returned. By default, a request with no other parameters defined will only return reviewed advisories that are not malware. */ + type?: "reviewed" | "malware" | "unreviewed"; + /** @description If specified, only advisories with this CVE (Common Vulnerabilities and Exposures) identifier will be returned. */ + cve_id?: string; + /** @description If specified, only advisories for these ecosystems will be returned. */ + ecosystem?: + | "actions" + | "composer" + | "erlang" + | "go" + | "maven" + | "npm" + | "nuget" + | "other" + | "pip" + | "pub" + | "rubygems" + | "rust"; + /** @description If specified, only advisories with these severities will be returned. */ + severity?: "unknown" | "low" | "medium" | "high" | "critical"; + /** + * @description If specified, only advisories with these Common Weakness Enumerations (CWEs) will be returned. + * + * Example: `cwes=79,284,22` or `cwes[]=79&cwes[]=284&cwes[]=22` + */ + cwes?: string | string[]; + /** @description Whether to only return advisories that have been withdrawn. */ + is_withdrawn?: boolean; + /** + * @description If specified, only return advisories that affect any of `package` or `package@version`. A maximum of 1000 packages can be specified. + * If the query parameter causes the URL to exceed the maximum URL length supported by your client, you must specify fewer packages. + * + * Example: `affects=package1,package2@1.0.0,package3@^2.0.0` or `affects[]=package1&affects[]=package2@1.0.0` + */ + affects?: string | string[]; + /** + * @description If specified, only return advisories that were published on a date or date range. + * + * For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." + */ + published?: string; + /** + * @description If specified, only return advisories that were updated on a date or date range. + * + * For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." + */ + updated?: string; + /** + * @description If specified, only show advisories that were updated or published on a date or date range. + * + * For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." + */ + modified?: string; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + direction?: components["parameters"]["direction"]; + /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + /** @description The property to sort the results by. */ + sort?: "updated" | "published"; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["global-advisory"][]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + /** @description Too many requests */ + 429: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Get a global security advisory + * @description Gets a global security advisory using its GitHub Security Advisory (GHSA) identifier. + */ + "security-advisories/get-global-advisory": { + parameters: { + path: { + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["global-advisory"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get the authenticated app + * @description Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/apps/apps#list-installations-for-the-authenticated-app)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-authenticated": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"]; + }; + }; + }; + }; + /** + * Create a GitHub App from a manifest + * @description Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. + */ + "apps/create-from-manifest": { + parameters: { + path: { + code: string; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["integration"] & { + client_id: string; + client_secret: string; + webhook_secret: string | null; + pem: string; + [key: string]: unknown; + }; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get a webhook configuration for an app + * @description Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-webhook-config-for-app": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * Update a webhook configuration for an app + * @description Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/update-webhook-config-for-app": { + requestBody: { + content: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * List deliveries for an app webhook + * @description Returns a list of webhook deliveries for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/list-webhook-deliveries": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + cursor?: components["parameters"]["cursor"]; + redelivery?: boolean; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery-item"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a delivery for an app webhook + * @description Returns a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-webhook-delivery": { + parameters: { + path: { + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery"]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Redeliver a delivery for an app webhook + * @description Redeliver a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/redeliver-webhook-delivery": { + parameters: { + path: { + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List installation requests for the authenticated app + * @description Lists all the pending installation requests for the authenticated GitHub App. + */ + "apps/list-installation-requests-for-authenticated-app": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description List of integration installation requests */ + 200: { + content: { + "application/json": components["schemas"]["integration-installation-request"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * List installations for the authenticated app + * @description You must use a [JWT](https://docs.github.com/enterprise-server@3.9/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * The permissions the installation has are included under the `permissions` key. + */ + "apps/list-installations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + since?: components["parameters"]["since"]; + outdated?: string; + }; + }; + responses: { + /** @description The permissions the installation has are included under the `permissions` key. */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + /** + * @description The ID of the installation. + * @example 1 + */ + id: number; + account: + | ({ + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + } & { + /** @description A short description of the enterprise. */ + description?: string | null; + /** + * Format: uri + * @example https://github.com/enterprises/octo-business + */ + html_url: string; + /** + * Format: uri + * @description The enterprise's website URL. + */ + website_url?: string | null; + /** + * @description Unique identifier of the enterprise + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the enterprise. + * @example Octo Business + */ + name: string; + /** + * @description The slug url identifier for the enterprise. + * @example octo-business + */ + slug: string; + /** + * Format: date-time + * @example 2019-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2019-01-26T19:14:43Z + */ + updated_at: string | null; + /** Format: uri */ + avatar_url: string; + }) + | null; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** + * Format: uri + * @example https://api.github.com/installations/1/access_tokens + */ + access_tokens_url: string; + /** + * Format: uri + * @example https://api.github.com/installation/repositories + */ + repositories_url: string; + /** + * Format: uri + * @example https://github.com/organizations/github/settings/installations/1 + */ + html_url: string; + /** @example 1 */ + app_id: number; + /** @description The ID of the user or organization this token is being scoped to. */ + target_id: number; + /** @example Organization */ + target_type: string; + /** + * App Permissions + * @description The permissions granted to the user access token. + * @example { + * "contents": "read", + * "issues": "read", + * "deployments": "write", + * "single_file": "read" + * } + */ + permissions: { + /** + * @description The level of permission to grant the access token for GitHub Actions workflows, workflow runs, and artifacts. + * @enum {string} + */ + actions?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository creation, deletion, settings, teams, and collaborators creation. + * @enum {string} + */ + administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token for checks on code. + * @enum {string} + */ + checks?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges. + * @enum {string} + */ + contents?: "read" | "write"; + /** + * @description The level of permission to grant the access token for deployments and deployment statuses. + * @enum {string} + */ + deployments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for managing repository environments. + * @enum {string} + */ + environments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for issues and related comments, assignees, labels, and milestones. + * @enum {string} + */ + issues?: "read" | "write"; + /** + * @description The level of permission to grant the access token to search repositories, list collaborators, and access repository metadata. + * @enum {string} + */ + metadata?: "read" | "write"; + /** + * @description The level of permission to grant the access token for packages published to GitHub Packages. + * @enum {string} + */ + packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to retrieve Pages statuses, configuration, and builds, as well as create new builds. + * @enum {string} + */ + pages?: "read" | "write"; + /** + * @description The level of permission to grant the access token for pull requests and related comments, assignees, labels, milestones, and merges. + * @enum {string} + */ + pull_requests?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for a repository. + * @enum {string} + */ + repository_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository projects, columns, and cards. + * @enum {string} + */ + repository_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token to view and manage secret scanning alerts. + * @enum {string} + */ + secret_scanning_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository secrets. + * @enum {string} + */ + secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage security events like code scanning alerts. + * @enum {string} + */ + security_events?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage just a single file. + * @enum {string} + */ + single_file?: "read" | "write"; + /** + * @description The level of permission to grant the access token for commit statuses. + * @enum {string} + */ + statuses?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage Dependabot alerts. + * @enum {string} + */ + vulnerability_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to update GitHub Actions workflow files. + * @enum {string} + */ + workflows?: "write"; + /** + * @description The level of permission to grant the access token for organization teams and members. + * @enum {string} + */ + members?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage access to an organization. + * @enum {string} + */ + organization_administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token for custom repository roles management. This property is in beta and is subject to change. + * @enum {string} + */ + organization_custom_roles?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage announcement banners for an organization. + * @enum {string} + */ + organization_announcement_banners?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for an organization. + * @enum {string} + */ + organization_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing and managing fine-grained personal access token requests to an organization. + * @enum {string} + */ + organization_personal_access_tokens?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing and managing fine-grained personal access tokens that have been approved by an organization. + * @enum {string} + */ + organization_personal_access_token_requests?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing an organization's plan. + * @enum {string} + */ + organization_plan?: "read"; + /** + * @description The level of permission to grant the access token to manage organization projects and projects beta (where available). + * @enum {string} + */ + organization_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token for organization packages published to GitHub Packages. + * @enum {string} + */ + organization_packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage organization secrets. + * @enum {string} + */ + organization_secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage GitHub Actions self-hosted runners available to an organization. + * @enum {string} + */ + organization_self_hosted_runners?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage users blocked by the organization. + * @enum {string} + */ + organization_user_blocking?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage team discussions and related comments. + * @enum {string} + */ + team_discussions?: "read" | "write"; + }; + events: string[]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** @example config.yaml */ + single_file_name: string | null; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + /** @example github-actions */ + app_slug: string; + /** + * Simple User + * @description A GitHub user. + */ + suspended_by: { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + } | null; + /** Format: date-time */ + suspended_at: string | null; + /** @example "test_13f1e99741e3e004@d7e1eb0bc0a1ba12.com" */ + contact_email?: string | null; + }[]; + }; + }; + }; + }; + /** + * Get an installation for the authenticated app + * @description Enables an authenticated GitHub App to find an installation's information using the installation id. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an installation for the authenticated app + * @description Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/rest/apps/apps#suspend-an-app-installation)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/delete-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create an installation access token for an app + * @description Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. + * + * Optionally, you can use the `repositories` or `repository_ids` body parameters to specify individual repositories that the installation access token can access. If you don't use `repositories` or `repository_ids` to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner. + * + * Optionally, use the `permissions` body parameter to specify the permissions that the installation access token should have. If `permissions` is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted. + * + * When using the repository or permission parameters to reduce the access of the token, the complexity of the token is increased due to both the number of permissions in the request and the number of repositories the token will have access to. If the complexity is too large, the token will fail to be issued. If this occurs, the error message will indicate the maximum number of repositories that should be requested. For the average application requesting 8 permissions, this limit is around 5000 repositories. With fewer permissions requested, more repositories are supported. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/create-installation-access-token": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description List of repository names that the token should have access to */ + repositories?: string[]; + /** + * @description List of repository IDs that the token should have access to + * @example [ + * 1 + * ] + */ + repository_ids?: number[]; + permissions?: components["schemas"]["app-permissions"]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["installation-token"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Suspend an app installation + * @description Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/suspend-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unsuspend an app installation + * @description Removes a GitHub App installation suspension. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/unsuspend-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an app authorization + * @description OAuth and GitHub application owners can revoke a grant for their application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * Deleting an application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + "apps/delete-authorization": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The OAuth access token used to authenticate to the GitHub API. */ + access_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Check a token + * @description OAuth applications and GitHub applications with OAuth authorizations can use this API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. + */ + "apps/check-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The access_token of the OAuth or GitHub application. */ + access_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an app token + * @description OAuth or GitHub application owners can revoke a single token for an OAuth application or a GitHub application with an OAuth authorization. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. + */ + "apps/delete-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The OAuth access token used to authenticate to the GitHub API. */ + access_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Reset a token + * @description OAuth applications and GitHub applications with OAuth authorizations can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + "apps/reset-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The access_token of the OAuth or GitHub application. */ + access_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a scoped access token + * @description Use a non-scoped user access token to create a repository-scoped and/or permission-scoped user access token. You can specify + * which repositories the token can access and which permissions are granted to the + * token. + * + * Invalid tokens will return `404 NOT FOUND`. + * + * You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) + * when accessing this endpoint, using the `client_id` and `client_secret` of the GitHub App + * as the username and password. + */ + "apps/scope-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The access token used to authenticate to the GitHub API. + * @example e72e16c7e42f292c6912e7710c838347ae178b4a + */ + access_token: string; + /** + * @description The name of the user or organization to scope the user access token to. **Required** unless `target_id` is specified. + * @example octocat + */ + target?: string; + /** + * @description The ID of the user or organization to scope the user access token to. **Required** unless `target` is specified. + * @example 1 + */ + target_id?: number; + /** @description The list of repository names to scope the user access token to. `repositories` may not be specified if `repository_ids` is specified. */ + repositories?: string[]; + /** + * @description The list of repository IDs to scope the user access token to. `repository_ids` may not be specified if `repositories` is specified. + * @example [ + * 1 + * ] + */ + repository_ids?: number[]; + permissions?: components["schemas"]["app-permissions"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an app + * @description **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + */ + "apps/get-by-slug": { + parameters: { + path: { + app_slug: components["parameters"]["app-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get an assignment + * @description Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + "classroom/get-an-assignment": { + parameters: { + path: { + assignment_id: components["parameters"]["assignment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["classroom-assignment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List accepted assignments for an assignment + * @description Lists any assignment repositories that have been created by students accepting a GitHub Classroom assignment. Accepted assignments will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + "classroom/list-accepted-assigments-for-an-assignment": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + assignment_id: components["parameters"]["assignment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["classroom-accepted-assignment"][]; + }; + }; + }; + }; + /** + * Get assignment grades + * @description Gets grades for a GitHub Classroom assignment. Grades will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + "classroom/get-assignment-grades": { + parameters: { + path: { + assignment_id: components["parameters"]["assignment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["classroom-assignment-grade"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List classrooms + * @description Lists GitHub Classroom classrooms for the current user. Classrooms will only be returned if the current user is an administrator of one or more GitHub Classrooms. + */ + "classroom/list-classrooms": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-classroom"][]; + }; + }; + }; + }; + /** + * Get a classroom + * @description Gets a GitHub Classroom classroom for the current user. Classroom will only be returned if the current user is an administrator of the GitHub Classroom. + */ + "classroom/get-a-classroom": { + parameters: { + path: { + classroom_id: components["parameters"]["classroom-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["classroom"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List assignments for a classroom + * @description Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. + */ + "classroom/list-assignments-for-a-classroom": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + classroom_id: components["parameters"]["classroom-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-classroom-assignment"][]; + }; + }; + }; + }; + /** + * Get all codes of conduct + * @description Returns array of all GitHub's codes of conduct. + */ + "codes-of-conduct/get-all-codes-of-conduct": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-of-conduct"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a code of conduct + * @description Returns information about the specified GitHub code of conduct. + */ + "codes-of-conduct/get-conduct-code": { + parameters: { + path: { + key: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-of-conduct"]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get emojis + * @description Lists all the emojis available to use on GitHub. + */ + "emojis/get": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + [key: string]: string; + }; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * List Dependabot alerts for an enterprise + * @description Lists Dependabot alerts for repositories that are owned by the specified enterprise. + * + * The authenticated user must be a member of the enterprise to use this endpoint. + * + * Alerts are only returned for organizations in the enterprise for which you are an organization owner or a security manager. For more information about security managers, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. + */ + "dependabot/list-alerts-for-enterprise": { + parameters: { + query?: { + state?: components["parameters"]["dependabot-alert-comma-separated-states"]; + severity?: components["parameters"]["dependabot-alert-comma-separated-severities"]; + ecosystem?: components["parameters"]["dependabot-alert-comma-separated-ecosystems"]; + package?: components["parameters"]["dependabot-alert-comma-separated-packages"]; + scope?: components["parameters"]["dependabot-alert-scope"]; + sort?: components["parameters"]["dependabot-alert-sort"]; + direction?: components["parameters"]["direction"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + first?: components["parameters"]["pagination-first"]; + last?: components["parameters"]["pagination-last"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert-with-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List secret scanning alerts for an enterprise + * @description Lists secret scanning alerts for eligible repositories in an enterprise, from newest to oldest. + * + * Alerts are only returned for organizations in the enterprise for which the authenticated user is an organization owner or a [security manager](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization). + * + * The authenticated user must be a member of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope or `security_events` scope to use this endpoint. + */ + "secret-scanning/list-alerts-for-enterprise": { + parameters: { + query?: { + state?: components["parameters"]["secret-scanning-alert-state"]; + secret_type?: components["parameters"]["secret-scanning-alert-secret-type"]; + resolution?: components["parameters"]["secret-scanning-alert-resolution"]; + sort?: components["parameters"]["secret-scanning-alert-sort"]; + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + validity?: components["parameters"]["secret-scanning-alert-validity"]; + }; + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-secret-scanning-alert"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List public events + * @description We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. + */ + "activity/list-public-events": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get feeds + * @description GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user: + * + * * **Timeline**: The GitHub global public timeline + * * **User**: The public timeline for any user, using `uri_template`. For more information, see "[Hypermedia](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + * * **Current user public**: The public timeline for the authenticated user + * * **Current user**: The private timeline for the authenticated user + * * **Current user actor**: The private timeline for activity created by the authenticated user + * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + * + * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + */ + "activity/get-feeds": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["feed"]; + }; + }; + }; + }; + /** + * List gists for the authenticated user + * @description Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: + */ + "gists/list": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Create a gist + * @description Allows you to add a new gist with one or more files. + * + * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + */ + "gists/create": { + requestBody: { + content: { + "application/json": { + /** + * @description Description of the gist + * @example Example Ruby script + */ + description?: string; + /** + * @description Names and content for the files that make up the gist + * @example { + * "hello.rb": { + * "content": "puts \"Hello, World!\"" + * } + * } + */ + files: { + [key: string]: { + /** @description Content of the file */ + content: string; + }; + }; + public?: boolean | ("true" | "false"); + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/gists/aa5a315d61ae9438b18d */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List public gists + * @description List public gists sorted by most recently updated to least recently updated. + * + * Note: With [pagination](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + */ + "gists/list-public": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List starred gists + * @description List the authenticated user's starred gists: + */ + "gists/list-starred": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a gist + * @description Gets a specified gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/get": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden_gist"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a gist */ + "gists/delete": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a gist + * @description Allows you to update a gist's description and to update, delete, or rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. + */ + "gists/update": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The description of the gist. + * @example Example Ruby script + */ + description?: string; + /** + * @description The gist files to be updated, renamed, or deleted. Each `key` must match the current filename + * (including extension) of the targeted gist file. For example: `hello.py`. + * + * To delete a file, set the whole file to null. For example: `hello.py : null`. + * @example { + * "hello.rb": { + * "content": "blah", + * "filename": "goodbye.rb" + * } + * } + */ + files?: { + [key: string]: { + /** @description The new content of the file. */ + content?: string; + /** @description The new filename for the file. */ + filename?: string | null; + }; + }; + } | null; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List gist comments + * @description Lists the comments on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/list-comments": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["gist-comment"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a gist comment + * @description Creates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/create-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The comment text. + * @example Body of the attachment + */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/gists/a6db0bec360bb87e9418/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["gist-comment"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a gist comment + * @description Gets a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/get-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-comment"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden_gist"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a gist comment */ + "gists/delete-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a gist comment + * @description Updates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/update-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The comment text. + * @example Body of the attachment + */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** List gist commits */ + "gists/list-commits": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + /** @example ; rel="next" */ + Link?: string; + }; + content: { + "application/json": components["schemas"]["gist-commit"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** List gist forks */ + "gists/list-forks": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["gist-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Fork a gist */ + "gists/fork": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/gists/aa5a315d61ae9438b18d */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["base-gist"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Check if a gist is starred */ + "gists/check-is-starred": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response if gist is starred */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + /** @description Not Found if gist is not starred */ + 404: { + content: { + "application/json": Record; + }; + }; + }; + }; + /** + * Star a gist + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "gists/star": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Unstar a gist */ + "gists/unstar": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a gist revision + * @description Gets a specified gist revision. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/get-revision": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + sha: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all gitignore templates + * @description List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user). + */ + "gitignore/get-all-templates": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a gitignore template + * @description Get the content of a gitignore template. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw .gitignore contents. + */ + "gitignore/get-template": { + parameters: { + path: { + name: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gitignore-template"]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * List repositories accessible to the app installation + * @description List repositories that an app installation can access. + */ + "apps/list-repos-accessible-to-installation": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["repository"][]; + /** @example selected */ + repository_selection?: string; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Revoke an installation access token + * @description Revokes the installation token you're using to authenticate as an installation and access this endpoint. + * + * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app)" endpoint. + */ + "apps/revoke-installation-access-token": { + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List issues assigned to the authenticated user + * @description List issues assigned to the authenticated user across all visible repositories including owned repositories, member + * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not + * necessarily assigned to you. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list": { + parameters: { + query?: { + /** @description Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. */ + filter?: + | "assigned" + | "created" + | "mentioned" + | "subscribed" + | "repos" + | "all"; + /** @description Indicates the state of the issues to return. */ + state?: "open" | "closed" | "all"; + labels?: components["parameters"]["labels"]; + /** @description What to sort results by. */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + collab?: boolean; + orgs?: boolean; + owned?: boolean; + pulls?: boolean; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all commonly used licenses + * @description Lists the most commonly used licenses on GitHub. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + "licenses/get-all-commonly-used": { + parameters: { + query?: { + featured?: boolean; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["license-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a license + * @description Gets information about a specific license. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + "licenses/get": { + parameters: { + path: { + license: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["license"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Render a Markdown document */ + "markdown/render": { + requestBody: { + content: { + "application/json": { + /** @description The Markdown text to render in HTML. */ + text: string; + /** + * @description The rendering mode. + * @default markdown + * @example markdown + * @enum {string} + */ + mode?: "markdown" | "gfm"; + /** @description The repository context to use when creating references in `gfm` mode. For example, setting `context` to `octo-org/octo-repo` will change the text `#42` into an HTML link to issue 42 in the `octo-org/octo-repo` repository. */ + context?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + "Content-Type": components["headers"]["content-type"]; + /** @example 279 */ + "Content-Length"?: string; + "X-CommonMarker-Version": components["headers"]["x-common-marker-version"]; + }; + content: { + "text/html": string; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Render a Markdown document in raw mode + * @description You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. + */ + "markdown/render-raw": { + requestBody?: { + content: { + "text/plain": string; + "text/x-markdown": string; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + "X-CommonMarker-Version": components["headers"]["x-common-marker-version"]; + }; + content: { + "text/html": string; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a subscription plan for an account + * @description Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/get-subscription-plan-for-account": { + parameters: { + path: { + account_id: components["parameters"]["account-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["marketplace-purchase"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + /** @description Not Found when the account has not purchased the listing */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * List plans + * @description Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-plans": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["marketplace-listing-plan"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List accounts for a plan + * @description Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-accounts-for-plan": { + parameters: { + query?: { + sort?: components["parameters"]["sort"]; + /** @description To return the oldest accounts first, set to `asc`. Ignored without the `sort` parameter. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + plan_id: components["parameters"]["plan-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["marketplace-purchase"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a subscription plan for an account (stubbed) + * @description Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/get-subscription-plan-for-account-stubbed": { + parameters: { + path: { + account_id: components["parameters"]["account-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["marketplace-purchase"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + /** @description Not Found when the account has not purchased the listing */ + 404: { + content: never; + }; + }; + }; + /** + * List plans (stubbed) + * @description Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-plans-stubbed": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["marketplace-listing-plan"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * List accounts for a plan (stubbed) + * @description Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-accounts-for-plan-stubbed": { + parameters: { + query?: { + sort?: components["parameters"]["sort"]; + /** @description To return the oldest accounts first, set to `asc`. Ignored without the `sort` parameter. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + plan_id: components["parameters"]["plan-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["marketplace-purchase"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * Get GitHub meta information + * @description Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://docs.github.com/articles/about-github-s-ip-addresses/)." + * + * The API's response also includes a list of GitHub's domain names. + * + * The values shown in the documentation's response are example values. You must always query the API directly to get the latest values. + * + * **Note:** This endpoint returns both IPv4 and IPv6 addresses. However, not all features support IPv6. You should refer to the specific documentation for each feature to determine if IPv6 is supported. + */ + "meta/get": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["api-overview"]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** List public events for a network of repositories */ + "activity/list-public-events-for-repo-network": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List notifications for the authenticated user + * @description List all notifications for the current user, sorted by most recently updated. + */ + "activity/list-notifications-for-authenticated-user": { + parameters: { + query?: { + all?: components["parameters"]["all"]; + participating?: components["parameters"]["participating"]; + since?: components["parameters"]["since"]; + before?: components["parameters"]["before"]; + page?: components["parameters"]["page"]; + /** @description The number of results per page (max 50). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["thread"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Mark notifications as read + * @description Marks all notifications as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + "activity/mark-notifications-as-read": { + requestBody?: { + content: { + "application/json": { + /** + * Format: date-time + * @description Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; + /** @description Whether the notification has been read. */ + read?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": { + message?: string; + }; + }; + }; + /** @description Reset Content */ + 205: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a thread + * @description Gets information about a notification thread. + */ + "activity/get-thread": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["thread"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Mark a thread as done + * @description Marks a thread as "done." Marking a thread as "done" is equivalent to marking a notification in your notification inbox on GitHub as done: https://github.com/notifications. + */ + "activity/mark-thread-as-done": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description No content */ + 204: { + content: never; + }; + }; + }; + /** + * Mark a thread as read + * @description Marks a thread as "read." Marking a thread as "read" is equivalent to clicking a notification in your notification inbox on GitHub: https://github.com/notifications. + */ + "activity/mark-thread-as-read": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description Reset Content */ + 205: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a thread subscription for the authenticated user + * @description This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/activity/watching#get-a-repository-subscription). + * + * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + */ + "activity/get-thread-subscription-for-authenticated-user": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["thread-subscription"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Set a thread subscription + * @description If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**. + * + * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. + * + * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription) endpoint. + */ + "activity/set-thread-subscription": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Whether to block all notifications from a thread. + * @default false + */ + ignored?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["thread-subscription"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Delete a thread subscription + * @description Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/activity/notifications#set-a-thread-subscription) endpoint and set `ignore` to `true`. + */ + "activity/delete-thread-subscription": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get Octocat + * @description Get the octocat as ASCII art + */ + "meta/get-octocat": { + parameters: { + query?: { + /** @description The words to show in Octocat's speech bubble */ + s?: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/octocat-stream": string; + }; + }; + }; + }; + /** + * List organizations + * @description Lists all organizations, in the order that they were created on GitHub. + * + * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of organizations. + */ + "orgs/list": { + parameters: { + query?: { + since?: components["parameters"]["since-org"]; + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + /** @example ; rel="next" */ + Link?: string; + }; + content: { + "application/json": components["schemas"]["organization-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get an organization + * @description Gets information about an organization. + * + * When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://docs.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * + * To see the full details about an organization, the authenticated user must be an organization owner. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to see the full details about an organization. + * + * To see information about an organization's GitHub plan, GitHub Apps need the `Organization plan` permission. + */ + "orgs/get": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-full"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an organization + * @description Deletes an organization and all its repositories. + * + * The organization login will be unavailable for 90 days after deletion. + * + * Please review the Terms of Service regarding account deletion before using this endpoint: + * + * https://docs.github.com/site-policy/github-terms/github-terms-of-service + */ + "orgs/delete": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update an organization + * @description **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * + * Updates the organization's profile and member privileges. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` or `repo` scope to use this endpoint. + */ + "orgs/update": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Billing email address. This address is not publicized. */ + billing_email?: string; + /** @description The company name. */ + company?: string; + /** @description The publicly visible email address. */ + email?: string; + /** @description The Twitter username of the company. */ + twitter_username?: string; + /** @description The location. */ + location?: string; + /** @description The shorthand name of the company. */ + name?: string; + /** @description The description of the company. */ + description?: string; + /** @description Whether an organization can use organization projects. */ + has_organization_projects?: boolean; + /** @description Whether repositories that belong to the organization can use repository projects. */ + has_repository_projects?: boolean; + /** + * @description Default permission level members have for organization repositories. + * @default read + * @enum {string} + */ + default_repository_permission?: "read" | "write" | "admin" | "none"; + /** + * @description Whether of non-admin organization members can create repositories. **Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details. + * @default true + */ + members_can_create_repositories?: boolean; + /** @description Whether organization members can create internal repositories, which are visible to all enterprise members. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see "[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. */ + members_can_create_internal_repositories?: boolean; + /** @description Whether organization members can create private repositories, which are visible to organization members with permission. For more information, see "[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. */ + members_can_create_private_repositories?: boolean; + /** @description Whether organization members can create public repositories, which are visible to anyone. For more information, see "[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. */ + members_can_create_public_repositories?: boolean; + /** + * @description Specifies which types of repositories non-admin organization members can create. `private` is only available to repositories that are part of an organization on GitHub Enterprise Cloud. + * **Note:** This parameter is deprecated and will be removed in the future. Its return value ignores internal repositories. Using this parameter overrides values set in `members_can_create_repositories`. See the parameter deprecation notice in the operation description for details. + * @enum {string} + */ + members_allowed_repository_creation_type?: "all" | "private" | "none"; + /** + * @description Whether organization members can create GitHub Pages sites. Existing published sites will not be impacted. + * @default true + */ + members_can_create_pages?: boolean; + /** + * @description Whether organization members can create public GitHub Pages sites. Existing published sites will not be impacted. + * @default true + */ + members_can_create_public_pages?: boolean; + /** + * @description Whether organization members can create private GitHub Pages sites. Existing published sites will not be impacted. + * @default true + */ + members_can_create_private_pages?: boolean; + /** + * @description Whether organization members can fork private organization repositories. + * @default false + */ + members_can_fork_private_repositories?: boolean; + /** + * @description Whether contributors to organization repositories are required to sign off on commits they make through GitHub's web interface. + * @default false + */ + web_commit_signoff_required?: boolean; + /** @example "http://github.blog" */ + blog?: string; + /** + * @description Whether GitHub Advanced Security is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + advanced_security_enabled_for_new_repositories?: boolean; + /** + * @description Whether Dependabot alerts is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + dependabot_alerts_enabled_for_new_repositories?: boolean; + /** + * @description Whether Dependabot security updates is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + dependabot_security_updates_enabled_for_new_repositories?: boolean; + /** + * @description Whether dependency graph is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + dependency_graph_enabled_for_new_repositories?: boolean; + /** + * @description Whether secret scanning is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + secret_scanning_enabled_for_new_repositories?: boolean; + /** + * @description Whether secret scanning push protection is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + secret_scanning_push_protection_enabled_for_new_repositories?: boolean; + /** @description Whether a custom link is shown to contributors who are blocked from pushing a secret by push protection. */ + secret_scanning_push_protection_custom_link_enabled?: boolean; + /** @description If `secret_scanning_push_protection_custom_link_enabled` is true, the URL that will be displayed to contributors who are blocked from pushing a secret. */ + secret_scanning_push_protection_custom_link?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-full"]; + }; + }; + 409: components["responses"]["conflict"]; + /** @description Validation failed */ + 422: { + content: { + "application/json": + | components["schemas"]["validation-error"] + | components["schemas"]["validation-error-simple"]; + }; + }; + }; + }; + /** + * Get GitHub Actions cache usage for an organization + * @description Gets the total GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + "actions/get-actions-cache-usage-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["actions-cache-usage-org-enterprise"]; + }; + }; + }; + }; + /** + * List repositories with GitHub Actions cache usage for an organization + * @description Lists repositories and their GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + "actions/get-actions-cache-usage-by-repo-for-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + repository_cache_usages: components["schemas"]["actions-cache-usage-by-repository"][]; + }; + }; + }; + }; + }; + /** + * Get the customization template for an OIDC subject claim for an organization + * @description Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + "oidc/get-oidc-custom-sub-template-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description A JSON serialized template for OIDC subject claim customization */ + 200: { + content: { + "application/json": components["schemas"]["oidc-custom-sub"]; + }; + }; + }; + }; + /** + * Set the customization template for an OIDC subject claim for an organization + * @description Creates or updates the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + "oidc/update-oidc-custom-sub-template-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["oidc-custom-sub"]; + }; + }; + responses: { + /** @description Empty response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get GitHub Actions permissions for an organization + * @description Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/get-github-actions-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-organization-permissions"]; + }; + }; + }; + }; + /** + * Set GitHub Actions permissions for an organization + * @description Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/set-github-actions-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + enabled_repositories: components["schemas"]["enabled-repositories"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories enabled for GitHub Actions in an organization + * @description Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/list-selected-repositories-enabled-github-actions-organization": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["repository"][]; + }; + }; + }; + }; + }; + /** + * Set selected repositories enabled for GitHub Actions in an organization + * @description Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/set-selected-repositories-enabled-github-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description List of repository IDs to enable for GitHub Actions. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Enable a selected repository for GitHub Actions in an organization + * @description Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/enable-selected-repository-github-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Disable a selected repository for GitHub Actions in an organization + * @description Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/disable-selected-repository-github-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get allowed actions and reusable workflows for an organization + * @description Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/get-allowed-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + }; + /** + * Set allowed actions and reusable workflows for an organization + * @description Sets the actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/set-allowed-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get default workflow permissions for an organization + * @description Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, + * as well as whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/get-github-actions-default-workflow-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-get-default-workflow-permissions"]; + }; + }; + }; + }; + /** + * Set default workflow permissions for an organization + * @description Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, and sets if GitHub Actions + * can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/set-github-actions-default-workflow-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["actions-set-default-workflow-permissions"]; + }; + }; + responses: { + /** @description Success response */ + 204: { + content: never; + }; + }; + }; + /** + * List self-hosted runners for an organization + * @description Lists all self-hosted runners configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-self-hosted-runners-for-org": { + parameters: { + query?: { + /** @description The name of a self-hosted runner. */ + name?: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + runners: components["schemas"]["runner"][]; + }; + }; + }; + }; + }; + /** + * List runner applications for an organization + * @description Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-runner-applications-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["runner-application"][]; + }; + }; + }; + }; + /** + * Create configuration for a just-in-time runner for an organization + * @description Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the organization. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/generate-runner-jitconfig-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the new runner. */ + name: string; + /** @description The ID of the runner group to register the runner to. */ + runner_group_id: number; + /** @description The names of the custom labels to add to the runner. **Minimum items**: 1. **Maximum items**: 100. */ + labels: string[]; + /** + * @description The working directory to be used for job execution, relative to the runner install directory. + * @default _work + */ + work_folder?: string; + }; + }; + }; + responses: { + 201: components["responses"]["actions_runner_jitconfig"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Create a registration token for an organization + * @description Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-registration-token-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Create a remove token for an organization + * @description Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-remove-token-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Get a self-hosted runner for an organization + * @description Gets a specific self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/get-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["runner"]; + }; + }; + }; + }; + /** + * Delete a self-hosted runner from an organization + * @description Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-self-hosted-runner-from-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List labels for a self-hosted runner for an organization + * @description Lists all labels for a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-labels-for-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set custom labels for a self-hosted runner for an organization + * @description Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/set-custom-labels-for-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to set for the runner. You can pass an empty array to remove all custom labels. */ + labels: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Add custom labels to a self-hosted runner for an organization + * @description Adds custom labels to a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/add-custom-labels-to-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to add to the runner. */ + labels: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Remove all custom labels from a self-hosted runner for an organization + * @description Remove all custom labels from a self-hosted runner configured in an + * organization. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/remove-all-custom-labels-from-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels_readonly"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a custom label from a self-hosted runner for an organization + * @description Remove a custom label from a self-hosted runner configured + * in an organization. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/remove-custom-label-from-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + name: components["parameters"]["runner-label-name"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List organization secrets + * @description Lists all secrets available in an organization without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-org-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["organization-actions-secret"][]; + }; + }; + }; + }; + }; + /** + * Get an organization public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-org-public-key": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + }; + /** + * Get an organization secret + * @description Gets a single organization secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-actions-secret"]; + }; + }; + }; + }; + /** + * Create or update an organization secret + * @description Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to + * use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "actions/create-or-update-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/actions#get-an-organization-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + /** + * @description Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids?: (number | string)[]; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete an organization secret + * @description Deletes a secret in an organization using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-selected-repos-for-org-secret": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + }; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/set-selected-repos-for-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Add selected repository to an organization secret](https://docs.github.com/rest/actions/secrets#add-selected-repository-to-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/actions/secrets#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. For more information about setting the visibility, see [Create or + * update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/add-selected-repo-to-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was added to the selected list */ + 204: { + content: never; + }; + /** @description Conflict when visibility type is not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/remove-selected-repo-from-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response when repository was removed from the selected list */ + 204: { + content: never; + }; + /** @description Conflict when visibility type not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * List organization variables + * @description Lists all organization variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-org-variables": { + parameters: { + query?: { + per_page?: components["parameters"]["variables-per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + variables: components["schemas"]["organization-actions-variable"][]; + }; + }; + }; + }; + }; + /** + * Create an organization variable + * @description Creates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name: string; + /** @description The value of the variable. */ + value: string; + /** + * @description The type of repositories in the organization that can access the variable. `selected` means only the repositories specified by `selected_repository_ids` can access the variable. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization variable. You can only provide a list of repository ids when the `visibility` is set to `selected`. */ + selected_repository_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response when creating a variable */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Get an organization variable + * @description Gets a specific variable in an organization. + * + * The authenticated user must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-actions-variable"]; + }; + }; + }; + }; + /** + * Delete an organization variable + * @description Deletes an organization variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update an organization variable + * @description Updates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/update-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name?: string; + /** @description The value of the variable. */ + value?: string; + /** + * @description The type of repositories in the organization that can access the variable. `selected` means only the repositories specified by `selected_repository_ids` can access the variable. + * @enum {string} + */ + visibility?: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization variable. You can only provide a list of repository ids when the `visibility` is set to `selected`. */ + selected_repository_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories for an organization variable + * @description Lists all repositories that can access an organization variable + * that is available to selected repositories. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-selected-repos-for-org-variable": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + /** @description Response when the visibility of the variable is not set to `selected` */ + 409: { + content: never; + }; + }; + }; + /** + * Set selected repositories for an organization variable + * @description Replaces all repositories for an organization variable that is available + * to selected repositories. Organization variables that are available to selected + * repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/set-selected-repos-for-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The IDs of the repositories that can access the organization variable. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response when the visibility of the variable is not set to `selected` */ + 409: { + content: never; + }; + }; + }; + /** + * Add selected repository to an organization variable + * @description Adds a repository to an organization variable that is available to selected repositories. + * Organization variables that are available to selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/add-selected-repo-to-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response when the visibility of the variable is not set to `selected` */ + 409: { + content: never; + }; + }; + }; + /** + * Remove selected repository from an organization variable + * @description Removes a repository from an organization variable that is + * available to selected repositories. Organization variables that are available to + * selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/remove-selected-repo-from-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response when the visibility of the variable is not set to `selected` */ + 409: { + content: never; + }; + }; + }; + /** + * List users blocked by an organization + * @description List the users blocked by an organization. + */ + "orgs/list-blocked-users": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Check if a user is blocked by an organization + * @description Returns a 204 if the given user is blocked by the given organization. Returns a 404 if the organization is not blocking the user, or if the user account has been identified as spam by GitHub. + */ + "orgs/check-blocked-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description If the user is blocked */ + 204: { + content: never; + }; + /** @description If the user is not blocked */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Block a user from an organization + * @description Blocks the given user on behalf of the specified organization and returns a 204. If the organization cannot block the given user a 422 is returned. + */ + "orgs/block-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Unblock a user from an organization + * @description Unblocks the given user on behalf of the specified organization. + */ + "orgs/unblock-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List code scanning alerts for an organization + * @description Lists code scanning alerts for the default branch for all eligible repositories in an organization. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` or `repo`s cope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/list-alerts-for-org": { + parameters: { + query?: { + tool_name?: components["parameters"]["tool-name"]; + tool_guid?: components["parameters"]["tool-guid"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + direction?: components["parameters"]["direction"]; + /** @description If specified, only code scanning alerts with this state will be returned. */ + state?: components["schemas"]["code-scanning-alert-state-query"]; + /** @description The property by which to sort the results. */ + sort?: "created" | "updated"; + /** @description If specified, only code scanning alerts with this severity will be returned. */ + severity?: components["schemas"]["code-scanning-alert-severity"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["code-scanning-organization-alert-items"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List codespaces for the organization + * @description Lists the codespaces associated to a specified organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/list-in-organization": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Manage access control for organization codespaces + * @deprecated + * @description Sets which users can access codespaces in an organization. This is synonymous with granting or revoking codespaces access permissions for users according to the visibility. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/set-codespaces-access": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Which users can access codespaces in the organization. `disabled` means that no users can access codespaces in the organization. + * @enum {string} + */ + visibility: + | "disabled" + | "selected_members" + | "all_members" + | "all_members_and_outside_collaborators"; + /** @description The usernames of the organization members who should have access to codespaces in the organization. Required when `visibility` is `selected_members`. The provided list of usernames will replace any existing value. */ + selected_usernames?: string[]; + }; + }; + }; + responses: { + /** @description Response when successfully modifying permissions. */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + /** @description Users are neither members nor collaborators of this organization. */ + 400: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Add users to Codespaces access for an organization + * @deprecated + * @description Codespaces for the specified users will be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/set-codespaces-access-users": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The usernames of the organization members whose codespaces be billed to the organization. */ + selected_usernames: string[]; + }; + }; + }; + responses: { + /** @description Response when successfully modifying permissions. */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + /** @description Users are neither members nor collaborators of this organization. */ + 400: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Remove users from Codespaces access for an organization + * @deprecated + * @description Codespaces for the specified users will no longer be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/delete-codespaces-access-users": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The usernames of the organization members whose codespaces should not be billed to the organization. */ + selected_usernames: string[]; + }; + }; + }; + responses: { + /** @description Response when successfully modifying permissions. */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + /** @description Users are neither members nor collaborators of this organization. */ + 400: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List organization secrets + * @description Lists all Codespaces development environment secrets available at the organization-level without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/list-org-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["codespaces-org-secret"][]; + }; + }; + }; + }; + }; + /** + * Get an organization public key + * @description Gets a public key for an organization, which is required in order to encrypt secrets. You need to encrypt the value of a secret before you can create or update secrets. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/get-org-public-key": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-public-key"]; + }; + }; + }; + }; + /** + * Get an organization secret + * @description Gets an organization development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/get-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["codespaces-org-secret"]; + }; + }; + }; + }; + /** + * Create or update an organization secret + * @description Creates or updates an organization development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/create-or-update-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-public-key) endpoint. */ + encrypted_value?: string; + /** @description The ID of the key you used to encrypt the secret. */ + key_id?: string; + /** + * @description Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository IDs that can access the organization secret. You can only provide a list of repository IDs when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an organization secret + * @description Deletes an organization development environment secret using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/delete-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/list-selected-repos-for-org-secret": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/set-selected-repos-for-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description Conflict when visibility type not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization development environment secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/add-selected-repo-to-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was added to the selected list */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description Conflict when visibility type is not set to selected */ + 409: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/remove-selected-repo-from-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response when repository was removed from the selected list */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description Conflict when visibility type not set to selected */ + 409: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get Copilot seat information and settings for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Gets information about an organization's Copilot subscription, including seat breakdown + * and code matching policies. To configure these settings, go to your organization's settings on GitHub.com. + * For more information, see "[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-copilot-business-in-your-organization)". + * + * Only organization owners can configure and view details about the organization's Copilot Business subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/get-copilot-organization-details": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["copilot-organization-details"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List all Copilot seat assignments for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Lists all Copilot seat assignments for an organization that are currently being billed (either active or pending cancellation at the start of the next billing cycle). + * + * Only organization owners can configure and view details about the organization's Copilot Business or Enterprise subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/list-copilot-seats": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + /** @description Total number of Copilot seats for the organization currently being billed. */ + total_seats?: number; + seats?: components["schemas"]["copilot-seat-details"][]; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Add teams to the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for all users within each specified team. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/add-copilot-seats-for-teams": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description List of team names within the organization to which to grant access to GitHub Copilot. */ + selected_teams: string[]; + }; + }; + }; + responses: { + /** @description OK */ + 201: { + content: { + "application/json": { + seats_created: number; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, or the organization's Copilot access setting is set to enable Copilot for all users or is unconfigured. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Remove teams from the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for all members of each team specified. + * This will cause the members of the specified team(s) to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/cancel-copilot-seat-assignment-for-teams": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of teams from which to revoke access to GitHub Copilot. */ + selected_teams: string[]; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": { + seats_cancelled: number; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, or the organization's Copilot access setting is set to enable Copilot for all users or is unconfigured. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Add users to the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for each user specified. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/add-copilot-seats-for-users": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The usernames of the organization members to be granted access to GitHub Copilot. */ + selected_usernames: string[]; + }; + }; + }; + responses: { + /** @description OK */ + 201: { + content: { + "application/json": { + seats_created: number; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, or the organization's Copilot access setting is set to enable Copilot for all users or is unconfigured. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Remove users from the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for each user specified. + * This will cause the specified users to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/cancel-copilot-seat-assignment-for-users": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The usernames of the organization members for which to revoke access to GitHub Copilot. */ + selected_usernames: string[]; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": { + seats_cancelled: number; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, the seat management setting is set to enable Copilot for all users or is unconfigured, or a user's seat cannot be cancelled because it was assigned to them via a team. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List Dependabot alerts for an organization + * @description Lists Dependabot alerts for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "dependabot/list-alerts-for-org": { + parameters: { + query?: { + state?: components["parameters"]["dependabot-alert-comma-separated-states"]; + severity?: components["parameters"]["dependabot-alert-comma-separated-severities"]; + ecosystem?: components["parameters"]["dependabot-alert-comma-separated-ecosystems"]; + package?: components["parameters"]["dependabot-alert-comma-separated-packages"]; + scope?: components["parameters"]["dependabot-alert-scope"]; + sort?: components["parameters"]["dependabot-alert-sort"]; + direction?: components["parameters"]["direction"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + first?: components["parameters"]["pagination-first"]; + last?: components["parameters"]["pagination-last"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert-with-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List organization secrets + * @description Lists all secrets available in an organization without revealing their + * encrypted values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/list-org-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["organization-dependabot-secret"][]; + }; + }; + }; + }; + }; + /** + * Get an organization public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/get-org-public-key": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-public-key"]; + }; + }; + }; + }; + /** + * Get an organization secret + * @description Gets a single organization secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/get-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-dependabot-secret"]; + }; + }; + }; + }; + /** + * Create or update an organization secret + * @description Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization + * permission to use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "dependabot/create-or-update-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + /** + * @description Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids?: (string | number)[]; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete an organization secret + * @description Deletes a secret in an organization using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/delete-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/list-selected-repos-for-org-secret": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + }; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/set-selected-repos-for-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/dependabot/secrets#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. The visibility is set when you [Create or + * update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/add-selected-repo-to-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was added to the selected list */ + 204: { + content: never; + }; + /** @description Conflict when visibility type is not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/remove-selected-repo-from-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response when repository was removed from the selected list */ + 204: { + content: never; + }; + /** @description Conflict when visibility type not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * Get list of conflicting packages during Docker migration for organization + * @description Lists all packages that are in a specific organization, are readable by the requesting user, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + "packages/list-docker-migration-conflicting-packages-for-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** List public organization events */ + "activity/list-public-org-events": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** + * List failed organization invitations + * @description The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. + */ + "orgs/list-failed-invitations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** List organization webhooks */ + "orgs/list-webhooks": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["org-hook"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create an organization webhook + * @description Here's how you can create a hook that posts payloads in JSON format: + */ + "orgs/create-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Must be passed as "web". */ + name: string; + /** @description Key/value pairs to provide settings for this webhook. */ + config: { + url: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + /** @example "kdaigle" */ + username?: string; + /** @example "password" */ + password?: string; + }; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. Set to `["*"]` to receive all possible events. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/orgs/octocat/hooks/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["org-hook"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an organization webhook + * @description Returns a webhook configured in an organization. To get only the webhook `config` properties, see "[Get a webhook configuration for an organization](/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization)." + */ + "orgs/get-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-hook"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete an organization webhook */ + "orgs/delete-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update an organization webhook + * @description Updates a webhook configured in an organization. When you update a webhook, the `secret` will be overwritten. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for an organization](/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization)." + */ + "orgs/update-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Key/value pairs to provide settings for this webhook. */ + config?: { + url: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + /** @example "web" */ + name?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-hook"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a webhook configuration for an organization + * @description Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/orgs/webhooks#get-an-organization-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org_hook` scope to use this endpoint. + */ + "orgs/get-webhook-config-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * Update a webhook configuration for an organization + * @description Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/orgs/webhooks#update-an-organization-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org_hook` scope to use this endpoint. + */ + "orgs/update-webhook-config-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * List deliveries for an organization webhook + * @description Returns a list of webhook deliveries for a webhook configured in an organization. + */ + "orgs/list-webhook-deliveries": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + cursor?: components["parameters"]["cursor"]; + redelivery?: boolean; + }; + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery-item"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a webhook delivery for an organization webhook + * @description Returns a delivery for a webhook configured in an organization. + */ + "orgs/get-webhook-delivery": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery"]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Redeliver a delivery for an organization webhook + * @description Redeliver a delivery for a webhook configured in an organization. + */ + "orgs/redeliver-webhook-delivery": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Ping an organization webhook + * @description This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + "orgs/ping-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get an organization installation for the authenticated app + * @description Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-org-installation": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + }; + }; + /** + * List app installations for an organization + * @description Lists all GitHub Apps in an organization. The installation count includes + * all GitHub Apps installed on repositories in the organization. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:read` scope to use this endpoint. + */ + "orgs/list-app-installations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + installations: components["schemas"]["installation"][]; + }; + }; + }; + }; + }; + /** + * Get interaction restrictions for an organization + * @description Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response. + */ + "interactions/get-restrictions-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": + | components["schemas"]["interaction-limit-response"] + | Record; + }; + }; + }; + }; + /** + * Set interaction restrictions for an organization + * @description Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. + */ + "interactions/set-restrictions-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["interaction-limit"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove interaction restrictions for an organization + * @description Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. + */ + "interactions/remove-restrictions-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List pending organization invitations + * @description The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, or `hiring_manager`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + "orgs/list-pending-invitations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Filter invitations by their member role. */ + role?: + | "all" + | "admin" + | "direct_member" + | "billing_manager" + | "hiring_manager"; + /** @description Filter invitations by their invitation source. */ + invitation_source?: "all" | "member" | "scim"; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create an organization invitation + * @description Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + "orgs/create-invitation": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description **Required unless you provide `email`**. GitHub user ID for the person you are inviting. */ + invitee_id?: number; + /** @description **Required unless you provide `invitee_id`**. Email address of the person you are inviting, which can be an existing GitHub user. */ + email?: string; + /** + * @description The role for the new member. + * * `admin` - Organization owners with full administrative rights to the organization and complete access to all repositories and teams. + * * `direct_member` - Non-owner organization members with ability to see other members and join teams by invitation. + * * `billing_manager` - Non-owner organization members with ability to manage the billing settings of your organization. + * * `reinstate` - The previous role assigned to the invitee before they were removed from your organization. Can be one of the roles listed above. Only works if the invitee was previously part of your organization. + * @default direct_member + * @enum {string} + */ + role?: "admin" | "direct_member" | "billing_manager" | "reinstate"; + /** @description Specify IDs for the teams you want to invite new members to. */ + team_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["organization-invitation"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Cancel an organization invitation + * @description Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + */ + "orgs/cancel-invitation": { + parameters: { + path: { + org: components["parameters"]["org"]; + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List organization invitation teams + * @description List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + */ + "orgs/list-invitation-teams": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organization issues assigned to the authenticated user + * @description List issues in an organization assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-for-org": { + parameters: { + query?: { + /** @description Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. */ + filter?: + | "assigned" + | "created" + | "mentioned" + | "subscribed" + | "repos" + | "all"; + /** @description Indicates the state of the issues to return. */ + state?: "open" | "closed" | "all"; + labels?: components["parameters"]["labels"]; + /** @description What to sort results by. */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organization members + * @description List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + */ + "orgs/list-members": { + parameters: { + query?: { + /** @description Filter members returned in the list. `2fa_disabled` means that only members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled will be returned. This options is only available for organization owners. */ + filter?: "2fa_disabled" | "all"; + /** @description Filter members returned by their role. */ + role?: "all" | "admin" | "member"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Check organization membership for a user + * @description Check if a user is, publicly or privately, a member of the organization. + */ + "orgs/check-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response if requester is an organization member and user is a member */ + 204: { + content: never; + }; + /** @description Response if requester is not an organization member */ + 302: { + headers: { + /** @example https://api.github.com/orgs/github/public_members/pezra */ + Location?: string; + }; + content: never; + }; + /** @description Not Found if requester is an organization member and user is not a member */ + 404: { + content: never; + }; + }; + }; + /** + * Remove an organization member + * @description Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + */ + "orgs/remove-member": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List codespaces for a user in organization + * @description Lists the codespaces that a member of an organization has for repositories in that organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/get-codespaces-for-user-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Delete a codespace from the organization + * @description Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/delete-from-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Stop a codespace for an organization user + * @description Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/stop-in-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get Copilot seat assignment details for a user + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Gets the GitHub Copilot seat assignment details for a member of an organization who currently has access to GitHub Copilot. + * + * Organization owners can view GitHub Copilot seat assignment details for members in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/get-copilot-seat-details-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description The user's GitHub Copilot seat details, including usage. */ + 200: { + content: { + "application/json": components["schemas"]["copilot-seat-details"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization or the user has a pending organization invitation. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get organization membership for a user + * @description In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status. + */ + "orgs/get-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set organization membership for a user + * @description Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + */ + "orgs/set-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The role to give the user in the organization. Can be one of: + * * `admin` - The user will become an owner of the organization. + * * `member` - The user will become a non-owner member of the organization. + * @default member + * @enum {string} + */ + role?: "admin" | "member"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove organization membership for a user + * @description In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + */ + "orgs/remove-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organization migrations + * @description Lists the most recent migrations, including both exports (which can be started through the REST API) and imports (which cannot be started using the REST API). + * + * A list of `repositories` is only returned for export migrations. + */ + "migrations/list-for-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Exclude attributes from the API response to improve performance */ + exclude?: "repositories"[]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["migration"][]; + }; + }; + }; + }; + /** + * Start an organization migration + * @description Initiates the generation of a migration archive. + */ + "migrations/start-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A list of arrays indicating which repositories should be migrated. */ + repositories: string[]; + /** + * @description Indicates whether repositories should be locked (to prevent manipulation) while migrating data. + * @default false + * @example true + */ + lock_repositories?: boolean; + /** + * @description Indicates whether metadata should be excluded and only git source should be included for the migration. + * @default false + */ + exclude_metadata?: boolean; + /** + * @description Indicates whether the repository git data should be excluded from the migration. + * @default false + */ + exclude_git_data?: boolean; + /** + * @description Indicates whether attachments should be excluded from the migration (to reduce migration archive file size). + * @default false + * @example true + */ + exclude_attachments?: boolean; + /** + * @description Indicates whether releases should be excluded from the migration (to reduce migration archive file size). + * @default false + * @example true + */ + exclude_releases?: boolean; + /** + * @description Indicates whether projects owned by the organization or users should be excluded. from the migration. + * @default false + * @example true + */ + exclude_owner_projects?: boolean; + /** + * @description Indicates whether this should only include organization metadata (repositories array should be empty and will ignore other flags). + * @default false + * @example true + */ + org_metadata_only?: boolean; + /** @description Exclude related items from being returned in the response in order to improve performance of the request. */ + exclude?: "repositories"[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an organization migration status + * @description Fetches the status of a migration. + * + * The `state` of a migration can be one of the following values: + * + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + "migrations/get-status-for-org": { + parameters: { + query?: { + /** @description Exclude attributes from the API response to improve performance */ + exclude?: "repositories"[]; + }; + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** + * @description * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + 200: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Download an organization migration archive + * @description Fetches the URL to a migration archive. + */ + "migrations/download-archive-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 302: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an organization migration archive + * @description Deletes a previous migration archive. Migration archives are automatically deleted after seven days. + */ + "migrations/delete-archive-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unlock an organization repository + * @description Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/repos/repos#delete-a-repository) when the migration is complete and you no longer need the source data. + */ + "migrations/unlock-repo-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + repo_name: components["parameters"]["repo-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories in an organization migration + * @description List all the repositories for this organization migration. + */ + "migrations/list-repos-for-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organization fine-grained permissions for an organization + * @description Lists the fine-grained permissions that can be used in custom organization roles for an organization. For more information, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To list the fine-grained permissions that can be used in custom repository roles for an organization, see "[List repository fine-grained permissions for an organization](https://docs.github.com/rest/orgs/organization-roles#list-repository-fine-grained-permissions-for-an-organization)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/list-organization-fine-grained-permissions": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-fine-grained-permission"][]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all organization roles for an organization + * @description Lists the organization roles available in this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/list-org-roles": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response - list of organization roles */ + 200: { + content: { + "application/json": { + /** @description The total number of organization roles available to the organization. */ + total_count?: number; + /** @description The list of organization roles available to the organization. */ + roles?: components["schemas"]["organization-role"][]; + }; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a custom organization role + * @description Creates a custom organization role that can be assigned to users and teams, granting them specific permissions over the organization. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/create-custom-organization-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the custom role. */ + name: string; + /** @description A short description about the intended usage of this role or what permissions it grants. */ + description?: string; + /** @description A list of additional permissions included in this role. */ + permissions: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["organization-role"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove all organization roles for a team + * @description Removes all assigned organization roles from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/revoke-all-org-roles-team": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Assign an organization role to a team + * @description Assigns an organization role to a team in an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/assign-team-to-org-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response if the organization, team or role does not exist. */ + 404: { + content: never; + }; + /** @description Response if the organization roles feature is not enabled for the organization, or validation failed. */ + 422: { + content: never; + }; + }; + }; + /** + * Remove an organization role from a team + * @description Removes an organization role from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/revoke-org-role-team": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Remove all organization roles for a user + * @description Revokes all assigned organization roles from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/revoke-all-org-roles-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Assign an organization role to a user + * @description Assigns an organization role to a member of an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/assign-user-to-org-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response if the organization, user or role does not exist. */ + 404: { + content: never; + }; + /** @description Response if the organization roles feature is not enabled enabled for the organization, the validation failed, or the user is not an organization member. */ + 422: { + content: never; + }; + }; + }; + /** + * Remove an organization role from a user + * @description Remove an organization role from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/revoke-org-role-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get an organization role + * @description Gets an organization role that is available to this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/get-org-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-role"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a custom organization role. + * @description Deletes a custom organization role. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/delete-custom-organization-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a custom organization role + * @description Updates an existing custom organization role. Permission changes will apply to all assignees. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/patch-custom-organization-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the custom role. */ + name?: string; + /** @description A short description about the intended usage of this role or what permissions it grants. */ + description?: string; + /** @description A list of additional permissions included in this role. */ + permissions?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-role"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List teams that are assigned to an organization role + * @description Lists the teams that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/list-org-role-teams": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response - List of assigned teams */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + /** @description Response if the organization or role does not exist. */ + 404: { + content: never; + }; + /** @description Response if the organization roles feature is not enabled or validation failed. */ + 422: { + content: never; + }; + }; + }; + /** + * List users that are assigned to an organization role + * @description Lists organization members that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/list-org-role-users": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response - List of assigned users */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + /** @description Response if the organization or role does not exist. */ + 404: { + content: never; + }; + /** @description Response if the organization roles feature is not enabled or validation failed. */ + 422: { + content: never; + }; + }; + }; + /** + * List outside collaborators for an organization + * @description List all users who are outside collaborators of an organization. + */ + "orgs/list-outside-collaborators": { + parameters: { + query?: { + /** @description Filter the list of outside collaborators. `2fa_disabled` means that only outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled will be returned. */ + filter?: "2fa_disabled" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Convert an organization member to outside collaborator + * @description When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://docs.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". Converting an organization member to an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + */ + "orgs/convert-member-to-outside-collaborator": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description When set to `true`, the request will be performed asynchronously. Returns a 202 status code when the job is successfully queued. + * @default false + */ + async?: boolean; + }; + }; + }; + responses: { + /** @description User is getting converted asynchronously */ + 202: { + content: { + "application/json": Record; + }; + }; + /** @description User was converted */ + 204: { + content: never; + }; + /** @description Forbidden if user is the last owner of the organization, not a member of the organization, or if the enterprise enforces a policy for inviting outside collaborators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." */ + 403: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove outside collaborator from an organization + * @description Removing a user from this list will remove them from all the organization's repositories. + */ + "orgs/remove-outside-collaborator": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Unprocessable Entity if user is a member of the organization */ + 422: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + }; + }; + /** + * List packages for an organization + * @description Lists packages in an organization readable by the user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/list-packages-for-organization": { + parameters: { + query: { + /** @description The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + visibility?: components["parameters"]["package-visibility"]; + /** @description The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + page?: number; + /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 400: components["responses"]["package_es_list_error"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a package for an organization + * @description Gets a specific package in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-for-organization": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"]; + }; + }; + }; + }; + /** + * Delete a package for an organization + * @description Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-for-org": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore a package for an organization + * @description Restores an entire package in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-for-org": { + parameters: { + query?: { + /** @description package token */ + token?: string; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List package versions for a package owned by an organization + * @description Lists package versions for a package owned by an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-all-package-versions-for-package-owned-by-org": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + /** @description The state of the package, either active or deleted. */ + state?: "active" | "deleted"; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a package version for an organization + * @description Gets a specific package version in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-version-for-organization": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"]; + }; + }; + }; + }; + /** + * Delete package version for an organization + * @description Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-version-for-org": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore package version for an organization + * @description Restores a specific package version in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-version-for-org": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List requests to access organization resources with fine-grained personal access tokens + * @description Lists requests from organization members to access organization resources with a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/list-pat-grant-requests": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + sort?: components["parameters"]["personal-access-token-sort"]; + direction?: components["parameters"]["direction"]; + owner?: components["parameters"]["personal-access-token-owner"]; + repository?: components["parameters"]["personal-access-token-repository"]; + permission?: components["parameters"]["personal-access-token-permission"]; + last_used_before?: components["parameters"]["personal-access-token-before"]; + last_used_after?: components["parameters"]["personal-access-token-after"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-programmatic-access-grant-request"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Review requests to access organization resources with fine-grained personal access tokens + * @description Approves or denies multiple pending requests to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/review-pat-grant-requests-in-bulk": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Unique identifiers of the requests for access via fine-grained personal access token. Must be formed of between 1 and 100 `pat_request_id` values. */ + pat_request_ids?: number[]; + /** + * @description Action to apply to the requests. + * @enum {string} + */ + action: "approve" | "deny"; + /** @description Reason for approving or denying the requests. Max 1024 characters. */ + reason?: string | null; + }; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Review a request to access organization resources with a fine-grained personal access token + * @description Approves or denies a pending request to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/review-pat-grant-request": { + parameters: { + path: { + org: components["parameters"]["org"]; + /** @description Unique identifier of the request for access via fine-grained personal access token. */ + pat_request_id: number; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Action to apply to the request. + * @enum {string} + */ + action: "approve" | "deny"; + /** @description Reason for approving or denying the request. Max 1024 characters. */ + reason?: string | null; + }; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List repositories requested to be accessed by a fine-grained personal access token + * @description Lists the repositories a fine-grained personal access token request is requesting access to. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/list-pat-grant-request-repositories": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + /** @description Unique identifier of the request for access via fine-grained personal access token. */ + pat_request_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List fine-grained personal access tokens with access to organization resources + * @description Lists approved fine-grained personal access tokens owned by organization members that can access organization resources. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/list-pat-grants": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + sort?: components["parameters"]["personal-access-token-sort"]; + direction?: components["parameters"]["direction"]; + owner?: components["parameters"]["personal-access-token-owner"]; + repository?: components["parameters"]["personal-access-token-repository"]; + permission?: components["parameters"]["personal-access-token-permission"]; + last_used_before?: components["parameters"]["personal-access-token-before"]; + last_used_after?: components["parameters"]["personal-access-token-after"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-programmatic-access-grant"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update the access to organization resources via fine-grained personal access tokens + * @description Updates the access organization members have to organization resources via fine-grained personal access tokens. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/update-pat-accesses": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Action to apply to the fine-grained personal access token. + * @enum {string} + */ + action: "revoke"; + /** @description The IDs of the fine-grained personal access tokens. */ + pat_ids: number[]; + }; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update the access a fine-grained personal access token has to organization resources + * @description Updates the access an organization member has to organization resources via a fine-grained personal access token. Limited to revoking the token's existing access. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/update-pat-access": { + parameters: { + path: { + org: components["parameters"]["org"]; + pat_id: components["parameters"]["fine-grained-personal-access-token-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Action to apply to the fine-grained personal access token. + * @enum {string} + */ + action: "revoke"; + }; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List repositories a fine-grained personal access token has access to + * @description Lists the repositories a fine-grained personal access token has access to. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/list-pat-grant-repositories": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + /** @description Unique identifier of the fine-grained personal access token. */ + pat_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List organization projects + * @description Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/list-for-org": { + parameters: { + query?: { + /** @description Indicates the state of the projects to return. */ + state?: "open" | "closed" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project"][]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Create an organization project + * @description Creates an organization project board. Returns a `410 Gone` status if projects are disabled in the organization or if the organization does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/create-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the project. */ + name: string; + /** @description The description of the project. */ + body?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get all custom properties for an organization + * @description Gets all custom properties defined for an organization. + * Organization members can read these properties. + */ + "orgs/get-all-custom-properties": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-custom-property"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update custom properties for an organization + * @description Creates new or updates existing custom properties defined for an organization in a batch. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + "orgs/create-or-update-custom-properties": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The array of custom properties to create or update. */ + properties: components["schemas"]["org-custom-property"][]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-custom-property"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a custom property for an organization + * @description Gets a custom property that is defined for an organization. + * Organization members can read these properties. + */ + "orgs/get-custom-property": { + parameters: { + path: { + org: components["parameters"]["org"]; + custom_property_name: components["parameters"]["custom-property-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-custom-property"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update a custom property for an organization + * @description Creates a new or updates an existing custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + "orgs/create-or-update-custom-property": { + parameters: { + path: { + org: components["parameters"]["org"]; + custom_property_name: components["parameters"]["custom-property-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The type of the value for the property + * @example single_select + * @enum {string} + */ + value_type: "string" | "single_select"; + /** @description Whether the property is required. */ + required?: boolean; + /** @description Default value of the property */ + default_value?: string | null; + /** @description Short description of the property */ + description?: string | null; + /** + * @description An ordered list of the allowed values of the property. + * The property can have up to 200 allowed values. + */ + allowed_values?: string[] | null; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-custom-property"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a custom property for an organization + * @description Removes a custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + "orgs/remove-custom-property": { + parameters: { + path: { + org: components["parameters"]["org"]; + custom_property_name: components["parameters"]["custom-property-name"]; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List custom property values for organization repositories + * @description Lists organization repositories with all of their custom property values. + * Organization members can read these properties. + */ + "orgs/list-custom-properties-values-for-repos": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Finds repositories in the organization with a query containing one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching for repositories](https://docs.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. */ + repository_query?: string; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["org-repo-custom-property-values"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update custom property values for organization repositories + * @description Create new or update existing custom property values for repositories in a batch that belong to an organization. + * Each target repository will have its custom property values updated to match the values provided in the request. + * + * A maximum of 30 repositories can be updated in a single request. + * + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_values_editor` in the organization. + */ + "orgs/create-or-update-custom-properties-values-for-repos": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of repositories that the custom property values will be applied to. */ + repository_names: string[]; + /** @description List of custom property names and associated values to apply to the repositories. */ + properties: components["schemas"]["custom-property-value"][]; + }; + }; + }; + responses: { + /** @description No Content when custom property values are successfully created or updated */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List public organization members + * @description Members of an organization can choose to have their membership publicized or not. + */ + "orgs/list-public-members": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Check public organization membership for a user + * @description Check if the provided user is a public member of the organization. + */ + "orgs/check-public-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response if user is a public member */ + 204: { + content: never; + }; + /** @description Not Found if user is not a public member */ + 404: { + content: never; + }; + }; + }; + /** + * Set public organization membership for the authenticated user + * @description The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "orgs/set-public-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Remove public organization membership for the authenticated user + * @description Removes the public membership for the authenticated user from the specified organization, unless public visibility is enforced by default. + */ + "orgs/remove-public-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List organization repositories + * @description Lists repositories for the specified organization. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + "repos/list-for-org": { + parameters: { + query?: { + /** @description Specifies the types of repositories you want returned. */ + type?: "all" | "public" | "private" | "forks" | "sources" | "member"; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** @description The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Create an organization repository + * @description Creates a new repository in the specified organization. The authenticated user must be a member of the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + "repos/create-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the repository. */ + name: string; + /** @description A short description of the repository. */ + description?: string; + /** @description A URL with more information about the repository. */ + homepage?: string; + /** + * @description Whether the repository is private. + * @default false + */ + private?: boolean; + /** + * @description The visibility of the repository. + * @enum {string} + */ + visibility?: "public" | "private"; + /** + * @description Either `true` to enable issues for this repository or `false` to disable them. + * @default true + */ + has_issues?: boolean; + /** + * @description Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + * @default true + */ + has_projects?: boolean; + /** + * @description Either `true` to enable the wiki for this repository or `false` to disable it. + * @default true + */ + has_wiki?: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads?: boolean; + /** + * @description Either `true` to make this repo available as a template repository or `false` to prevent it. + * @default false + */ + is_template?: boolean; + /** @description The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. */ + team_id?: number; + /** + * @description Pass `true` to create an initial commit with empty README. + * @default false + */ + auto_init?: boolean; + /** @description Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell". */ + gitignore_template?: string; + /** @description Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://docs.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0". */ + license_template?: string; + /** + * @description Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + * @default true + */ + allow_squash_merge?: boolean; + /** + * @description Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge. + * @default false + */ + allow_auto_merge?: boolean; + /** + * @description Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. **The authenticated user must be an organization owner to set this property to `true`.** + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @deprecated + * @description Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** @description The custom properties for the new repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all organization repository rulesets + * @description Get all the repository rulesets for an organization. + */ + "repos/get-org-rulesets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"][]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create an organization repository ruleset + * @description Create a repository ruleset for an organization. + */ + "repos/create-org-ruleset": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + /** @description Request body */ + requestBody: { + content: { + "application/json": { + /** @description The name of the ruleset. */ + name: string; + /** + * @description The target of the ruleset. + * @enum {string} + */ + target?: "branch" | "tag"; + enforcement: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + conditions?: components["schemas"]["org-ruleset-conditions"]; + /** @description An array of rules within the ruleset. */ + rules?: components["schemas"]["repository-rule"][]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List organization rule suites + * @description Lists suites of rule evaluations at the organization level. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + "repos/get-org-rule-suites": { + parameters: { + query?: { + repository_name?: components["parameters"]["repository-name-in-query"]; + time_period?: components["parameters"]["time-period"]; + actor_name?: components["parameters"]["actor-name-in-query"]; + rule_suite_result?: components["parameters"]["rule-suite-result"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["rule-suites"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get an organization rule suite + * @description Gets information about a suite of rule evaluations from within an organization. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + "repos/get-org-rule-suite": { + parameters: { + path: { + org: components["parameters"]["org"]; + rule_suite_id: components["parameters"]["rule-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["rule-suite"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get an organization repository ruleset + * @description Get a repository ruleset for an organization. + */ + "repos/get-org-ruleset": { + parameters: { + path: { + org: components["parameters"]["org"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update an organization repository ruleset + * @description Update a ruleset for an organization. + */ + "repos/update-org-ruleset": { + parameters: { + path: { + org: components["parameters"]["org"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + /** @description Request body */ + requestBody?: { + content: { + "application/json": { + /** @description The name of the ruleset. */ + name?: string; + /** + * @description The target of the ruleset. + * @enum {string} + */ + target?: "branch" | "tag"; + enforcement?: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + conditions?: components["schemas"]["org-ruleset-conditions"]; + /** @description An array of rules within the ruleset. */ + rules?: components["schemas"]["repository-rule"][]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Delete an organization repository ruleset + * @description Delete a ruleset for an organization. + */ + "repos/delete-org-ruleset": { + parameters: { + path: { + org: components["parameters"]["org"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List secret scanning alerts for an organization + * @description Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/list-alerts-for-org": { + parameters: { + query?: { + state?: components["parameters"]["secret-scanning-alert-state"]; + secret_type?: components["parameters"]["secret-scanning-alert-secret-type"]; + resolution?: components["parameters"]["secret-scanning-alert-resolution"]; + sort?: components["parameters"]["secret-scanning-alert-sort"]; + direction?: components["parameters"]["direction"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + before?: components["parameters"]["secret-scanning-pagination-before-org-repo"]; + after?: components["parameters"]["secret-scanning-pagination-after-org-repo"]; + validity?: components["parameters"]["secret-scanning-alert-validity"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-secret-scanning-alert"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List repository security advisories for an organization + * @description Lists repository security advisories for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + "security-advisories/list-org-repository-advisories": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "published"; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + /** @description The number of advisories to return per page. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + /** @description Filter by the state of the repository advisories. Only advisories of this state will be returned. */ + state?: "triage" | "draft" | "published" | "closed"; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-advisory"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List security manager teams + * @description Lists teams that are security managers for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + "orgs/list-security-manager-teams": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-simple"][]; + }; + }; + }; + }; + /** + * Add a security manager team + * @description Adds a team as a security manager for an organization. For more information, see "[Managing security for an organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) for an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + "orgs/add-security-manager-team": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description The organization has reached the maximum number of security manager teams. */ + 409: { + content: never; + }; + }; + }; + /** + * Remove a security manager team + * @description Removes the security manager role from a team for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) team from an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/remove-security-manager-team": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get GitHub Actions billing for an organization + * @description Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + "billing/get-github-actions-billing-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-billing-usage"]; + }; + }; + }; + }; + /** + * Get GitHub Packages billing for an organization + * @description Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + "billing/get-github-packages-billing-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["packages-billing-usage"]; + }; + }; + }; + }; + /** + * Get shared storage billing for an organization + * @description Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + "billing/get-shared-storage-billing-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["combined-billing-usage"]; + }; + }; + }; + }; + /** + * List teams + * @description Lists all teams in an organization that are visible to the authenticated user. + */ + "teams/list": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Create a team + * @description To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://docs.github.com/articles/setting-team-creation-permissions-in-your-organization)." + * + * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/about-teams)". + */ + "teams/create": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the team. */ + name: string; + /** @description The description of the team. */ + description?: string; + /** @description List GitHub IDs for organization members who will become team maintainers. */ + maintainers?: string[]; + /** @description The full name (e.g., "organization-name/repository-name") of repositories to add the team to. */ + repo_names?: string[]; + /** + * @description The level of privacy this team should have. The options are: + * **For a non-nested team:** + * * `secret` - only visible to organization owners and members of this team. + * * `closed` - visible to all members of this organization. + * Default: `secret` + * **For a parent or child team:** + * * `closed` - visible to all members of this organization. + * Default for child team: `closed` + * @enum {string} + */ + privacy?: "secret" | "closed"; + /** + * @description The notification setting the team has chosen. The options are: + * * `notifications_enabled` - team members receive notifications when the team is @mentioned. + * * `notifications_disabled` - no one receives notifications. + * Default: `notifications_enabled` + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** + * @description **Deprecated**. The permission that new repositories will be added to the team with when none is specified. + * @default pull + * @enum {string} + */ + permission?: "pull" | "push"; + /** @description The ID of a team to set as the parent team. */ + parent_team_id?: number; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a team by name + * @description Gets a team using the team's `slug`. To create the `slug`, GitHub replaces special characters in the `name` string, changes all words to lowercase, and replaces spaces with a `-` separator. For example, `"My TEam Näme"` would become `my-team-name`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + */ + "teams/get-by-name": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a team + * @description To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + */ + "teams/delete-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a team + * @description To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + */ + "teams/update-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the team. */ + name?: string; + /** @description The description of the team. */ + description?: string; + /** + * @description The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. When a team is nested, the `privacy` for parent teams cannot be `secret`. The options are: + * **For a non-nested team:** + * * `secret` - only visible to organization owners and members of this team. + * * `closed` - visible to all members of this organization. + * **For a parent or child team:** + * * `closed` - visible to all members of this organization. + * @enum {string} + */ + privacy?: "secret" | "closed"; + /** + * @description The notification setting the team has chosen. Editing teams without specifying this parameter leaves `notification_setting` intact. The options are: + * * `notifications_enabled` - team members receive notifications when the team is @mentioned. + * * `notifications_disabled` - no one receives notifications. + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** + * @description **Deprecated**. The permission that new repositories will be added to the team with when none is specified. + * @default pull + * @enum {string} + */ + permission?: "pull" | "push" | "admin"; + /** @description The ID of a team to set as the parent team. */ + parent_team_id?: number | null; + }; + }; + }; + responses: { + /** @description Response when the updated information already exists */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List discussions + * @description List all discussions on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/list-discussions-in-org": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Pinned discussions only filter */ + pinned?: string; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-discussion"][]; + }; + }; + }; + }; + /** + * Create a discussion + * @description Creates a new discussion post on a team's page. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/create-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title: string; + /** @description The discussion post's body text. */ + body: string; + /** + * @description Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + * @default false + */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * Get a discussion + * @description Get a specific discussion on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/get-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * Delete a discussion + * @description Delete a discussion from a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/delete-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a discussion + * @description Edits the title and body text of a discussion post. Only the parameters you provide are updated. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/update-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title?: string; + /** @description The discussion post's body text. */ + body?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * List discussion comments + * @description List all comments on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/list-discussion-comments-in-org": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-discussion-comment"][]; + }; + }; + }; + }; + /** + * Create a discussion comment + * @description Creates a new comment on a team discussion. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/create-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * Get a discussion comment + * @description Get a specific comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/get-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * Delete a discussion comment + * @description Deletes a comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/delete-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a discussion comment + * @description Edits the body text of a discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/update-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * List reactions for a team discussion comment + * @description List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "reactions/list-for-team-discussion-comment-in-org": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create reaction for a team discussion comment + * @description Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/create-for-team-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the team discussion comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response when the reaction type has already been added to this team discussion comment */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + }; + /** + * Delete team discussion comment reaction + * @description **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/delete-for-team-discussion-comment": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List reactions for a team discussion + * @description List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "reactions/list-for-team-discussion-in-org": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create reaction for a team discussion + * @description Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/create-for-team-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the team discussion. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + }; + /** + * Delete team discussion reaction + * @description **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/delete-for-team-discussion": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List pending team invitations + * @description The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + */ + "teams/list-pending-invitations-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + }; + }; + /** + * List team members + * @description Team members will include the members of child teams. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + "teams/list-members-in-org": { + parameters: { + query?: { + /** @description Filters members returned by their role in the team. */ + role?: "member" | "maintainer" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Get team membership for a user + * @description Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + */ + "teams/get-membership-for-user-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + /** @description if user has no team membership */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team membership for a user + * @description Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + "teams/add-or-update-membership-for-user-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The role that this user should have in the team. + * @default member + * @enum {string} + */ + role?: "member" | "maintainer"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + /** @description Forbidden if team synchronization is set up */ + 403: { + content: never; + }; + /** @description Unprocessable Entity if you attempt to add an organization to a team */ + 422: { + content: never; + }; + }; + }; + /** + * Remove team membership for a user + * @description To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + "teams/remove-membership-for-user-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Forbidden if team synchronization is set up */ + 403: { + content: never; + }; + }; + }; + /** + * List team projects + * @description Lists the organization projects for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. + */ + "teams/list-projects-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-project"][]; + }; + }; + }; + }; + /** + * Check team permissions for a project + * @description Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/check-permissions-for-project-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-project"]; + }; + }; + /** @description Not Found if project is not managed by this team */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team project permissions + * @description Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/add-or-update-project-permissions-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant to the team for this project. Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * @enum {string} + */ + permission?: "read" | "write" | "admin"; + } | null; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Forbidden if the project is not owned by the organization */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + }; + }; + /** + * Remove a project from a team + * @description Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/remove-project-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List team repositories + * @description Lists a team's repositories visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. + */ + "teams/list-repos-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Check team permissions for a repository + * @description Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header. + * + * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. + * + * If the repository is private, you must have at least `read` permission for that repository, and your token must have the `repo` or `admin:org` scope. Otherwise, you will receive a `404 Not Found` response status. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + "teams/check-permissions-for-repo-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Alternative response with repository permissions */ + 200: { + content: { + "application/json": components["schemas"]["team-repository"]; + }; + }; + /** @description Response if team has permission for the repository. This is the response when the repository media type hasn't been provded in the Accept header. */ + 204: { + content: never; + }; + /** @description Not Found if team does not have permission for the repository */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team repository permissions + * @description To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + * + * For more information about the permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + */ + "teams/add-or-update-repo-permissions-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant the team on this repository. We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + * @default push + */ + permission?: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Remove a repository from a team + * @description If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + "teams/remove-repo-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List child teams + * @description Lists the child teams of the team specified by `{team_slug}`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. + */ + "teams/list-child-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description if child teams exist */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + }; + }; + /** + * Enable or disable a security feature for an organization + * @description Enables or disables the specified security feature for all eligible repositories in an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an organization owner or be member of a team with the security manager role to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + "orgs/enable-or-disable-security-product-on-all-org-repos": { + parameters: { + path: { + org: components["parameters"]["org"]; + security_product: components["parameters"]["security-product"]; + enablement: components["parameters"]["org-security-product-enablement"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description CodeQL query suite to be used. If you specify the `query_suite` parameter, the default setup will be configured with this query suite only on all repositories that didn't have default setup already configured. It will not change the query suite on repositories that already have default setup configured. + * If you don't specify any `query_suite` in your request, the preferred query suite of the organization will be applied. + * @enum {string} + */ + query_suite?: "default" | "extended"; + }; + }; + }; + responses: { + /** @description Action started */ + 204: { + content: never; + }; + /** @description The action could not be taken due to an in progress enablement, or a policy is preventing enablement */ + 422: { + content: never; + }; + }; + }; + /** + * Get a project card + * @description Gets information about a project card. + */ + "projects/get-card": { + parameters: { + path: { + card_id: components["parameters"]["card-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-card"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a project card + * @description Deletes a project card + */ + "projects/delete-card": { + parameters: { + path: { + card_id: components["parameters"]["card-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** @description Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Update an existing project card */ + "projects/update-card": { + parameters: { + path: { + card_id: components["parameters"]["card-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The project card's note + * @example Update all gems + */ + note?: string | null; + /** + * @description Whether or not the card is archived + * @example false + */ + archived?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-card"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** Move a project card */ + "projects/move-card": { + parameters: { + path: { + card_id: components["parameters"]["card-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The position of the card in a column. Can be one of: `top`, `bottom`, or `after:` to place after the specified card. + * @example bottom + */ + position: string; + /** + * @description The unique identifier of the column the card should be moved to + * @example 42 + */ + column_id?: number; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": Record; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** @description Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: { + code?: string; + message?: string; + resource?: string; + field?: string; + }[]; + }; + }; + }; + 422: components["responses"]["validation_failed"]; + /** @description Response */ + 503: { + content: { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + errors?: { + code?: string; + message?: string; + }[]; + }; + }; + }; + }; + }; + /** + * Get a project column + * @description Gets information about a project column. + */ + "projects/get-column": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-column"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a project column + * @description Deletes a project column. + */ + "projects/delete-column": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Update an existing project column */ + "projects/update-column": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Name of the project column + * @example Remaining tasks + */ + name: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-column"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List project cards + * @description Lists the project cards in a project. + */ + "projects/list-cards": { + parameters: { + query?: { + /** @description Filters the project cards that are returned by the card's state. */ + archived_state?: "all" | "archived" | "not_archived"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project-card"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Create a project card */ + "projects/create-card": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + requestBody: { + content: { + "application/json": OneOf< + [ + { + /** + * @description The project card's note + * @example Update all gems + */ + note: string | null; + }, + { + /** + * @description The unique identifier of the content associated with the card + * @example 42 + */ + content_id: number; + /** + * @description The piece of content associated with the card + * @example PullRequest + */ + content_type: string; + }, + ] + >; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project-card"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** @description Validation failed */ + 422: { + content: { + "application/json": + | components["schemas"]["validation-error"] + | components["schemas"]["validation-error-simple"]; + }; + }; + /** @description Response */ + 503: { + content: { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + errors?: { + code?: string; + message?: string; + }[]; + }; + }; + }; + }; + }; + /** Move a project column */ + "projects/move-column": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The position of the column in a project. Can be one of: `first`, `last`, or `after:` to place after the specified column. + * @example last + */ + position: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": Record; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get a project + * @description Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/get": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Delete a project + * @description Deletes a project board. Returns a `404 Not Found` status if projects are disabled. + */ + "projects/delete": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Delete Success */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** @description Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Update a project + * @description Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/update": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Name of the project + * @example Week One Sprint + */ + name?: string; + /** + * @description Body of the project + * @example This project represents the sprint of the first week in January + */ + body?: string | null; + /** + * @description State of the project; either 'open' or 'closed' + * @example open + */ + state?: string; + /** + * @description The baseline permission that all organization members have on this project + * @enum {string} + */ + organization_permission?: "read" | "write" | "admin" | "none"; + /** @description Whether or not this project can be seen by everyone. */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** @description Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + }; + /** @description Not Found if the authenticated user does not have access to the project */ + 404: { + content: never; + }; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List project collaborators + * @description Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. + */ + "projects/list-collaborators": { + parameters: { + query?: { + /** @description Filters the collaborators by their affiliation. `outside` means outside collaborators of a project that are not a member of the project's organization. `direct` means collaborators with permissions to a project, regardless of organization membership status. `all` means all collaborators the authenticated user can see. */ + affiliation?: "outside" | "direct" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add project collaborator + * @description Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. + */ + "projects/add-collaborator": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant the collaborator. + * @default write + * @example write + * @enum {string} + */ + permission?: "read" | "write" | "admin"; + } | null; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove user as a collaborator + * @description Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. + */ + "projects/remove-collaborator": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get project permission for a user + * @description Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. + */ + "projects/get-permission-for-user": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-collaborator-permission"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List project columns + * @description Lists the project columns in a project. + */ + "projects/list-columns": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project-column"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Create a project column + * @description Creates a new project column. + */ + "projects/create-column": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Name of the project column + * @example Remaining tasks + */ + name: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project-column"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get rate limit status for the authenticated user + * @description **Note:** Accessing this endpoint does not count against your REST API rate limit. + * + * Some categories of endpoints have custom rate limits that are separate from the rate limit governing the other REST API endpoints. For this reason, the API response categorizes your rate limit. Under `resources`, you'll see objects relating to different categories: + * * The `core` object provides your rate limit status for all non-search-related resources in the REST API. + * * The `search` object provides your rate limit status for the REST API for searching (excluding code searches). For more information, see "[Search](https://docs.github.com/rest/search/search)." + * * The `code_search` object provides your rate limit status for the REST API for searching code. For more information, see "[Search code](https://docs.github.com/rest/search/search#search-code)." + * * The `graphql` object provides your rate limit status for the GraphQL API. For more information, see "[Resource limitations](https://docs.github.com/graphql/overview/resource-limitations#rate-limit)." + * * The `integration_manifest` object provides your rate limit status for the `POST /app-manifests/{code}/conversions` operation. For more information, see "[Creating a GitHub App from a manifest](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app-from-a-manifest#3-you-exchange-the-temporary-code-to-retrieve-the-app-configuration)." + * * The `dependency_snapshots` object provides your rate limit status for submitting snapshots to the dependency graph. For more information, see "[Dependency graph](https://docs.github.com/rest/dependency-graph)." + * * The `code_scanning_upload` object provides your rate limit status for uploading SARIF results to code scanning. For more information, see "[Uploading a SARIF file to GitHub](https://docs.github.com/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github)." + * * The `actions_runner_registration` object provides your rate limit status for registering self-hosted runners in GitHub Actions. For more information, see "[Self-hosted runners](https://docs.github.com/rest/actions/self-hosted-runners)." + * * The `source_import` object is no longer in use for any API endpoints, and it will be removed in the next API version. For more information about API versions, see "[API Versions](https://docs.github.com/rest/overview/api-versions)." + * + * **Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + */ + "rate-limit/get": { + responses: { + /** @description Response */ + 200: { + headers: { + "X-RateLimit-Limit": components["headers"]["x-rate-limit-limit"]; + "X-RateLimit-Remaining": components["headers"]["x-rate-limit-remaining"]; + "X-RateLimit-Reset": components["headers"]["x-rate-limit-reset"]; + }; + content: { + "application/json": components["schemas"]["rate-limit-overview"]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a repository + * @description The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + "repos/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a repository + * @description Deleting a repository requires admin access. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned + * repositories, you will get a `403 Forbidden` response. + * + * OAuth app tokens and personal access tokens (classic) need the `delete_repo` scope to use this endpoint. + */ + "repos/delete": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 307: components["responses"]["temporary_redirect"]; + /** @description If an organization owner has configured the organization to prevent members from deleting organization-owned repositories, a member will get this response: */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a repository + * @description **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/repos/repos#replace-all-repository-topics) endpoint. + */ + "repos/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the repository. */ + name?: string; + /** @description A short description of the repository. */ + description?: string; + /** @description A URL with more information about the repository. */ + homepage?: string; + /** + * @description Either `true` to make the repository private or `false` to make it public. Default: `false`. + * **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://docs.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. + * @default false + */ + private?: boolean; + /** + * @description The visibility of the repository. + * @enum {string} + */ + visibility?: "public" | "private"; + /** + * @description Specify which security and analysis features to enable or disable for the repository. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * For example, to enable GitHub Advanced Security, use this data in the body of the `PATCH` request: + * `{ "security_and_analysis": {"advanced_security": { "status": "enabled" } } }`. + * + * You can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request. + */ + security_and_analysis?: { + /** @description Use the `status` property to enable or disable GitHub Advanced Security for this repository. For more information, see "[About GitHub Advanced Security](/github/getting-started-with-github/learning-about-github/about-github-advanced-security)." */ + advanced_security?: { + /** @description Can be `enabled` or `disabled`. */ + status?: string; + }; + /** @description Use the `status` property to enable or disable secret scanning for this repository. For more information, see "[About secret scanning](/code-security/secret-security/about-secret-scanning)." */ + secret_scanning?: { + /** @description Can be `enabled` or `disabled`. */ + status?: string; + }; + /** @description Use the `status` property to enable or disable secret scanning push protection for this repository. For more information, see "[Protecting pushes with secret scanning](/code-security/secret-scanning/protecting-pushes-with-secret-scanning)." */ + secret_scanning_push_protection?: { + /** @description Can be `enabled` or `disabled`. */ + status?: string; + }; + } | null; + /** + * @description Either `true` to enable issues for this repository or `false` to disable them. + * @default true + */ + has_issues?: boolean; + /** + * @description Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + * @default true + */ + has_projects?: boolean; + /** + * @description Either `true` to enable the wiki for this repository or `false` to disable it. + * @default true + */ + has_wiki?: boolean; + /** + * @description Either `true` to make this repo available as a template repository or `false` to prevent it. + * @default false + */ + is_template?: boolean; + /** @description Updates the default branch for this repository. */ + default_branch?: string; + /** + * @description Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + * @default true + */ + allow_squash_merge?: boolean; + /** + * @description Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge. + * @default false + */ + allow_auto_merge?: boolean; + /** + * @description Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description Either `true` to always allow a pull request head branch that is behind its base branch to be updated even if it is not required to be up to date before merging, or false otherwise. + * @default false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to archive this repository. `false` will unarchive a previously archived repository. + * @default false + */ + archived?: boolean; + /** + * @description Either `true` to allow private forks, or `false` to prevent private forks. + * @default false + */ + allow_forking?: boolean; + /** + * @description Either `true` to require contributors to sign off on web-based commits, or `false` to not require contributors to sign off on web-based commits. + * @default false + */ + web_commit_signoff_required?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 307: components["responses"]["temporary_redirect"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List artifacts for a repository + * @description Lists all artifacts for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-artifacts-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + name?: components["parameters"]["artifact-name"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + artifacts: components["schemas"]["artifact"][]; + }; + }; + }; + }; + }; + /** + * Get an artifact + * @description Gets a specific artifact for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-artifact": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + artifact_id: components["parameters"]["artifact-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["artifact"]; + }; + }; + }; + }; + /** + * Delete an artifact + * @description Deletes an artifact for a workflow run. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-artifact": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + artifact_id: components["parameters"]["artifact-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Download an artifact + * @description Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + * the response header to find the URL for the download. The `:archive_format` must be `zip`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/download-artifact": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + artifact_id: components["parameters"]["artifact-id"]; + archive_format: string; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + Location: components["headers"]["location"]; + }; + content: never; + }; + 410: components["responses"]["gone"]; + }; + }; + /** + * Get GitHub Actions cache usage for a repository + * @description Gets GitHub Actions cache usage for a repository. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-actions-cache-usage": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-cache-usage-by-repository"]; + }; + }; + }; + }; + /** + * List GitHub Actions caches for a repository + * @description Lists the GitHub Actions caches for a repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-actions-cache-list": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + ref?: components["parameters"]["actions-cache-git-ref-full"]; + key?: components["parameters"]["actions-cache-key"]; + sort?: components["parameters"]["actions-cache-list-sort"]; + direction?: components["parameters"]["direction"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["actions-cache-list"]; + }; + }; + }; + }; + /** + * Delete GitHub Actions caches for a repository (using a cache key) + * @description Deletes one or more GitHub Actions caches for a repository, using a complete cache key. By default, all caches that match the provided key are deleted, but you can optionally provide a Git ref to restrict deletions to caches that match both the provided key and the Git ref. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-actions-cache-by-key": { + parameters: { + query: { + key: components["parameters"]["actions-cache-key-required"]; + ref?: components["parameters"]["actions-cache-git-ref-full"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-cache-list"]; + }; + }; + }; + }; + /** + * Delete a GitHub Actions cache for a repository (using a cache ID) + * @description Deletes a GitHub Actions cache for a repository, using a cache ID. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-actions-cache-by-id": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + cache_id: components["parameters"]["cache-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get a job for a workflow run + * @description Gets a specific job in a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-job-for-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + job_id: components["parameters"]["job-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["job"]; + }; + }; + }; + }; + /** + * Download job logs for a workflow run + * @description Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + * for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/download-job-logs-for-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + job_id: components["parameters"]["job-id"]; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/jobs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * Re-run a job from a workflow run + * @description Re-run a job and its dependent jobs in a workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/re-run-job-for-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + job_id: components["parameters"]["job-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Whether to enable debug logging for the re-run. + * @default false + */ + enable_debug_logging?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get the customization template for an OIDC subject claim for a repository + * @description Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-custom-oidc-sub-claim-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Status response */ + 200: { + content: { + "application/json": components["schemas"]["oidc-custom-sub-repo"]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set the customization template for an OIDC subject claim for a repository + * @description Sets the customization template and `opt-in` or `opt-out` flag for an OpenID Connect (OIDC) subject claim for a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-custom-oidc-sub-claim-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored. */ + use_default: boolean; + /** @description Array of unique strings. Each claim key can only contain alphanumeric characters and underscores. */ + include_claim_keys?: string[]; + }; + }; + }; + responses: { + /** @description Empty response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List repository organization secrets + * @description Lists all organization secrets shared with a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-repo-organization-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["actions-secret"][]; + }; + }; + }; + }; + }; + /** + * List repository organization variables + * @description Lists all organization variables shared with a repository. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-repo-organization-variables": { + parameters: { + query?: { + per_page?: components["parameters"]["variables-per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + variables: components["schemas"]["actions-variable"][]; + }; + }; + }; + }; + }; + /** + * Get GitHub Actions permissions for a repository + * @description Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-github-actions-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-repository-permissions"]; + }; + }; + }; + }; + /** + * Set GitHub Actions permissions for a repository + * @description Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-github-actions-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + enabled: components["schemas"]["actions-enabled"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get the level of access for workflows outside of the repository + * @description Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-workflow-access-to-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-workflow-access-to-repository"]; + }; + }; + }; + }; + /** + * Set the level of access for workflows outside of the repository + * @description Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-workflow-access-to-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["actions-workflow-access-to-repository"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get allowed actions and reusable workflows for a repository + * @description Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-allowed-actions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + }; + /** + * Set allowed actions and reusable workflows for a repository + * @description Sets the actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-allowed-actions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get default workflow permissions for a repository + * @description Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, + * as well as if GitHub Actions can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-github-actions-default-workflow-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-get-default-workflow-permissions"]; + }; + }; + }; + }; + /** + * Set default workflow permissions for a repository + * @description Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, and sets if GitHub Actions + * can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-github-actions-default-workflow-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["actions-set-default-workflow-permissions"]; + }; + }; + responses: { + /** @description Success response */ + 204: { + content: never; + }; + /** @description Conflict response when changing a setting is prevented by the owning organization */ + 409: { + content: never; + }; + }; + }; + /** + * List self-hosted runners for a repository + * @description Lists all self-hosted runners configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-self-hosted-runners-for-repo": { + parameters: { + query?: { + /** @description The name of a self-hosted runner. */ + name?: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + runners: components["schemas"]["runner"][]; + }; + }; + }; + }; + }; + /** + * List runner applications for a repository + * @description Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-runner-applications-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["runner-application"][]; + }; + }; + }; + }; + /** + * Create configuration for a just-in-time runner for a repository + * @description Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the repository. + * + * OAuth tokens and personal access tokens (classic) need the`repo` scope to use this endpoint. + */ + "actions/generate-runner-jitconfig-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the new runner. */ + name: string; + /** @description The ID of the runner group to register the runner to. */ + runner_group_id: number; + /** @description The names of the custom labels to add to the runner. **Minimum items**: 1. **Maximum items**: 100. */ + labels: string[]; + /** + * @description The working directory to be used for job execution, relative to the runner install directory. + * @default _work + */ + work_folder?: string; + }; + }; + }; + responses: { + 201: components["responses"]["actions_runner_jitconfig"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Create a registration token for a repository + * @description Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-registration-token-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Create a remove token for a repository + * @description Returns a token that you can pass to the `config` script to remove a self-hosted runner from an repository. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-remove-token-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Get a self-hosted runner for a repository + * @description Gets a specific self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["runner"]; + }; + }; + }; + }; + /** + * Delete a self-hosted runner from a repository + * @description Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-self-hosted-runner-from-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List labels for a self-hosted runner for a repository + * @description Lists all labels for a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-labels-for-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set custom labels for a self-hosted runner for a repository + * @description Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-custom-labels-for-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to set for the runner. You can pass an empty array to remove all custom labels. */ + labels: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Add custom labels to a self-hosted runner for a repository + * @description Adds custom labels to a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/add-custom-labels-to-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to add to the runner. */ + labels: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Remove all custom labels from a self-hosted runner for a repository + * @description Remove all custom labels from a self-hosted runner configured in a + * repository. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/remove-all-custom-labels-from-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels_readonly"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a custom label from a self-hosted runner for a repository + * @description Remove a custom label from a self-hosted runner configured + * in a repository. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/remove-custom-label-from-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + name: components["parameters"]["runner-label-name"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List workflow runs for a repository + * @description Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-workflow-runs-for-repo": { + parameters: { + query?: { + actor?: components["parameters"]["actor"]; + branch?: components["parameters"]["workflow-run-branch"]; + event?: components["parameters"]["event"]; + status?: components["parameters"]["workflow-run-status"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + created?: components["parameters"]["created"]; + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + check_suite_id?: components["parameters"]["workflow-run-check-suite-id"]; + head_sha?: components["parameters"]["workflow-run-head-sha"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + workflow_runs: components["schemas"]["workflow-run"][]; + }; + }; + }; + }; + }; + /** + * Get a workflow run + * @description Gets a specific workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow-run": { + parameters: { + query?: { + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-run"]; + }; + }; + }; + }; + /** + * Delete a workflow run + * @description Deletes a specific workflow run. + * + * Anyone with write access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get the review history for a workflow run + * @description Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-reviews-for-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["environment-approvals"][]; + }; + }; + }; + }; + /** + * Approve a workflow run for a fork pull request + * @description Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see ["Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/approve-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List workflow run artifacts + * @description Lists artifacts for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-workflow-run-artifacts": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + name?: components["parameters"]["artifact-name"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + artifacts: components["schemas"]["artifact"][]; + }; + }; + }; + }; + }; + /** + * Get a workflow run attempt + * @description Gets a specific workflow run attempt. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow-run-attempt": { + parameters: { + query?: { + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + attempt_number: components["parameters"]["attempt-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-run"]; + }; + }; + }; + }; + /** + * List jobs for a workflow run attempt + * @description Lists jobs for a specific workflow run attempt. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-jobs-for-workflow-run-attempt": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + attempt_number: components["parameters"]["attempt-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + jobs: components["schemas"]["job"][]; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Download workflow run attempt logs + * @description Gets a redirect URL to download an archive of log files for a specific workflow run attempt. This link expires after + * 1 minute. Look for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/download-workflow-run-attempt-logs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + attempt_number: components["parameters"]["attempt-number"]; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/runs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * Cancel a workflow run + * @description Cancels a workflow run using its `id`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/cancel-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 409: components["responses"]["conflict"]; + }; + }; + /** + * Review custom deployment protection rules for a workflow run + * @description Approve or reject custom deployment protection rules provided by a GitHub App for a workflow run. For more information, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * **Note:** GitHub Apps can only review their own custom deployment protection rules. + * To approve or reject pending deployments that are waiting for review from a specific person or team, see [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/review-custom-gates-for-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + requestBody: { + content: { + "application/json": + | components["schemas"]["review-custom-gates-comment-required"] + | components["schemas"]["review-custom-gates-state-required"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Force cancel a workflow run + * @description Cancels a workflow run and bypasses conditions that would otherwise cause a workflow execution to continue, such as an `always()` condition on a job. + * You should only use this endpoint to cancel a workflow run when the workflow run is not responding to [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel`](/rest/actions/workflow-runs#cancel-a-workflow-run). + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/force-cancel-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 409: components["responses"]["conflict"]; + }; + }; + /** + * List jobs for a workflow run + * @description Lists jobs for a workflow run. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-jobs-for-workflow-run": { + parameters: { + query?: { + /** @description Filters jobs by their `completed_at` timestamp. `latest` returns jobs from the most recent execution of the workflow run. `all` returns all jobs for a workflow run, including from old executions of the workflow run. */ + filter?: "latest" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + jobs: components["schemas"]["job"][]; + }; + }; + }; + }; + }; + /** + * Download workflow run logs + * @description Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for + * `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/download-workflow-run-logs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/runs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * Delete workflow run logs + * @description Deletes all logs for a workflow run. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-workflow-run-logs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get pending deployments for a workflow run + * @description Get all deployment environments for a workflow run that are waiting for protection rules to pass. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-pending-deployments-for-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pending-deployment"][]; + }; + }; + }; + }; + /** + * Review pending deployments for a workflow run + * @description Approve or reject pending deployments that are waiting on approval by a required reviewer. + * + * Required reviewers with read access to the repository contents and deployments can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/review-pending-deployments-for-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The list of environment ids to approve or reject + * @example [ + * 161171787, + * 161171795 + * ] + */ + environment_ids: number[]; + /** + * @description Whether to approve or reject deployment to the specified environments. + * @example approved + * @enum {string} + */ + state: "approved" | "rejected"; + /** + * @description A comment to accompany the deployment review + * @example Ship it! + */ + comment: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment"][]; + }; + }; + }; + }; + /** + * Re-run a workflow + * @description Re-runs your workflow run using its `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/re-run-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Whether to enable debug logging for the re-run. + * @default false + */ + enable_debug_logging?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Re-run failed jobs from a workflow run + * @description Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/re-run-workflow-failed-jobs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Whether to enable debug logging for the re-run. + * @default false + */ + enable_debug_logging?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Get workflow run usage + * @description Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow-run-usage": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-run-usage"]; + }; + }; + }; + }; + /** + * List repository secrets + * @description Lists all secrets available in a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-repo-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["actions-secret"][]; + }; + }; + }; + }; + }; + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-repo-public-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + }; + /** + * Get a repository secret + * @description Gets a single repository secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-secret"]; + }; + }; + }; + }; + /** + * Create or update a repository secret + * @description Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-or-update-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/actions/secrets#get-a-repository-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete a repository secret + * @description Deletes a secret in a repository using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List repository variables + * @description Lists all repository variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-repo-variables": { + parameters: { + query?: { + per_page?: components["parameters"]["variables-per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + variables: components["schemas"]["actions-variable"][]; + }; + }; + }; + }; + }; + /** + * Create a repository variable + * @description Creates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-repo-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name: string; + /** @description The value of the variable. */ + value: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Get a repository variable + * @description Gets a specific variable in a repository. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-repo-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-variable"]; + }; + }; + }; + }; + /** + * Delete a repository variable + * @description Deletes a repository variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-repo-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a repository variable + * @description Updates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/update-repo-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: components["parameters"]["variable-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name?: string; + /** @description The value of the variable. */ + value?: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List repository workflows + * @description Lists the workflows in a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-repo-workflows": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + workflows: components["schemas"]["workflow"][]; + }; + }; + }; + }; + }; + /** + * Get a workflow + * @description Gets a specific workflow. You can replace `workflow_id` with the workflow + * file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow"]; + }; + }; + }; + }; + /** + * Disable a workflow + * @description Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/disable-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Create a workflow dispatch event + * @description You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-workflow-dispatch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The git reference for the workflow. The reference can be a branch or tag name. */ + ref: string; + /** @description Input keys and values configured in the workflow file. The maximum number of properties is 10. Any default properties configured in the workflow file will be used when `inputs` are omitted. */ + inputs?: { + [key: string]: unknown; + }; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Enable a workflow + * @description Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/enable-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List workflow runs for a workflow + * @description List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-workflow-runs": { + parameters: { + query?: { + actor?: components["parameters"]["actor"]; + branch?: components["parameters"]["workflow-run-branch"]; + event?: components["parameters"]["event"]; + status?: components["parameters"]["workflow-run-status"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + created?: components["parameters"]["created"]; + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + check_suite_id?: components["parameters"]["workflow-run-check-suite-id"]; + head_sha?: components["parameters"]["workflow-run-head-sha"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + workflow_runs: components["schemas"]["workflow-run"][]; + }; + }; + }; + }; + }; + /** + * Get workflow usage + * @description Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow-usage": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-usage"]; + }; + }; + }; + }; + /** + * List repository activities + * @description Lists a detailed history of changes to a repository, such as pushes, merges, force pushes, and branch changes, and associates these changes with commits and users. + * + * For more information about viewing repository activity, + * see "[Viewing activity and data for your repository](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository)." + */ + "repos/list-activities": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + /** + * @description The Git reference for the activities you want to list. + * + * The `ref` for a branch can be formatted either as `refs/heads/BRANCH_NAME` or `BRANCH_NAME`, where `BRANCH_NAME` is the name of your branch. + */ + ref?: string; + /** @description The GitHub username to use to filter by the actor who performed the activity. */ + actor?: string; + /** + * @description The time period to filter by. + * + * For example, `day` will filter for activity that occurred in the past 24 hours, and `week` will filter for activity that occurred in the past 7 days (168 hours). + */ + time_period?: "day" | "week" | "month" | "quarter" | "year"; + /** + * @description The activity type to filter by. + * + * For example, you can choose to filter by "force_push", to see all force pushes to the repository. + */ + activity_type?: + | "push" + | "force_push" + | "branch_creation" + | "branch_deletion" + | "pr_merge" + | "merge_queue_merge"; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["activity"][]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List assignees + * @description Lists the [available assignees](https://docs.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. + */ + "issues/list-assignees": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if a user can be assigned + * @description Checks if a user has permission to be assigned to an issue in this repository. + * + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + "issues/check-user-can-be-assigned": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + assignee: string; + }; + }; + responses: { + /** @description If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. */ + 204: { + content: never; + }; + /** @description Otherwise a `404` status code is returned. */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Get all autolinks of a repository + * @description Gets all autolinks that are configured for a repository. + * + * Information about autolinks are only available to repository administrators. + */ + "repos/list-autolinks": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["autolink"][]; + }; + }; + }; + }; + /** + * Create an autolink reference for a repository + * @description Users with admin access to the repository can create an autolink. + */ + "repos/create-autolink": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description This prefix appended by certain characters will generate a link any time it is found in an issue, pull request, or commit. */ + key_prefix: string; + /** @description The URL must contain `` for the reference number. `` matches different characters depending on the value of `is_alphanumeric`. */ + url_template: string; + /** + * @description Whether this autolink reference matches alphanumeric characters. If true, the `` parameter of the `url_template` matches alphanumeric characters `A-Z` (case insensitive), `0-9`, and `-`. If false, this autolink reference only matches numeric characters. + * @default true + */ + is_alphanumeric?: boolean; + }; + }; + }; + responses: { + /** @description response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/autolinks/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["autolink"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an autolink reference of a repository + * @description This returns a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + "repos/get-autolink": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + autolink_id: components["parameters"]["autolink-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["autolink"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an autolink reference from a repository + * @description This deletes a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + "repos/delete-autolink": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + autolink_id: components["parameters"]["autolink-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if automated security fixes are enabled for a repository + * @description Shows whether automated security fixes are enabled, disabled or paused for a repository. The authenticated user must have admin read access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + "repos/check-automated-security-fixes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response if dependabot is enabled */ + 200: { + content: { + "application/json": components["schemas"]["check-automated-security-fixes"]; + }; + }; + /** @description Not Found if dependabot is not enabled for the repository */ + 404: { + content: never; + }; + }; + }; + /** + * Enable automated security fixes + * @description Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + "repos/enable-automated-security-fixes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Disable automated security fixes + * @description Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + "repos/disable-automated-security-fixes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** List branches */ + "repos/list-branches": { + parameters: { + query?: { + /** @description Setting to `true` returns only protected branches. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches. */ + protected?: boolean; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["short-branch"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Get a branch */ + "repos/get-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-with-protection"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-protection"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * + * **Note**: The list of users, apps, and teams in total is limited to 100 items. + */ + "repos/update-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Require status checks to pass before merging. Set to `null` to disable. */ + required_status_checks: { + /** @description Require branches to be up to date before merging. */ + strict: boolean; + /** + * @deprecated + * @description **Deprecated**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control. + */ + contexts: string[]; + /** @description The list of status checks to require in order to merge into this branch. */ + checks?: { + /** @description The name of the required check */ + context: string; + /** @description The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status. */ + app_id?: number; + }[]; + } | null; + /** @description Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable. */ + enforce_admins: boolean | null; + /** @description Require at least one approving review on a pull request, before merging. Set to `null` to disable. */ + required_pull_request_reviews: { + /** @description Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. */ + dismissal_restrictions?: { + /** @description The list of user `login`s with dismissal access */ + users?: string[]; + /** @description The list of team `slug`s with dismissal access */ + teams?: string[]; + /** @description The list of app `slug`s with dismissal access */ + apps?: string[]; + }; + /** @description Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. */ + dismiss_stale_reviews?: boolean; + /** @description Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) review them. */ + require_code_owner_reviews?: boolean; + /** @description Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers. */ + required_approving_review_count?: number; + /** + * @description Whether the most recent push must be approved by someone other than the person who pushed it. Default: `false`. + * @default false + */ + require_last_push_approval?: boolean; + /** @description Allow specific users, teams, or apps to bypass pull request requirements. */ + bypass_pull_request_allowances?: { + /** @description The list of user `login`s allowed to bypass pull request requirements. */ + users?: string[]; + /** @description The list of team `slug`s allowed to bypass pull request requirements. */ + teams?: string[]; + /** @description The list of app `slug`s allowed to bypass pull request requirements. */ + apps?: string[]; + }; + } | null; + /** @description Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable. */ + restrictions: { + /** @description The list of user `login`s with push access */ + users: string[]; + /** @description The list of team `slug`s with push access */ + teams: string[]; + /** @description The list of app `slug`s with push access */ + apps?: string[]; + } | null; + /** @description Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see "[Requiring a linear commit history](https://docs.github.com/github/administering-a-repository/requiring-a-linear-commit-history)" in the GitHub Help documentation. */ + required_linear_history?: boolean; + /** @description Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation." */ + allow_force_pushes?: boolean | null; + /** @description Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation. */ + allow_deletions?: boolean; + /** @description If set to `true`, the `restrictions` branch protection settings which limits who can push will also block pushes which create new branches, unless the push is initiated by a user, team, or app which has the ability to push. Set to `true` to restrict new branch creation. Default: `false`. */ + block_creations?: boolean; + /** @description Requires all conversations on code to be resolved before a pull request can be merged into a branch that matches this rule. Set to `false` to disable. Default: `false`. */ + required_conversation_resolution?: boolean; + /** + * @description Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. Default: `false`. + * @default false + */ + lock_branch?: boolean; + /** + * @description Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. Default: `false`. + * @default false + */ + allow_fork_syncing?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Delete branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/delete-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-admin-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + }; + }; + /** + * Set admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/set-admin-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + }; + }; + /** + * Delete admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/delete-admin-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-pull-request-review-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-pull-request-review"]; + }; + }; + }; + }; + /** + * Delete pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/delete-pull-request-review-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + */ + "repos/update-pull-request-review-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. */ + dismissal_restrictions?: { + /** @description The list of user `login`s with dismissal access */ + users?: string[]; + /** @description The list of team `slug`s with dismissal access */ + teams?: string[]; + /** @description The list of app `slug`s with dismissal access */ + apps?: string[]; + }; + /** @description Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. */ + dismiss_stale_reviews?: boolean; + /** @description Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) have reviewed. */ + require_code_owner_reviews?: boolean; + /** @description Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers. */ + required_approving_review_count?: number; + /** + * @description Whether the most recent push must be approved by someone other than the person who pushed it. Default: `false` + * @default false + */ + require_last_push_approval?: boolean; + /** @description Allow specific users, teams, or apps to bypass pull request requirements. */ + bypass_pull_request_allowances?: { + /** @description The list of user `login`s allowed to bypass pull request requirements. */ + users?: string[]; + /** @description The list of team `slug`s allowed to bypass pull request requirements. */ + teams?: string[]; + /** @description The list of app `slug`s allowed to bypass pull request requirements. */ + apps?: string[]; + }; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-pull-request-review"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://docs.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * + * **Note**: You must enable branch protection to require signed commits. + */ + "repos/get-commit-signature-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + */ + "repos/create-commit-signature-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + */ + "repos/delete-commit-signature-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get status checks protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-status-checks-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["status-check-policy"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove status check protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/remove-status-check-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update status check protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/update-status-check-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Require branches to be up to date before merging. */ + strict?: boolean; + /** + * @deprecated + * @description **Deprecated**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control. + */ + contexts?: string[]; + /** @description The list of status checks to require in order to merge into this branch. */ + checks?: { + /** @description The name of the required check */ + context: string; + /** @description The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status. */ + app_id?: number; + }[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["status-check-policy"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-all-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/set-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the status checks */ + contexts: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/add-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the status checks */ + contexts: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/remove-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the status checks */ + contexts: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists who has access to this protected branch. + * + * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + */ + "repos/get-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-restriction-policy"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Disables the ability to restrict who can push to this branch. + */ + "repos/delete-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get apps with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + "repos/get-apps-with-access-to-protected-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + "repos/set-app-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The GitHub Apps that have push access to this branch. Use the slugified version of the app name. **Note**: The list of users, apps, and teams in total is limited to 100 items. */ + apps: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified apps push access for this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + "repos/add-app-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The GitHub Apps that have push access to this branch. Use the slugified version of the app name. **Note**: The list of users, apps, and teams in total is limited to 100 items. */ + apps: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of an app to push to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + "repos/remove-app-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The GitHub Apps that have push access to this branch. Use the slugified version of the app name. **Note**: The list of users, apps, and teams in total is limited to 100 items. */ + apps: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get teams with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. The list includes child teams. + */ + "repos/get-teams-with-access-to-protected-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + */ + "repos/set-team-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The slug values for teams */ + teams: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified teams push access for this branch. You can also give push access to child teams. + */ + "repos/add-team-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The slug values for teams */ + teams: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + */ + "repos/remove-team-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The slug values for teams */ + teams: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get users with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + */ + "repos/get-users-with-access-to-protected-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/set-user-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The username for users */ + users: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified people push access for this branch. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/add-user-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The username for users */ + users: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a user to push to this branch. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/remove-user-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The username for users */ + users: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Rename a branch + * @description Renames a branch in a repository. + * + * **Note:** Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)". + * + * The authenticated user must have push access to the branch. If the branch is the default branch, the authenticated user must also have admin or owner permissions. + * + * In order to rename the default branch, fine-grained access tokens also need the `administration:write` repository permission. + */ + "repos/rename-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The new name of the branch. */ + new_name: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["branch-with-protection"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a check run + * @description **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + * + * In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. + */ + "checks/create": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the check. For example, "code-coverage". */ + name: string; + /** @description The SHA of the commit. */ + head_sha: string; + /** @description The URL of the integrator's site that has the full details of the check. If the integrator does not provide this, then the homepage of the GitHub app is used. */ + details_url?: string; + /** @description A reference for the run on the integrator's system. */ + external_id?: string; + /** + * @description The current status. + * @default queued + * @enum {string} + */ + status?: "queued" | "in_progress" | "completed"; + /** + * Format: date-time + * @description The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * @description **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. You cannot change a check run conclusion to `stale`, only GitHub can set this. + * @enum {string} + */ + conclusion?: + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "success" + | "skipped" + | "stale" + | "timed_out"; + /** + * Format: date-time + * @description The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** @description Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. */ + output?: { + /** @description The title of the check run. */ + title: string; + /** @description The summary of the check run. This parameter supports Markdown. **Maximum length**: 65535 characters. */ + summary: string; + /** @description The details of the check run. This parameter supports Markdown. **Maximum length**: 65535 characters. */ + text?: string; + /** @description Adds information from your analysis to specific lines of code. Annotations are visible on GitHub in the **Checks** and **Files changed** tab of the pull request. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/reference/checks#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. GitHub Actions are limited to 10 warning annotations and 10 error annotations per step. For details about how you can view annotations on GitHub, see "[About status checks](https://docs.github.com/articles/about-status-checks#checks)". */ + annotations?: { + /** @description The path of the file to add an annotation to. For example, `assets/css/main.css`. */ + path: string; + /** @description The start line of the annotation. Line numbers start at 1. */ + start_line: number; + /** @description The end line of the annotation. */ + end_line: number; + /** @description The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. Column numbers start at 1. */ + start_column?: number; + /** @description The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. */ + end_column?: number; + /** + * @description The level of the annotation. + * @enum {string} + */ + annotation_level: "notice" | "warning" | "failure"; + /** @description A short description of the feedback for these lines of code. The maximum size is 64 KB. */ + message: string; + /** @description The title that represents the annotation. The maximum size is 255 characters. */ + title?: string; + /** @description Details about this annotation. The maximum size is 64 KB. */ + raw_details?: string; + }[]; + /** @description Adds images to the output displayed in the GitHub pull request UI. */ + images?: { + /** @description The alternative text for the image. */ + alt: string; + /** @description The full URL of the image. */ + image_url: string; + /** @description A short image description. */ + caption?: string; + }[]; + }; + /** @description Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions)." */ + actions?: { + /** @description The text to be displayed on a button in the web UI. The maximum size is 20 characters. */ + label: string; + /** @description A short explanation of what this action would do. The maximum size is 40 characters. */ + description: string; + /** @description A reference for the action on the integrator's system. The maximum size is 20 characters. */ + identifier: string; + }[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + }; + /** + * Get a check run + * @description Gets a single check run using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + }; + /** + * Update a check run + * @description Updates a check run for a specific commit in a repository. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + "checks/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the check. For example, "code-coverage". */ + name?: string; + /** @description The URL of the integrator's site that has the full details of the check. */ + details_url?: string; + /** @description A reference for the run on the integrator's system. */ + external_id?: string; + /** + * Format: date-time + * @description This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * @description The current status. + * @enum {string} + */ + status?: "queued" | "in_progress" | "completed"; + /** + * @description **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. You cannot change a check run conclusion to `stale`, only GitHub can set this. + * @enum {string} + */ + conclusion?: + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "success" + | "skipped" + | "stale" + | "timed_out"; + /** + * Format: date-time + * @description The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** @description Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. */ + output?: { + /** @description **Required**. */ + title?: string; + /** @description Can contain Markdown. */ + summary: string; + /** @description Can contain Markdown. */ + text?: string; + /** @description Adds information from your analysis to specific lines of code. Annotations are visible in GitHub's pull request UI. Annotations are visible in GitHub's pull request UI. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/checks/runs#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. GitHub Actions are limited to 10 warning annotations and 10 error annotations per step. For details about annotations in the UI, see "[About status checks](https://docs.github.com/articles/about-status-checks#checks)". */ + annotations?: { + /** @description The path of the file to add an annotation to. For example, `assets/css/main.css`. */ + path: string; + /** @description The start line of the annotation. Line numbers start at 1. */ + start_line: number; + /** @description The end line of the annotation. */ + end_line: number; + /** @description The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. Column numbers start at 1. */ + start_column?: number; + /** @description The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. */ + end_column?: number; + /** + * @description The level of the annotation. + * @enum {string} + */ + annotation_level: "notice" | "warning" | "failure"; + /** @description A short description of the feedback for these lines of code. The maximum size is 64 KB. */ + message: string; + /** @description The title that represents the annotation. The maximum size is 255 characters. */ + title?: string; + /** @description Details about this annotation. The maximum size is 64 KB. */ + raw_details?: string; + }[]; + /** @description Adds images to the output displayed in the GitHub pull request UI. */ + images?: { + /** @description The alternative text for the image. */ + alt: string; + /** @description The full URL of the image. */ + image_url: string; + /** @description A short image description. */ + caption?: string; + }[]; + }; + /** @description Possible further actions the integrator can perform, which a user may trigger. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://docs.github.com/rest/guides/using-the-rest-api-to-interact-with-checks#check-runs-and-requested-actions)." */ + actions?: { + /** @description The text to be displayed on a button in the web UI. The maximum size is 20 characters. */ + label: string; + /** @description A short explanation of what this action would do. The maximum size is 40 characters. */ + description: string; + /** @description A reference for the action on the integrator's system. The maximum size is 20 characters. */ + identifier: string; + }[]; + } & ( + | { + /** @enum {unknown} */ + status?: "completed"; + [key: string]: unknown; + } + | { + /** @enum {unknown} */ + status?: "queued" | "in_progress"; + [key: string]: unknown; + } + ); + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + }; + /** + * List check run annotations + * @description Lists annotations for a check run using the annotation `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/list-annotations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["check-annotation"][]; + }; + }; + }; + }; + /** + * Rerequest a check run + * @description Triggers GitHub to rerequest an existing check run, without pushing new code to a repository. This endpoint will trigger the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) event with the action `rerequested`. When a check run is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * For more information about how to re-run GitHub Actions jobs, see "[Re-run a job from a workflow run](https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run)". + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + "checks/rerequest-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Forbidden if the check run is not rerequestable or doesn't belong to the authenticated GitHub App */ + 403: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + 404: components["responses"]["not_found"]; + /** @description Validation error if the check run is not rerequestable */ + 422: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Create a check suite + * @description Creates a check suite manually. By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/checks/runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites)". + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + "checks/create-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The sha of the head commit. */ + head_sha: string; + }; + }; + }; + responses: { + /** @description Response when the suite already exists */ + 200: { + content: { + "application/json": components["schemas"]["check-suite"]; + }; + }; + /** @description Response when the suite was created */ + 201: { + content: { + "application/json": components["schemas"]["check-suite"]; + }; + }; + }; + }; + /** + * Update repository preferences for check suites + * @description Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/checks/suites#create-a-check-suite). + * You must have admin permissions in the repository to set preferences for check suites. + */ + "checks/set-suites-preferences": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default. */ + auto_trigger_checks?: { + /** @description The `id` of the GitHub App. */ + app_id: number; + /** + * @description Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository, or `false` to disable them. + * @default true + */ + setting: boolean; + }[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["check-suite-preference"]; + }; + }; + }; + }; + /** + * Get a check suite + * @description Gets a single check suite using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/get-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_suite_id: components["parameters"]["check-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["check-suite"]; + }; + }; + }; + }; + /** + * List check runs in a check suite + * @description Lists check runs for a check suite using its `id`. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/list-for-suite": { + parameters: { + query?: { + check_name?: components["parameters"]["check-name"]; + status?: components["parameters"]["status"]; + /** @description Filters check runs by their `completed_at` timestamp. `latest` returns the most recent check runs. */ + filter?: "latest" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_suite_id: components["parameters"]["check-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + check_runs: components["schemas"]["check-run"][]; + }; + }; + }; + }; + }; + /** + * Rerequest a check suite + * @description Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + "checks/rerequest-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_suite_id: components["parameters"]["check-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * List code scanning alerts for a repository + * @description Lists all open code scanning alerts for the default branch (usually `main` + * or `master`). You must use an access token with the `security_events` scope to use + * this endpoint with private repos, the `public_repo` scope also grants permission to read + * security events on public repos only. GitHub Apps must have the `security_events` read + * permission to use this endpoint. + * + * The response includes a `most_recent_instance` object. + * This provides details of the most recent instance of this alert + * for the default branch or for the specified Git reference + * (if you used `ref` in the request). + */ + "code-scanning/list-alerts-for-repo": { + parameters: { + query?: { + tool_name?: components["parameters"]["tool-name"]; + tool_guid?: components["parameters"]["tool-guid"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + ref?: components["parameters"]["git-ref"]; + direction?: components["parameters"]["direction"]; + /** @description The property by which to sort the results. . `number` is deprecated - we recommend that you use `created` instead. */ + sort?: "created" | "number" | "updated"; + /** @description Set to `open`, `closed, `fixed`, or `dismissed` to list code scanning alerts in a specific state. */ + state?: components["schemas"]["code-scanning-alert-state"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert-items"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a code scanning alert + * @description Gets a single code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Update a code scanning alert + * @description Updates the status of a single code scanning alert. + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/update-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + state: components["schemas"]["code-scanning-alert-set-state"]; + dismissed_reason?: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List instances of a code scanning alert + * @description Lists all instances of the specified code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/list-alert-instances": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + ref?: components["parameters"]["git-ref"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert-instance"][]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List code scanning analyses for a repository + * @description Lists the details of all code scanning analyses for a repository, + * starting with the most recent. + * The response is paginated and you can use the `page` and `per_page` parameters + * to list the analyses you're interested in. + * By default 30 analyses are listed per page. + * + * The `rules_count` field in the response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * **Deprecation notice**: + * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/list-recent-analyses": { + parameters: { + query?: { + tool_name?: components["parameters"]["tool-name"]; + tool_guid?: components["parameters"]["tool-guid"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + /** @description The Git reference for the analyses you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. */ + ref?: components["schemas"]["code-scanning-ref"]; + /** @description Filter analyses belonging to the same SARIF upload. */ + sarif_id?: components["schemas"]["code-scanning-analysis-sarif-id"]; + direction?: components["parameters"]["direction"]; + /** @description The property by which to sort the results. */ + sort?: "created"; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-analysis"][]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a code scanning analysis for a repository + * @description Gets a specified code scanning analysis for a repository. + * + * The default JSON response contains fields that describe the analysis. + * This includes the Git reference and commit SHA to which the analysis relates, + * the datetime of the analysis, the name of the code scanning tool, + * and the number of alerts. + * + * The `rules_count` field in the default response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/sarif+json`**: Instead of returning a summary of the analysis, this endpoint returns a subset of the analysis data that was uploaded. The data is formatted as [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). It also returns additional data such as the `github/alertNumber` and `github/alertUrl` properties. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-analysis": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation. */ + analysis_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-analysis"]; + "application/json+sarif": { + [key: string]: unknown; + }; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Delete a code scanning analysis from a repository + * @description Deletes a specified code scanning analysis from a repository. + * + * You can delete one analysis at a time. + * To delete a series of analyses, start with the most recent analysis and work backwards. + * Conceptually, the process is similar to the undo function in a text editor. + * + * When you list the analyses for a repository, + * one or more will be identified as deletable in the response: + * + * ``` + * "deletable": true + * ``` + * + * An analysis is deletable when it's the most recent in a set of analyses. + * Typically, a repository will have multiple sets of analyses + * for each enabled code scanning tool, + * where a set is determined by a unique combination of analysis values: + * + * * `ref` + * * `tool` + * * `category` + * + * If you attempt to delete an analysis that is not the most recent in a set, + * you'll get a 400 response with the message: + * + * ``` + * Analysis specified is not deletable. + * ``` + * + * The response from a successful `DELETE` operation provides you with + * two alternative URLs for deleting the next analysis in the set: + * `next_analysis_url` and `confirm_delete_url`. + * Use the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis + * in a set. This is a useful option if you want to preserve at least one analysis + * for the specified tool in your repository. + * Use the `confirm_delete_url` URL if you are content to remove all analyses for a tool. + * When you delete the last analysis in a set, the value of `next_analysis_url` and `confirm_delete_url` + * in the 200 response is `null`. + * + * As an example of the deletion process, + * let's imagine that you added a workflow that configured a particular code scanning tool + * to analyze the code in a repository. This tool has added 15 analyses: + * 10 on the default branch, and another 5 on a topic branch. + * You therefore have two separate sets of analyses for this tool. + * You've now decided that you want to remove all of the analyses for the tool. + * To do this you must make 15 separate deletion requests. + * To start, you must find an analysis that's identified as deletable. + * Each set of analyses always has one that's identified as deletable. + * Having found the deletable analysis for one of the two sets, + * delete this analysis and then continue deleting the next analysis in the set until they're all deleted. + * Then repeat the process for the second set. + * The procedure therefore consists of a nested loop: + * + * **Outer loop**: + * * List the analyses for the repository, filtered by tool. + * * Parse this list to find a deletable analysis. If found: + * + * **Inner loop**: + * * Delete the identified analysis. + * * Parse the response for the value of `confirm_delete_url` and, if found, use this in the next iteration. + * + * The above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/delete-analysis": { + parameters: { + query?: { + /** @description Allow deletion if the specified analysis is the last in a set. If you attempt to delete the final analysis in a set without setting this parameter to `true`, you'll get a 400 response with the message: `Analysis is last of its type and deletion may result in the loss of historical alert data. Please specify confirm_delete.` */ + confirm_delete?: string | null; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation. */ + analysis_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-analysis-deletion"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List CodeQL databases for a repository + * @description Lists the CodeQL databases that are available in a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/list-codeql-databases": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-codeql-database"][]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a CodeQL database for a repository + * @description Gets a CodeQL database for a language in a repository. + * + * By default this endpoint returns JSON metadata about the CodeQL database. To + * download the CodeQL database binary content, set the `Accept` header of the request + * to [`application/zip`](https://docs.github.com/rest/overview/media-types), and make sure + * your HTTP client is configured to follow redirects or use the `Location` header + * to make a second request to get the redirect URL. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-codeql-database": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The language of the CodeQL database. */ + language: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-codeql-database"]; + }; + }; + 302: components["responses"]["found"]; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a code scanning default setup configuration + * @description Gets a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-default-setup": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-default-setup"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Update a code scanning default setup configuration + * @description Updates a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/update-default-setup": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["code-scanning-default-setup-update"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["code-scanning-default-setup-update-response"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["code_scanning_conflict"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Upload an analysis as SARIF data + * @description Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. For troubleshooting information, see "[Troubleshooting SARIF uploads](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif)." + * + * There are two places where you can upload code scanning results. + * - If you upload to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)." + * - If you upload to a branch, for example `--ref refs/heads/my-branch`, then the results appear in the **Security** tab for your repository. For more information, see "[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)." + * + * You must compress the SARIF-formatted analysis data that you want to upload, using `gzip`, and then encode it as a Base64 format string. For example: + * + * ``` + * gzip -c analysis-data.sarif | base64 -w0 + * ``` + * + * SARIF upload supports a maximum number of entries per the following data objects, and an analysis will be rejected if any of these objects is above its maximum value. For some objects, there are additional values over which the entries will be ignored while keeping the most important entries whenever applicable. + * To get the most out of your analysis when it includes data above the supported limits, try to optimize the analysis configuration. For example, for the CodeQL tool, identify and remove the most noisy queries. For more information, see "[SARIF results exceed one or more limits](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif/results-exceed-limit)." + * + * + * | **SARIF data** | **Maximum values** | **Additional limits** | + * |----------------------------------|:------------------:|----------------------------------------------------------------------------------| + * | Runs per file | 20 | | + * | Results per run | 25,000 | Only the top 5,000 results will be included, prioritized by severity. | + * | Rules per run | 25,000 | | + * | Tool extensions per run | 100 | | + * | Thread Flow Locations per result | 10,000 | Only the top 1,000 Thread Flow Locations will be included, using prioritization. | + * | Location per result | 1,000 | Only 100 locations will be included. | + * | Tags per rule | 20 | Only 10 tags will be included. | + * + * + * The `202 Accepted` response includes an `id` value. + * You can use this ID to check the status of the upload by using it in the `/sarifs/{sarif_id}` endpoint. + * For more information, see "[Get information about a SARIF upload](/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/upload-sarif": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + commit_sha: components["schemas"]["code-scanning-analysis-commit-sha"]; + ref: components["schemas"]["code-scanning-ref-full"]; + sarif: components["schemas"]["code-scanning-analysis-sarif-file"]; + /** + * Format: uri + * @description The base directory used in the analysis, as it appears in the SARIF file. + * This property is used to convert file paths from absolute to relative, so that alerts can be mapped to their correct location in the repository. + * @example file:///github/workspace/ + */ + checkout_uri?: string; + /** + * Format: date-time + * @description The time that the analysis run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** @description The name of the tool used to generate the code scanning analysis. If this parameter is not used, the tool name defaults to "API". If the uploaded SARIF contains a tool GUID, this will be available for filtering using the `tool_guid` parameter of operations such as `GET /repos/{owner}/{repo}/code-scanning/alerts`. */ + tool_name?: string; + /** + * @description Whether the SARIF file will be validated according to the code scanning specifications. + * This parameter is intended to help integrators ensure that the uploaded SARIF files are correctly rendered by code scanning. + */ + validate?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["code-scanning-sarifs-receipt"]; + }; + }; + /** @description Bad Request if the sarif field is invalid */ + 400: { + content: never; + }; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + /** @description Payload Too Large if the sarif field is too large */ + 413: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get information about a SARIF upload + * @description Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see "[Get a code scanning analysis for a repository](/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository)." + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-sarif": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The SARIF ID obtained after uploading. */ + sarif_id: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-sarifs-status"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + /** @description Not Found if the sarif id does not match any upload */ + 404: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List CODEOWNERS errors + * @description List any syntax errors that are detected in the CODEOWNERS + * file. + * + * For more information about the correct CODEOWNERS syntax, + * see "[About code owners](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)." + */ + "repos/codeowners-errors": { + parameters: { + query?: { + /** @description A branch, tag or commit name used to determine which version of the CODEOWNERS file to use. Default: the repository's default branch (e.g. `main`) */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codeowners-errors"]; + }; + }; + /** @description Resource not found */ + 404: { + content: never; + }; + }; + }; + /** + * List codespaces in a repository for the authenticated user + * @description Lists the codespaces associated to a specified repository and the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/list-in-repository-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create a codespace in a repository + * @description Creates a codespace owned by the authenticated user in the specified repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/create-with-repo-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Git ref (typically a branch name) for this codespace */ + ref?: string; + /** @description The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided. */ + location?: string; + /** + * @description The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is being deprecated. + * @enum {string} + */ + geo?: "EuropeWest" | "SoutheastAsia" | "UsEast" | "UsWest"; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Whether to authorize requested permissions from devcontainer.json */ + multi_repo_permissions_opt_out?: boolean; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). */ + retention_period_minutes?: number; + } | null; + }; + }; + responses: { + /** @description Response when the codespace was successfully created */ + 201: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + /** @description Response when the codespace creation partially failed but is being retried in the background */ + 202: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List devcontainer configurations in a repository for the authenticated user + * @description Lists the devcontainer.json files associated with a specified repository and the authenticated user. These files + * specify launchpoint configurations for codespaces created within the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/list-devcontainers-in-repository-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + devcontainers: { + path: string; + name?: string; + display_name?: string; + }[]; + }; + }; + }; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List available machine types for a repository + * @description List the machine types available for a given repository based on its configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/repo-machines-for-authenticated-user": { + parameters: { + query?: { + /** @description The location to check for available machines. Assigned by IP if not provided. */ + location?: string; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description The branch or commit to check for prebuild availability and devcontainer restrictions. */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + machines: components["schemas"]["codespace-machine"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get default attributes for a codespace + * @description Gets the default attributes for codespaces created by the user with the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/pre-flight-with-repo-for-authenticated-user": { + parameters: { + query?: { + /** @description The branch or commit to check for a default devcontainer path. If not specified, the default branch will be checked. */ + ref?: string; + /** @description An alternative IP for default location auto-detection, such as when proxying a request. */ + client_ip?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response when a user is able to create codespaces from the repository. */ + 200: { + content: { + "application/json": { + billable_owner?: components["schemas"]["simple-user"]; + defaults?: { + location: string; + devcontainer_path: string | null; + }; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if permissions defined by a devcontainer have been accepted by the authenticated user + * @description Checks whether the permissions defined by a given devcontainer configuration have been accepted by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/check-permissions-for-devcontainer": { + parameters: { + query: { + /** @description The git reference that points to the location of the devcontainer configuration to use for the permission check. The value of `ref` will typically be a branch name (`heads/BRANCH_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. */ + ref: string; + /** @description Path to the devcontainer.json configuration to use for the permission check. */ + devcontainer_path: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response when the permission check is successful */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-permissions-check-for-devcontainer"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List repository secrets + * @description Lists all development environment secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/list-repo-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["repo-codespaces-secret"][]; + }; + }; + }; + }; + }; + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/get-repo-public-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-public-key"]; + }; + }; + }; + }; + /** + * Get a repository secret + * @description Gets a single repository development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/get-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repo-codespaces-secret"]; + }; + }; + }; + }; + /** + * Create or update a repository secret + * @description Creates or updates a repository development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/create-or-update-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete a repository secret + * @description Deletes a development environment secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/delete-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List repository collaborators + * @description For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * Organization members with write, maintain, or admin privileges on the organization-owned repository can use this endpoint. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + "repos/list-collaborators": { + parameters: { + query?: { + /** @description Filter collaborators returned by their affiliation. `outside` means all outside collaborators of an organization-owned repository. `direct` means all collaborators with permissions to an organization-owned repository, regardless of organization membership status. `all` means all collaborators the authenticated user can see. */ + affiliation?: "outside" | "direct" | "all"; + /** @description Filter collaborators by the permissions they have on the repository. If not specified, all collaborators will be returned. */ + permission?: "pull" | "triage" | "push" | "maintain" | "admin"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["collaborator"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if a user is a repository collaborator + * @description For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + "repos/check-collaborator": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response if user is a collaborator */ + 204: { + content: never; + }; + /** @description Not Found if user is not a collaborator */ + 404: { + content: never; + }; + }; + }; + /** + * Add a repository collaborator + * @description This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Adding an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + * + * For more information on permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with: + * + * ``` + * Cannot assign {member} permission of {role name} + * ``` + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [API](https://docs.github.com/rest/collaborators/invitations). + * + * **Updating an existing collaborator's permission level** + * + * The endpoint can also be used to change the permissions of an existing collaborator without first removing and re-adding the collaborator. To change the permissions, use the same endpoint and pass a different `permission` parameter. The response will be a `204`, with no other indication that the permission level changed. + * + * **Rate limits** + * + * You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + */ + "repos/add-collaborator": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant the collaborator. **Only valid on organization-owned repositories.** We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any. + * @default push + */ + permission?: string; + }; + }; + }; + responses: { + /** @description Response when a new invitation is created */ + 201: { + content: { + "application/json": components["schemas"]["repository-invitation"]; + }; + }; + /** + * @description Response when: + * - an existing collaborator is added as a collaborator + * - an organization member is added as an individual collaborator + * - an existing team member (whose team is also a repository collaborator) is added as an individual collaborator + */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove a repository collaborator + * @description Removes a collaborator from a repository. + * + * To use this endpoint, the authenticated user must either be an administrator of the repository or target themselves for removal. + * + * This endpoint also: + * - Cancels any outstanding invitations + * - Unasigns the user from any issues + * - Removes access to organization projects if the user is not an organization member and is not a collaborator on any other organization repositories. + * - Unstars the repository + * - Updates access permissions to packages + * + * Removing a user as a collaborator has the following effects on forks: + * - If the user had access to a fork through their membership to this repository, the user will also be removed from the fork. + * - If the user had their own fork of the repository, the fork will be deleted. + * - If the user still has read access to the repository, open pull requests by this user from a fork will be denied. + * + * **Note**: A user can still have access to the repository through organization permissions like base repository permissions. + * + * Although the API responds immediately, the additional permission updates might take some extra time to complete in the background. + * + * For more information on fork permissions, see "[About permissions and visibility of forks](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks)". + */ + "repos/remove-collaborator": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description No Content when collaborator was removed from the repository. */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get repository permissions for a user + * @description Checks the repository permission of a collaborator. The possible repository + * permissions are `admin`, `write`, `read`, and `none`. + * + * *Note*: The `permission` attribute provides the legacy base roles of `admin`, `write`, `read`, and `none`, where the + * `maintain` role is mapped to `write` and the `triage` role is mapped to `read`. To determine the role assigned to the + * collaborator, see the `role_name` attribute, which will provide the full role name, including custom roles. The + * `permissions` hash can also be used to determine which base level of access the collaborator has to the repository. + */ + "repos/get-collaborator-permission-level": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description if user has admin permissions */ + 200: { + content: { + "application/json": components["schemas"]["repository-collaborator-permission"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List commit comments for a repository + * @description Lists the commit comments for a specified repository. Comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/list-commit-comments-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["commit-comment"][]; + }; + }; + }; + }; + /** + * Get a commit comment + * @description Gets a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/get-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a commit comment */ + "repos/delete-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a commit comment + * @description Updates the contents of a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/update-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List reactions for a commit comment + * @description List the reactions to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + "reactions/list-for-commit-comment": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a commit comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create reaction for a commit comment + * @description Create a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). A response with an HTTP `200` status means that you already added the reaction type to this commit comment. + */ + "reactions/create-for-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the commit comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a commit comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + "reactions/delete-for-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List commits + * @description **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/list-commits": { + parameters: { + query?: { + /** @description SHA or branch to start listing commits from. Default: the repository’s default branch (usually `main`). */ + sha?: string; + /** @description Only commits containing this file path will be returned. */ + path?: string; + /** @description GitHub username or email address to use to filter by commit author. */ + author?: string; + /** @description GitHub username or email address to use to filter by commit committer. */ + committer?: string; + since?: components["parameters"]["since"]; + /** @description Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + until?: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["commit"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List branches for HEAD commit + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + */ + "repos/list-branches-for-head-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-short"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List commit comments + * @description Lists the comments for a specified commit. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/list-comments-for-commit": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["commit-comment"][]; + }; + }; + }; + }; + /** + * Create a commit comment + * @description Create a comment for a commit using its `:commit_sha`. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/create-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment. */ + body: string; + /** @description Relative path of the file to comment on. */ + path?: string; + /** @description Line index in the diff to comment on. */ + position?: number; + /** @description **Deprecated**. Use **position** parameter instead. Line number in the file to comment on. */ + line?: number; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["commit-comment"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List pull requests associated with a commit + * @description Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, will only return open pull requests associated with the commit. + * + * To list the open or merged pull requests associated with a branch, you can set the `commit_sha` parameter to the branch name. + */ + "repos/list-pull-requests-associated-with-commit": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-simple"][]; + }; + }; + }; + }; + /** + * Get a commit + * @description Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * **Note:** If there are more than 300 files in the commit diff and the default JSON media type is requested, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." Pagination query parameters are not supported for these media types. + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.sha`**: Returns the commit's SHA-1 hash. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/get-commit": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List check runs for a Git reference + * @description Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * If there are more than 1000 check suites on a single git reference, this endpoint will limit check runs to the 1000 most recent check suites. To iterate over all possible check runs, use the [List check suites for a Git reference](https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference) endpoint and provide the `check_suite_id` parameter to the [List check runs in a check suite](https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite) endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/list-for-ref": { + parameters: { + query?: { + check_name?: components["parameters"]["check-name"]; + status?: components["parameters"]["status"]; + /** @description Filters check runs by their `completed_at` timestamp. `latest` returns the most recent check runs. */ + filter?: "latest" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + app_id?: number; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + check_runs: components["schemas"]["check-run"][]; + }; + }; + }; + }; + }; + /** + * List check suites for a Git reference + * @description Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/list-suites-for-ref": { + parameters: { + query?: { + /** + * @description Filters check suites by GitHub App `id`. + * @example 1 + */ + app_id?: number; + check_name?: components["parameters"]["check-name"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + check_suites: components["schemas"]["check-suite"][]; + }; + }; + }; + }; + }; + /** + * Get the combined status for a specific reference + * @description Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + */ + "repos/get-combined-status-for-ref": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["combined-commit-status"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List commit statuses for a reference + * @description Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + */ + "repos/list-commit-statuses-for-ref": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["status"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + }; + }; + /** + * Get community profile metrics + * @description Returns all community profile metrics for a repository. The repository cannot be a fork. + * + * The returned metrics include an overall health score, the repository description, the presence of documentation, the + * detected code of conduct, the detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + * README, and CONTRIBUTING files. + * + * The `health_percentage` score is defined as a percentage of how many of + * the recommended community health files are present. For more information, see + * "[About community profiles for public repositories](https://docs.github.com/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories)." + * + * `content_reports_enabled` is only returned for organization-owned repositories. + */ + "repos/get-community-profile-metrics": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["community-profile"]; + }; + }; + }; + }; + /** + * Compare two commits + * @description Compares two commits against one another. You can compare branches in the same repository, or you can compare branches that exist in different repositories within the same repository network, including fork branches. For more information about how to view a repository's network, see "[Understanding connections between repositories](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository/understanding-connections-between-repositories)." + * + * This endpoint is equivalent to running the `git log BASE..HEAD` command, but it returns commits in a different order. The `git log BASE..HEAD` command returns commits in reverse chronological order, whereas the API returns commits in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. + * + * The API response includes details about the files that were changed between the two commits. This includes the status of the change (if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * When calling this endpoint without any paging parameter (`per_page` or `page`), the returned list is limited to 250 commits, and the last commit in the list is the most recent of the entire comparison. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, use a query parameter (`per_page` or `page`) to paginate the results. When using pagination: + * + * - The list of changed files is only shown on the first page of results, but it includes all changed files for the entire comparison. + * - The results are returned in chronological order, but the last commit in the returned list may not be the most recent one in the entire set if there are more pages of results. + * + * For more information on working with pagination, see "[Using pagination in the REST API](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The `verification` object includes the following fields: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/compare-commits-with-basehead": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The base branch and head branch to compare. This parameter expects the format `BASE...HEAD`. Both must be branch names in `repo`. To compare with a branch that exists in a different repository in the same network as `repo`, the `basehead` parameter expects the format `USERNAME:BASE...USERNAME:HEAD`. */ + basehead: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comparison"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get repository content + * @description Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks. + * - **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * - **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects. + * + * If the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + * + * If the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself. + * + * If the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + * + * **Notes**: + * + * - To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree). + * - This API has an upper limit of 1,000 files for a directory. If you need to retrieve + * more files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree). + * - Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. + * - If the requested file's size is: + * - 1 MB or smaller: All features of this endpoint are supported. + * - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty + * string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * - Greater than 100 MB: This endpoint is not supported. + */ + "repos/get-content": { + parameters: { + query?: { + /** @description The name of the commit/branch/tag. Default: the repository’s default branch. */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description path parameter */ + path: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/vnd.github.object": components["schemas"]["content-tree"]; + "application/json": + | components["schemas"]["content-directory"] + | components["schemas"]["content-file"] + | components["schemas"]["content-symlink"] + | components["schemas"]["content-submodule"]; + }; + }; + 302: components["responses"]["found"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update file contents + * @description Creates a new file or replaces an existing file in a repository. + * + * **Note:** If you use this endpoint and the "[Delete a file](https://docs.github.com/rest/repos/contents/#delete-a-file)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The `workflow` scope is also required in order to modify files in the `.github/workflows` directory. + */ + "repos/create-or-update-file-contents": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description path parameter */ + path: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The commit message. */ + message: string; + /** @description The new file content, using Base64 encoding. */ + content: string; + /** @description **Required if you are updating a file**. The blob SHA of the file being replaced. */ + sha?: string; + /** @description The branch name. Default: the repository’s default branch. */ + branch?: string; + /** @description The person that committed the file. Default: the authenticated user. */ + committer?: { + /** @description The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted. */ + name: string; + /** @description The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted. */ + email: string; + /** @example "2013-01-05T13:13:22+05:00" */ + date?: string; + }; + /** @description The author of the file. Default: The `committer` or the authenticated user if you omit `committer`. */ + author?: { + /** @description The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted. */ + name: string; + /** @description The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted. */ + email: string; + /** @example "2013-01-15T17:13:22+05:00" */ + date?: string; + }; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["file-commit"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["file-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a file + * @description Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + * + * **Note:** If you use this endpoint and the "[Create or update file contents](https://docs.github.com/rest/repos/contents/#create-or-update-file-contents)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + */ + "repos/delete-file": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description path parameter */ + path: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The commit message. */ + message: string; + /** @description The blob SHA of the file being deleted. */ + sha: string; + /** @description The branch name. Default: the repository’s default branch */ + branch?: string; + /** @description object containing information about the committer. */ + committer?: { + /** @description The name of the author (or committer) of the commit */ + name?: string; + /** @description The email of the author (or committer) of the commit */ + email?: string; + }; + /** @description object containing information about the author. */ + author?: { + /** @description The name of the author (or committer) of the commit */ + name?: string; + /** @description The email of the author (or committer) of the commit */ + email?: string; + }; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["file-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List repository contributors + * @description Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + */ + "repos/list-contributors": { + parameters: { + query?: { + /** @description Set to `1` or `true` to include anonymous contributors in results. */ + anon?: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description If repository contains content */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["contributor"][]; + }; + }; + /** @description Response if repository is empty */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List Dependabot alerts for a repository + * @description OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "dependabot/list-alerts-for-repo": { + parameters: { + query?: { + state?: components["parameters"]["dependabot-alert-comma-separated-states"]; + severity?: components["parameters"]["dependabot-alert-comma-separated-severities"]; + ecosystem?: components["parameters"]["dependabot-alert-comma-separated-ecosystems"]; + package?: components["parameters"]["dependabot-alert-comma-separated-packages"]; + manifest?: components["parameters"]["dependabot-alert-comma-separated-manifests"]; + scope?: components["parameters"]["dependabot-alert-scope"]; + sort?: components["parameters"]["dependabot-alert-sort"]; + direction?: components["parameters"]["direction"]; + /** + * @deprecated + * @description **Deprecated**. Page number of the results to fetch. Use cursor-based pagination with `before` or `after` instead. + */ + page?: number; + /** + * @deprecated + * @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + */ + per_page?: number; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + first?: components["parameters"]["pagination-first"]; + last?: components["parameters"]["pagination-last"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get a Dependabot alert + * @description OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "dependabot/get-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["dependabot-alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a Dependabot alert + * @description The authenticated user must have access to security alerts for the repository to use this endpoint. For more information, see "[Granting access to security alerts](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "dependabot/update-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["dependabot-alert-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state of the Dependabot alert. + * A `dismissed_reason` must be provided when setting the state to `dismissed`. + * @enum {string} + */ + state: "dismissed" | "open"; + /** + * @description **Required when `state` is `dismissed`.** A reason for dismissing the alert. + * @enum {string} + */ + dismissed_reason?: + | "fix_started" + | "inaccurate" + | "no_bandwidth" + | "not_used" + | "tolerable_risk"; + /** @description An optional comment associated with dismissing the alert. */ + dismissed_comment?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List repository secrets + * @description Lists all secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependabot/list-repo-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["dependabot-secret"][]; + }; + }; + }; + }; + }; + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. Anyone with read access + * to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the repository is private. + */ + "dependabot/get-repo-public-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-public-key"]; + }; + }; + }; + }; + /** + * Get a repository secret + * @description Gets a single repository secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependabot/get-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-secret"]; + }; + }; + }; + }; + /** + * Create or update a repository secret + * @description Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependabot/create-or-update-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/dependabot/secrets#get-a-repository-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete a repository secret + * @description Deletes a secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependabot/delete-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get a diff of the dependencies between commits + * @description Gets the diff of the dependency changes between two commits of a repository, based on the changes to the dependency manifests made in those commits. + */ + "dependency-graph/diff-range": { + parameters: { + query?: { + name?: components["parameters"]["manifest-path"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The base and head Git revisions to compare. The Git revisions will be resolved to commit SHAs. Named revisions will be resolved to their corresponding HEAD commits, and an appropriate merge base will be determined. This parameter expects the format `{base}...{head}`. */ + basehead: string; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["dependency-graph-diff"]; + }; + }; + 403: components["responses"]["dependency_review_forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Export a software bill of materials (SBOM) for a repository. + * @description Exports the software bill of materials (SBOM) for a repository in SPDX JSON format. + */ + "dependency-graph/export-sbom": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["dependency-graph-spdx-sbom"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a snapshot of dependencies for a repository + * @description Create a new snapshot of a repository's dependencies. + * + * The authenticated user must have access to the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependency-graph/create-repository-snapshot": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["snapshot"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": { + /** @description ID of the created snapshot. */ + id: number; + /** @description The time at which the snapshot was created. */ + created_at: string; + /** @description Either "SUCCESS", "ACCEPTED", or "INVALID". "SUCCESS" indicates that the snapshot was successfully created and the repository's dependencies were updated. "ACCEPTED" indicates that the snapshot was successfully created, but the repository's dependencies were not updated. "INVALID" indicates that the snapshot was malformed. */ + result: string; + /** @description A message providing further details about the result, such as why the dependencies were not updated. */ + message: string; + }; + }; + }; + }; + }; + /** + * List deployments + * @description Simple filtering of deployments is available via query parameters: + */ + "repos/list-deployments": { + parameters: { + query?: { + /** @description The SHA recorded at creation time. */ + sha?: string; + /** @description The name of the ref. This can be a branch, tag, or SHA. */ + ref?: string; + /** @description The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). */ + task?: string; + /** @description The name of the environment that was deployed to (e.g., `staging` or `production`). */ + environment?: string | null; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["deployment"][]; + }; + }; + }; + }; + /** + * Create a deployment + * @description Deployments offer a few configurable parameters with certain defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + * before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + * makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + * return a failure response. + * + * By default, [commit statuses](https://docs.github.com/rest/commits/statuses) for every submitted context must be in a `success` + * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + * not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + * field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + * application with debugging enabled. + * + * Merged branch response: + * + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + * a deployment. This auto-merge happens when: + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful + * response. + * + * Merge conflict response: + * + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * Failed commit status checks: + * + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + "repos/create-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The ref to deploy. This can be a branch, tag, or SHA. */ + ref: string; + /** + * @description Specifies a task to execute (e.g., `deploy` or `deploy:migrations`). + * @default deploy + */ + task?: string; + /** + * @description Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch. + * @default true + */ + auto_merge?: boolean; + /** @description The [status](https://docs.github.com/rest/commits/statuses) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts. */ + required_contexts?: string[]; + payload?: OneOf< + [ + { + [key: string]: unknown; + }, + string, + ] + >; + /** + * @description Name for the target deployment environment (e.g., `production`, `staging`, `qa`). + * @default production + */ + environment?: string; + /** + * @description Short description of the deployment. + * @default + */ + description?: string | null; + /** + * @description Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false` + * @default false + */ + transient_environment?: boolean; + /** @description Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise. */ + production_environment?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["deployment"]; + }; + }; + /** @description Merged branch response */ + 202: { + content: { + "application/json": { + message?: string; + }; + }; + }; + /** @description Conflict when there is a merge conflict or the commit's status checks failed */ + 409: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Get a deployment */ + "repos/get-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a deployment + * @description If the repository only has one deployment, you can delete the deployment regardless of its status. If the repository has more than one deployment, you can only delete inactive deployments. This ensures that repositories with multiple deployments will always have an active deployment. + * + * To set a deployment as inactive, you must: + * + * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * * Mark the active deployment as inactive by adding any non-successful deployment status. + * + * For more information, see "[Create a deployment](https://docs.github.com/rest/deployments/deployments/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/deployments/statuses#create-a-deployment-status)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + "repos/delete-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List deployment statuses + * @description Users with pull access can view deployment statuses for a deployment: + */ + "repos/list-deployment-statuses": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["deployment-status"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a deployment status + * @description Users with `push` access can create deployment statuses for a given deployment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo_deployment` scope to use this endpoint. + */ + "repos/create-deployment-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state of the status. When you set a transient deployment to `inactive`, the deployment will be shown as `destroyed` in GitHub. + * @enum {string} + */ + state: + | "error" + | "failure" + | "inactive" + | "in_progress" + | "queued" + | "pending" + | "success"; + /** + * @description The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. **Note:** It's recommended to use the `log_url` parameter, which replaces `target_url`. + * @default + */ + target_url?: string; + /** + * @description The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `""` + * @default + */ + log_url?: string; + /** + * @description A short description of the status. The maximum description length is 140 characters. + * @default + */ + description?: string; + /** @description Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. If not defined, the environment of the previous status on the deployment will be used, if it exists. Otherwise, the environment of the deployment will be used. */ + environment?: string; + /** + * @description Sets the URL for accessing your environment. Default: `""` + * @default + */ + environment_url?: string; + /** @description Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true` */ + auto_inactive?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/example/deployments/42/statuses/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["deployment-status"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a deployment status + * @description Users with pull access can view a deployment status for a deployment: + */ + "repos/get-deployment-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + status_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-status"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a repository dispatch event + * @description You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-dispatch-event": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A custom webhook event name. Must be 100 characters or fewer. */ + event_type: string; + /** @description JSON payload with extra information about the webhook event that your action or workflow may use. The maximum number of top-level properties is 10. */ + client_payload?: { + [key: string]: unknown; + }; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List environments + * @description Lists the environments for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-all-environments": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + /** + * @description The number of environments in this repository + * @example 5 + */ + total_count?: number; + environments?: components["schemas"]["environment"][]; + }; + }; + }; + }; + }; + /** + * Get an environment + * @description **Note:** To get information about name patterns that branches must match in order to deploy to this environment, see "[Get a deployment branch policy](/rest/deployments/branch-policies#get-a-deployment-branch-policy)." + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-environment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["environment"]; + }; + }; + }; + }; + /** + * Create or update an environment + * @description Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "[Environments](/actions/reference/environments#environment-protection-rules)." + * + * **Note:** To create or update name patterns that branches must match in order to deploy to this environment, see "[Deployment branch policies](/rest/deployments/branch-policies)." + * + * **Note:** To create or update secrets for an environment, see "[GitHub Actions secrets](/rest/actions/secrets)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-or-update-environment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + requestBody?: { + content: { + "application/json": { + wait_timer?: components["schemas"]["wait-timer"]; + prevent_self_review?: components["schemas"]["prevent-self-review"]; + /** @description The people or teams that may review jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ + reviewers?: + | { + type?: components["schemas"]["deployment-reviewer-type"]; + /** + * @description The id of the user or team who can review the deployment + * @example 4532992 + */ + id?: number; + }[] + | null; + deployment_branch_policy?: components["schemas"]["deployment-branch-policy-settings"]; + } | null; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["environment"]; + }; + }; + /** @description Validation error when the environment name is invalid or when `protected_branches` and `custom_branch_policies` in `deployment_branch_policy` are set to the same value */ + 422: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Delete an environment + * @description OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/delete-an-environment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Default response */ + 204: { + content: never; + }; + }; + }; + /** + * List deployment branch policies + * @description Lists the deployment branch policies for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/list-deployment-branch-policies": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + /** + * @description The number of deployment branch policies for the environment. + * @example 2 + */ + total_count: number; + branch_policies: components["schemas"]["deployment-branch-policy"][]; + }; + }; + }; + }; + }; + /** + * Create a deployment branch policy + * @description Creates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-deployment-branch-policy": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["deployment-branch-policy-name-pattern-with-type"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-branch-policy"]; + }; + }; + /** @description Response if the same branch name pattern already exists */ + 303: { + content: never; + }; + /** @description Not Found or `deployment_branch_policy.custom_branch_policies` property for the environment is set to false */ + 404: { + content: never; + }; + }; + }; + /** + * Get a deployment branch policy + * @description Gets a deployment branch or tag policy for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-deployment-branch-policy": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + branch_policy_id: components["parameters"]["branch-policy-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-branch-policy"]; + }; + }; + }; + }; + /** + * Update a deployment branch policy + * @description Updates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/update-deployment-branch-policy": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + branch_policy_id: components["parameters"]["branch-policy-id"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["deployment-branch-policy-name-pattern"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-branch-policy"]; + }; + }; + }; + }; + /** + * Delete a deployment branch policy + * @description Deletes a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/delete-deployment-branch-policy": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + branch_policy_id: components["parameters"]["branch-policy-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get all deployment protection rules for an environment + * @description Gets all custom deployment protection rules that are enabled for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-all-deployment-protection-rules": { + parameters: { + path: { + environment_name: components["parameters"]["environment-name"]; + repo: components["parameters"]["repo"]; + owner: components["parameters"]["owner"]; + }; + }; + responses: { + /** @description List of deployment protection rules */ + 200: { + content: { + "application/json": { + /** + * @description The number of enabled custom deployment protection rules for this environment + * @example 10 + */ + total_count?: number; + custom_deployment_protection_rules?: components["schemas"]["deployment-protection-rule"][]; + }; + }; + }; + }; + }; + /** + * Create a custom deployment protection rule on an environment + * @description Enable a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-deployment-protection-rule": { + parameters: { + path: { + environment_name: components["parameters"]["environment-name"]; + repo: components["parameters"]["repo"]; + owner: components["parameters"]["owner"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The ID of the custom app that will be enabled on the environment. */ + integration_id?: number; + }; + }; + }; + responses: { + /** @description The enabled custom deployment protection rule */ + 201: { + content: { + "application/json": components["schemas"]["deployment-protection-rule"]; + }; + }; + }; + }; + /** + * List custom deployment rule integrations available for an environment + * @description Gets all custom deployment protection rule integrations that are available for an environment. Anyone with read access to the repository can use this endpoint. + * + * For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see "[GET an app](https://docs.github.com/rest/apps/apps#get-an-app)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/list-custom-deployment-rule-integrations": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + environment_name: components["parameters"]["environment-name"]; + repo: components["parameters"]["repo"]; + owner: components["parameters"]["owner"]; + }; + }; + responses: { + /** @description A list of custom deployment rule integrations available for this environment. */ + 200: { + content: { + "application/json": { + /** + * @description The total number of custom deployment protection rule integrations available for this environment. + * @example 35 + */ + total_count?: number; + available_custom_deployment_protection_rule_integrations?: components["schemas"]["custom-deployment-rule-app"][]; + }; + }; + }; + }; + }; + /** + * Get a custom deployment protection rule + * @description Gets an enabled custom deployment protection rule for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see [`GET /apps/{app_slug}`](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-custom-deployment-protection-rule": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + protection_rule_id: components["parameters"]["protection-rule-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-protection-rule"]; + }; + }; + }; + }; + /** + * Disable a custom protection rule for an environment + * @description Disables a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/disable-deployment-protection-rule": { + parameters: { + path: { + environment_name: components["parameters"]["environment-name"]; + repo: components["parameters"]["repo"]; + owner: components["parameters"]["owner"]; + protection_rule_id: components["parameters"]["protection-rule-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List repository events + * @description **Note**: This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + */ + "activity/list-repo-events": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** List forks */ + "repos/list-forks": { + parameters: { + query?: { + /** @description The sort order. `stargazers` will sort by star count. */ + sort?: "newest" | "oldest" | "stargazers" | "watchers"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 400: components["responses"]["bad_request"]; + }; + }; + /** + * Create a fork + * @description Create a fork for the authenticated user. + * + * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * + * **Note**: Although this endpoint works with GitHub Apps, the GitHub App must be installed on the destination account with access to all repositories and on the source account with access to the source repository. + */ + "repos/create-fork": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Optional parameter to specify the organization name if forking into an organization. */ + organization?: string; + /** @description When forking from an existing repository, a new name for the fork. */ + name?: string; + /** @description When forking from an existing repository, fork with only the default branch. */ + default_branch_only?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Create a blob */ + "git/create-blob": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The new blob's content. */ + content: string; + /** + * @description The encoding used for `content`. Currently, `"utf-8"` and `"base64"` are supported. + * @default utf-8 + */ + encoding?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["short-blob"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a blob + * @description The `content` in the response will always be Base64 encoded. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw blob data. + * - **`application/vnd.github+json`**: Returns a JSON representation of the blob with `content` as a base64 encoded string. This is the default if no media type is specified. + * + * **Note** This endpoint supports blobs up to 100 megabytes in size. + */ + "git/get-blob": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + file_sha: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["blob"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a commit + * @description Creates a new Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/create-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The commit message */ + message: string; + /** @description The SHA of the tree object this commit points to */ + tree: string; + /** @description The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided. */ + parents?: string[]; + /** @description Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details. */ + author?: { + /** @description The name of the author (or committer) of the commit */ + name: string; + /** @description The email of the author (or committer) of the commit */ + email: string; + /** + * Format: date-time + * @description Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + /** @description Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details. */ + committer?: { + /** @description The name of the author (or committer) of the commit */ + name?: string; + /** @description The email of the author (or committer) of the commit */ + email?: string; + /** + * Format: date-time + * @description Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + /** @description The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits. */ + signature?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a commit object + * @description Gets a Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * To get the contents of a commit, see "[Get a commit](/rest/commits/commits#get-a-commit)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/get-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List matching references + * @description Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + * + * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + */ + "git/list-matching-refs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["git-ref"][]; + }; + }; + }; + }; + /** + * Get a reference + * @description Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + */ + "git/get-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-ref"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a reference + * @description Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. + */ + "git/create-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the fully qualified reference (ie: `refs/heads/master`). If it doesn't start with 'refs' and have at least two slashes, it will be rejected. */ + ref: string; + /** @description The SHA1 value for this reference. */ + sha: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-ref"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Delete a reference */ + "git/delete-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Update a reference */ + "git/update-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * @description The name of the reference to update (for example, `heads/featureA`). Can be a branch name (`heads/BRANCH_NAME`) or tag name (`tags/TAG_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. + * @example heads/featureA + */ + ref: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The SHA1 value to set this reference to */ + sha: string; + /** + * @description Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to `false` will make sure you're not overwriting work. + * @default false + */ + force?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-ref"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a tag object + * @description Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/git/refs#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/git/refs#create-a-reference) the tag reference - this call would be unnecessary. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/create-tag": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The tag's name. This is typically a version (e.g., "v0.0.1"). */ + tag: string; + /** @description The tag message. */ + message: string; + /** @description The SHA of the git object this is tagging. */ + object: string; + /** + * @description The type of the object we're tagging. Normally this is a `commit` but it can also be a `tree` or a `blob`. + * @enum {string} + */ + type: "commit" | "tree" | "blob"; + /** @description An object with information about the individual creating the tag. */ + tagger?: { + /** @description The name of the author of the tag */ + name: string; + /** @description The email of the author of the tag */ + email: string; + /** + * Format: date-time + * @description When this object was tagged. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-tag"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a tag + * @description **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/get-tag": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + tag_sha: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-tag"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a tree + * @description The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + * + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/git/commits#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/git/refs#update-a-reference)." + * + * Returns an error if you try to delete a file that does not exist. + */ + "git/create-tree": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Objects (of `path`, `mode`, `type`, and `sha`) specifying a tree structure. */ + tree: { + /** @description The file referenced in the tree. */ + path?: string; + /** + * @description The file mode; one of `100644` for file (blob), `100755` for executable (blob), `040000` for subdirectory (tree), `160000` for submodule (commit), or `120000` for a blob that specifies the path of a symlink. + * @enum {string} + */ + mode?: "100644" | "100755" | "040000" | "160000" | "120000"; + /** + * @description Either `blob`, `tree`, or `commit`. + * @enum {string} + */ + type?: "blob" | "tree" | "commit"; + /** + * @description The SHA1 checksum ID of the object in the tree. Also called `tree.sha`. If the value is `null` then the file will be deleted. + * + * **Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error. + */ + sha?: string | null; + /** + * @description The content you want this file to have. GitHub will write this blob out and use that SHA for this entry. Use either this, or `tree.sha`. + * + * **Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error. + */ + content?: string; + }[]; + /** + * @description The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on. + * If not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit. + */ + base_tree?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/trees/cd8274d15fa3ae2ab983129fb037999f264ba9a7 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-tree"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a tree + * @description Returns a single tree using the SHA1 value or ref name for that tree. + * + * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. + * + * + * **Note**: The limit for the `tree` array is 100,000 entries with a maximum size of 7 MB when using the `recursive` parameter. + */ + "git/get-tree": { + parameters: { + query?: { + /** @description Setting this parameter to any value returns the objects or subtrees referenced by the tree specified in `:tree_sha`. For example, setting `recursive` to any of the following will enable returning objects or subtrees: `0`, `1`, `"true"`, and `"false"`. Omit this parameter to prevent recursively returning objects or subtrees. */ + recursive?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The SHA1 value or ref (branch or tag) name of the tree. */ + tree_sha: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-tree"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List repository webhooks + * @description Lists webhooks for a repository. `last response` may return null if there have not been any deliveries within 30 days. + */ + "repos/list-webhooks": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["hook"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a repository webhook + * @description Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + * share the same `config` as long as those webhooks do not have any `events` that overlap. + */ + "repos/create-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Use `web` to create a webhook. Default: `web`. This parameter only accepts the value `web`. */ + name?: string; + /** @description Key/value pairs to provide settings for this webhook. */ + config?: { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/hooks/12345678 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["hook"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a repository webhook + * @description Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository)." + */ + "repos/get-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a repository webhook */ + "repos/delete-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a repository webhook + * @description Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/webhooks/repo-config#update-a-webhook-configuration-for-a-repository)." + */ + "repos/update-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + config?: components["schemas"]["webhook-config"]; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. This replaces the entire array of events. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** @description Determines a list of events to be added to the list of events that the Hook triggers for. */ + add_events?: string[]; + /** @description Determines a list of events to be removed from the list of events that the Hook triggers for. */ + remove_events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a webhook configuration for a repository + * @description Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/webhooks/repos#get-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:repo_hook` or `repo` scope to use this endpoint. + */ + "repos/get-webhook-config-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * Update a webhook configuration for a repository + * @description Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/webhooks/repos#update-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:repo_hook` or `repo` scope to use this endpoint. + */ + "repos/update-webhook-config-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * List deliveries for a repository webhook + * @description Returns a list of webhook deliveries for a webhook configured in a repository. + */ + "repos/list-webhook-deliveries": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + cursor?: components["parameters"]["cursor"]; + redelivery?: boolean; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery-item"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a delivery for a repository webhook + * @description Returns a delivery for a webhook configured in a repository. + */ + "repos/get-webhook-delivery": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery"]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Redeliver a delivery for a repository webhook + * @description Redeliver a webhook delivery for a webhook configured in a repository. + */ + "repos/redeliver-webhook-delivery": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Ping a repository webhook + * @description This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + "repos/ping-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Test the push repository webhook + * @description This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * + * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + */ + "repos/test-push-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get an import status + * @deprecated + * @description View the progress of an import. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * **Import status** + * + * This section includes details about the possible values of the `status` field of the Import Progress response. + * + * An import that does not have errors will progress through these steps: + * + * * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * * `complete` - the import is complete, and the repository is ready on GitHub. + * + * If there are problems, you will see one of these in the `status` field: + * + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/migrations/source-imports#cancel-an-import) and [retry](https://docs.github.com/rest/migrations/source-imports#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * + * **The project_choices field** + * + * When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + * + * **Git LFS related fields** + * + * This section includes details about Git LFS related fields that may be present in the Import Progress response. + * + * * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + */ + "migrations/get-import-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Start an import + * @deprecated + * @description Start a source import to a GitHub repository using GitHub Importer. + * Importing into a GitHub repository with GitHub Actions enabled is not supported and will + * return a status `422 Unprocessable Entity` response. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/start-import": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The URL of the originating repository. */ + vcs_url: string; + /** + * @description The originating VCS type. Without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response. + * @enum {string} + */ + vcs?: "subversion" | "git" | "mercurial" | "tfvc"; + /** @description If authentication is required, the username to provide to `vcs_url`. */ + vcs_username?: string; + /** @description If authentication is required, the password to provide to `vcs_url`. */ + vcs_password?: string; + /** @description For a tfvc import, the name of the project that is being imported. */ + tfvc_project?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/spraints/socm/import */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Cancel an import + * @deprecated + * @description Stop an import for a repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/cancel-import": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Update an import + * @deprecated + * @description An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API + * request. If no parameters are provided, the import will be restarted. + * + * Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will + * have the status `detection_found_multiple` and the Import Progress response will include a `project_choices` array. + * You can select the project to import by providing one of the objects in the `project_choices` array in the update request. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/update-import": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The username to provide to the originating repository. */ + vcs_username?: string; + /** @description The password to provide to the originating repository. */ + vcs_password?: string; + /** + * @description The type of version control system you are migrating from. + * @example "git" + * @enum {string} + */ + vcs?: "subversion" | "tfvc" | "git" | "mercurial"; + /** + * @description For a tfvc import, the name of the project that is being imported. + * @example "project1" + */ + tfvc_project?: string; + } | null; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Get commit authors + * @deprecated + * @description Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + * + * This endpoint and the [Map a commit author](https://docs.github.com/rest/migrations/source-imports#map-a-commit-author) endpoint allow you to provide correct Git author information. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/get-commit-authors": { + parameters: { + query?: { + since?: components["parameters"]["since-user"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["porter-author"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Map a commit author + * @deprecated + * @description Update an author's identity for the import. Your application can continue updating authors any time before you push + * new commits to the repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/map-commit-author": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + author_id: number; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The new Git author email. */ + email?: string; + /** @description The new Git author name. */ + name?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["porter-author"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Get large files + * @deprecated + * @description List files larger than 100MB found during the import + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/get-large-files": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["porter-large-file"][]; + }; + }; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Update Git LFS preference + * @deprecated + * @description You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability + * is powered by [Git LFS](https://git-lfs.com). + * + * You can learn more about our LFS feature and working with large files [on our help + * site](https://docs.github.com/repositories/working-with-files/managing-large-files). + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/set-lfs-preference": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Whether to store large files during the import. `opt_in` means large files will be stored using Git LFS. `opt_out` means large files will be removed during the import. + * @enum {string} + */ + use_lfs: "opt_in" | "opt_out"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Get a repository installation for the authenticated app + * @description Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-repo-installation": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get interaction restrictions for a repository + * @description Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + "interactions/get-restrictions-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": + | components["schemas"]["interaction-limit-response"] + | Record; + }; + }; + }; + }; + /** + * Set interaction restrictions for a repository + * @description Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + "interactions/set-restrictions-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["interaction-limit"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + /** @description Response */ + 409: { + content: never; + }; + }; + }; + /** + * Remove interaction restrictions for a repository + * @description Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + "interactions/remove-restrictions-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response */ + 409: { + content: never; + }; + }; + }; + /** + * List repository invitations + * @description When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. + */ + "repos/list-invitations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["repository-invitation"][]; + }; + }; + }; + }; + /** Delete a repository invitation */ + "repos/delete-invitation": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** Update a repository invitation */ + "repos/update-invitation": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permissions that the associated user will have on the repository. Valid values are `read`, `write`, `maintain`, `triage`, and `admin`. + * @enum {string} + */ + permissions?: "read" | "write" | "maintain" | "triage" | "admin"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-invitation"]; + }; + }; + }; + }; + /** + * List repository issues + * @description List issues in a repository. Only open issues will be listed. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-for-repo": { + parameters: { + query?: { + /** @description If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned. */ + milestone?: string; + /** @description Indicates the state of the issues to return. */ + state?: "open" | "closed" | "all"; + /** @description Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user. */ + assignee?: string; + /** @description The user that created the issue. */ + creator?: string; + /** @description A user that's mentioned in the issue. */ + mentioned?: string; + labels?: components["parameters"]["labels"]; + /** @description What to sort results by. */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create an issue + * @description Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://docs.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/create": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the issue. */ + title: string | number; + /** @description The contents of the issue. */ + body?: string; + /** @description Login for the user that this issue should be assigned to. _NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. **This field is deprecated.**_ */ + assignee?: string | null; + milestone?: string | number | null; + /** @description Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._ */ + labels?: OneOf< + [ + string, + { + id?: number; + name?: string; + description?: string | null; + color?: string | null; + }, + ] + >[]; + /** @description Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ */ + assignees?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/issues/1347 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List issue comments for a repository + * @description You can use the REST API to list comments on issues and pull requests for a repository. Every pull request is an issue, but not every issue is a pull request. + * + * By default, issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-comments-for-repo": { + parameters: { + query?: { + sort?: components["parameters"]["sort"]; + /** @description Either `asc` or `desc`. Ignored without the `sort` parameter. */ + direction?: "asc" | "desc"; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue-comment"][]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an issue comment + * @description You can use the REST API to get comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/get-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an issue comment + * @description You can use the REST API to delete comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + */ + "issues/delete-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update an issue comment + * @description You can use the REST API to update comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/update-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue-comment"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List reactions for an issue comment + * @description List the reactions to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + "reactions/list-for-issue-comment": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to an issue comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create reaction for an issue comment + * @description Create a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). A response with an HTTP `200` status means that you already added the reaction type to this issue comment. + */ + "reactions/create-for-issue-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the issue comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an issue comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + "reactions/delete-for-issue-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List issue events for a repository + * @description Lists events for a repository. + */ + "issues/list-events-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue-event"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an issue event + * @description Gets a single event by the event id. + */ + "issues/get-event": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + event_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue-event"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Get an issue + * @description The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api#follow-redirects) if the issue was + * [transferred](https://docs.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API + * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read + * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe + * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Update an issue + * @description Issue owners and users with push access can edit an issue. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The title of the issue. */ + title?: string | number | null; + /** @description The contents of the issue. */ + body?: string | null; + /** @description Username to assign to this issue. **This field is deprecated.** */ + assignee?: string | null; + /** + * @description The open or closed state of the issue. + * @enum {string} + */ + state?: "open" | "closed"; + /** + * @description The reason for the state change. Ignored unless `state` is changed. + * @example not_planned + * @enum {string|null} + */ + state_reason?: "completed" | "not_planned" | "reopened" | null; + milestone?: string | number | null; + /** @description Labels to associate with this issue. Pass one or more labels to _replace_ the set of labels on this issue. Send an empty array (`[]`) to clear all labels from the issue. Only users with push access can set labels for issues. Without push access to the repository, label changes are silently dropped. */ + labels?: OneOf< + [ + string, + { + id?: number; + name?: string; + description?: string | null; + color?: string | null; + }, + ] + >[]; + /** @description Usernames to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this issue. Send an empty array (`[]`) to clear all assignees from the issue. Only users with push access can set assignees for new issues. Without push access to the repository, assignee changes are silently dropped. */ + assignees?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Add assignees to an issue + * @description Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. + */ + "issues/add-assignees": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._ */ + assignees?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + }; + }; + /** + * Remove assignees from an issue + * @description Removes one or more assignees from an issue. + */ + "issues/remove-assignees": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._ */ + assignees: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + }; + }; + /** + * Check if a user can be assigned to a issue + * @description Checks if a user has permission to be assigned to a specific issue. + * + * If the `assignee` can be assigned to this issue, a `204` status code with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + "issues/check-user-can-be-assigned-to-issue": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + assignee: string; + }; + }; + responses: { + /** @description Response if `assignee` can be assigned to `issue_number` */ + 204: { + content: never; + }; + /** @description Response if `assignee` can not be assigned to `issue_number` */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * List issue comments + * @description You can use the REST API to list comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * Issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-comments": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue-comment"][]; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Create an issue comment + * @description You can use the REST API to create comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + * Creating content too quickly using this endpoint may result in secondary rate limiting. + * For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/create-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/issues/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["issue-comment"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List issue events + * @description Lists all events for an issue. + */ + "issues/list-events": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue-event-for-issue"][]; + }; + }; + 410: components["responses"]["gone"]; + }; + }; + /** + * List labels for an issue + * @description Lists all labels for an issue. + */ + "issues/list-labels-on-issue": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Set labels for an issue + * @description Removes any previous labels and sets the new labels for an issue. + */ + "issues/set-labels": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": OneOf< + [ + { + /** @description The names of the labels to set for the issue. The labels you set replace any existing labels. You can pass an empty array to remove all labels. Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. You can also add labels to the existing labels for an issue. For more information, see "[Add labels to an issue](https://docs.github.com/rest/issues/labels#add-labels-to-an-issue)." */ + labels?: string[]; + }, + { + labels?: { + name: string; + }[]; + }, + ] + >; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add labels to an issue + * @description Adds labels to an issue. If you provide an empty array of labels, all labels are removed from the issue. + */ + "issues/add-labels": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": OneOf< + [ + { + /** @description The names of the labels to add to the issue's existing labels. You can pass an empty array to remove all labels. Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. You can also replace all of the labels for an issue. For more information, see "[Set labels for an issue](https://docs.github.com/rest/issues/labels#set-labels-for-an-issue)." */ + labels?: string[]; + }, + { + labels?: { + name: string; + }[]; + }, + ] + >; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove all labels from an issue + * @description Removes all labels from an issue. + */ + "issues/remove-all-labels": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Remove a label from an issue + * @description Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. + */ + "issues/remove-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + name: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Lock an issue + * @description Users with push access can lock an issue or pull request's conversation. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "issues/lock": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: + * * `off-topic` + * * `too heated` + * * `resolved` + * * `spam` + * @enum {string} + */ + lock_reason?: "off-topic" | "too heated" | "resolved" | "spam"; + } | null; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Unlock an issue + * @description Users with push access can unlock an issue's conversation. + */ + "issues/unlock": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List reactions for an issue + * @description List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + "reactions/list-for-issue": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to an issue. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Create reaction for an issue + * @description Create a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). A response with an HTTP `200` status means that you already added the reaction type to this issue. + */ + "reactions/create-for-issue": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the issue. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an issue reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + * + * Delete a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + "reactions/delete-for-issue": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List timeline events for an issue + * @description List all timeline events for an issue. + */ + "issues/list-events-for-timeline": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["timeline-issue-events"][]; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** List deploy keys */ + "repos/list-deploy-keys": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["deploy-key"][]; + }; + }; + }; + }; + /** + * Create a deploy key + * @description You can create a read-only deploy key. + */ + "repos/create-deploy-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A name for the key. */ + title?: string; + /** @description The contents of the key. */ + key: string; + /** + * @description If `true`, the key will only be able to read repository contents. Otherwise, the key will be able to read and write. + * + * Deploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see "[Repository permission levels for an organization](https://docs.github.com/articles/repository-permission-levels-for-an-organization/)" and "[Permission levels for a user account repository](https://docs.github.com/articles/permission-levels-for-a-user-account-repository/)." + */ + read_only?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/keys/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["deploy-key"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Get a deploy key */ + "repos/get-deploy-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deploy-key"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a deploy key + * @description Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. + */ + "repos/delete-deploy-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List labels for a repository + * @description Lists all labels for a repository. + */ + "issues/list-labels-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a label + * @description Creates a label for the specified repository with the given name and color. The name and color parameters are required. The color must be a valid [hexadecimal color code](http://www.color-hex.com/). + */ + "issues/create-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see "[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet)." */ + name: string; + /** @description The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. */ + color?: string; + /** @description A short description of the label. Must be 100 characters or fewer. */ + description?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/labels/bug */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["label"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a label + * @description Gets a label using the given name. + */ + "issues/get-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a label + * @description Deletes a label using the given label name. + */ + "issues/delete-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: string; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a label + * @description Updates a label using the given label name. + */ + "issues/update-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: string; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see "[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet)." */ + new_name?: string; + /** @description The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. */ + color?: string; + /** @description A short description of the label. Must be 100 characters or fewer. */ + description?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"]; + }; + }; + }; + }; + /** + * List repository languages + * @description Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. + */ + "repos/list-languages": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["language"]; + }; + }; + }; + }; + /** + * Get the license for a repository + * @description This method returns the contents of the repository's license file, if one is detected. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw contents of the license. + * - **`application/vnd.github.html+json`**: Returns the license contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + "licenses/get-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["license-content"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Sync a fork branch with the upstream repository + * @description Sync a branch of a forked repository to keep it up-to-date with the upstream repository. + */ + "repos/merge-upstream": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the branch which should be updated to match upstream. */ + branch: string; + }; + }; + }; + responses: { + /** @description The branch has been successfully synced with the upstream repository */ + 200: { + content: { + "application/json": components["schemas"]["merged-upstream"]; + }; + }; + /** @description The branch could not be synced because of a merge conflict */ + 409: { + content: never; + }; + /** @description The branch could not be synced for some other reason */ + 422: { + content: never; + }; + }; + }; + /** Merge a branch */ + "repos/merge": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the base branch that the head will be merged into. */ + base: string; + /** @description The head to merge. This can be a branch name or a commit SHA1. */ + head: string; + /** @description Commit message to use for the merge commit. If omitted, a default message will be used. */ + commit_message?: string; + }; + }; + }; + responses: { + /** @description Successful Response (The resulting merge commit) */ + 201: { + content: { + "application/json": components["schemas"]["commit"]; + }; + }; + /** @description Response when already merged */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + /** @description Not Found when the base or head does not exist */ + 404: { + content: never; + }; + /** @description Conflict when there is a merge conflict */ + 409: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List milestones + * @description Lists milestones for a repository. + */ + "issues/list-milestones": { + parameters: { + query?: { + /** @description The state of the milestone. Either `open`, `closed`, or `all`. */ + state?: "open" | "closed" | "all"; + /** @description What to sort results by. Either `due_on` or `completeness`. */ + sort?: "due_on" | "completeness"; + /** @description The direction of the sort. Either `asc` or `desc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["milestone"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a milestone + * @description Creates a milestone. + */ + "issues/create-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the milestone. */ + title: string; + /** + * @description The state of the milestone. Either `open` or `closed`. + * @default open + * @enum {string} + */ + state?: "open" | "closed"; + /** @description A description of the milestone. */ + description?: string; + /** + * Format: date-time + * @description The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/milestones/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["milestone"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a milestone + * @description Gets a milestone using the given milestone number. + */ + "issues/get-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["milestone"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a milestone + * @description Deletes a milestone using the given milestone number. + */ + "issues/delete-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Update a milestone */ + "issues/update-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The title of the milestone. */ + title?: string; + /** + * @description The state of the milestone. Either `open` or `closed`. + * @default open + * @enum {string} + */ + state?: "open" | "closed"; + /** @description A description of the milestone. */ + description?: string; + /** + * Format: date-time + * @description The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["milestone"]; + }; + }; + }; + }; + /** + * List labels for issues in a milestone + * @description Lists labels for issues in a milestone. + */ + "issues/list-labels-for-milestone": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + }; + }; + /** + * List repository notifications for the authenticated user + * @description Lists all notifications for the current user in the specified repository. + */ + "activity/list-repo-notifications-for-authenticated-user": { + parameters: { + query?: { + all?: components["parameters"]["all"]; + participating?: components["parameters"]["participating"]; + since?: components["parameters"]["since"]; + before?: components["parameters"]["before"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["thread"][]; + }; + }; + }; + }; + /** + * Mark repository notifications as read + * @description Marks all notifications in a repository as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + "activity/mark-repo-notifications-as-read": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * Format: date-time + * @description Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; + }; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": { + message?: string; + url?: string; + }; + }; + }; + /** @description Reset Content */ + 205: { + content: never; + }; + }; + }; + /** + * Get a GitHub Pages site + * @description Gets information about a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/get-pages": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["page"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update information about a GitHub Pages site + * @description Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/update-information-about-pages-site": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Specify a custom domain for the repository. Sending a `null` value will remove the custom domain. For more about custom domains, see "[Using a custom domain with GitHub Pages](https://docs.github.com/articles/using-a-custom-domain-with-github-pages/)." */ + cname?: string | null; + /** @description Specify whether HTTPS should be enforced for the repository. */ + https_enforced?: boolean; + /** + * @description The process by which the GitHub Pages site will be built. `workflow` means that the site is built by a custom GitHub Actions workflow. `legacy` means that the site is built by GitHub when changes are pushed to a specific branch. + * @enum {string} + */ + build_type?: "legacy" | "workflow"; + source?: + | ("gh-pages" | "master" | "master /docs") + | { + /** @description The repository branch used to publish your site's source files. */ + branch: string; + /** + * @description The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. + * @enum {string} + */ + path: "/" | "/docs"; + }; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 400: components["responses"]["bad_request"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a GitHub Pages site + * @description Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-pages-site": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The process in which the Page will be built. Possible values are `"legacy"` and `"workflow"`. + * @enum {string} + */ + build_type?: "legacy" | "workflow"; + /** @description The source branch and directory used to publish your Pages site. */ + source?: { + /** @description The repository branch used to publish your site's source files. */ + branch: string; + /** + * @description The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. Default: `/` + * @default / + * @enum {string} + */ + path?: "/" | "/docs"; + }; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["page"]; + }; + }; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a GitHub Pages site + * @description Deletes a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/delete-pages-site": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List GitHub Pages builds + * @description Lists builts of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/list-pages-builds": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["page-build"][]; + }; + }; + }; + }; + /** + * Request a GitHub Pages build + * @description You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + */ + "repos/request-pages-build": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["page-build-status"]; + }; + }; + }; + }; + /** + * Get latest Pages build + * @description Gets information about the single most recent build of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/get-latest-pages-build": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["page-build"]; + }; + }; + }; + }; + /** + * Get GitHub Pages build + * @description Gets information about a GitHub Pages build. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/get-pages-build": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + build_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["page-build"]; + }; + }; + }; + }; + /** + * Create a GitHub Pages deployment + * @description Create a GitHub Pages deployment for a repository. + * + * The authenticated user must have write permission to the repository. + */ + "repos/create-pages-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The ID of an artifact that contains the .zip or .tar of static assets to deploy. The artifact belongs to the repository. Either `artifact_id` or `artifact_url` are required. */ + artifact_id?: number; + /** @description The URL of an artifact that contains the .zip or .tar of static assets to deploy. The artifact belongs to the repository. Either `artifact_id` or `artifact_url` are required. */ + artifact_url?: string; + /** + * @description The target environment for this GitHub Pages deployment. + * @default github-pages + */ + environment?: string; + /** + * @description A unique string that represents the version of the build for this deployment. + * @default GITHUB_SHA + */ + pages_build_version: string; + /** @description The OIDC token issued by GitHub Actions certifying the origin of the deployment. */ + oidc_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["page-deployment"]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get the status of a GitHub Pages deployment + * @description Gets the current status of a GitHub Pages deployment. + * + * The authenticated user must have read permission for the GitHub Pages site. + */ + "repos/get-pages-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pages_deployment_id: components["parameters"]["pages-deployment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pages-deployment-status"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Cancel a GitHub Pages deployment + * @description Cancels a GitHub Pages deployment. + * + * The authenticated user must have write permissions for the GitHub Pages site. + */ + "repos/cancel-pages-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pages_deployment_id: components["parameters"]["pages-deployment-id"]; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a DNS health check for GitHub Pages + * @description Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages. + * + * The first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response. + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/get-pages-health-check": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pages-health-check"]; + }; + }; + /** @description Empty response */ + 202: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Custom domains are not available for GitHub Pages */ + 400: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description There isn't a CNAME for this page */ + 422: { + content: never; + }; + }; + }; + /** + * Enable private vulnerability reporting for a repository + * @description Enables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)." + */ + "repos/enable-private-vulnerability-reporting": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 422: components["responses"]["bad_request"]; + }; + }; + /** + * Disable private vulnerability reporting for a repository + * @description Disables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)". + */ + "repos/disable-private-vulnerability-reporting": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 422: components["responses"]["bad_request"]; + }; + }; + /** + * List repository projects + * @description Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/list-for-repo": { + parameters: { + query?: { + /** @description Indicates the state of the projects to return. */ + state?: "open" | "closed" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Create a repository project + * @description Creates a repository project board. Returns a `410 Gone` status if projects are disabled in the repository or if the repository does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/create-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the project. */ + name: string; + /** @description The description of the project. */ + body?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get all custom property values for a repository + * @description Gets all custom property values that are set for a repository. + * Users with read access to the repository can use this endpoint. + */ + "repos/get-custom-properties-values": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["custom-property-value"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update custom property values for a repository + * @description Create new or update existing custom property values for a repository. + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * Repository admins and other users with the repository-level "edit custom property values" fine-grained permission can use this endpoint. + */ + "repos/create-or-update-custom-properties-values": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A list of custom property names and associated values to apply to the repositories. */ + properties: components["schemas"]["custom-property-value"][]; + }; + }; + }; + responses: { + /** @description No Content when custom property values are successfully created or updated */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List pull requests + * @description Lists pull requests in a specified repository. + * + * Draft pull requests are available in public repositories with GitHub + * Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing + * plans, and in public and private repositories with GitHub Team and GitHub Enterprise + * Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + * in the GitHub Help documentation. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + * - **`application/vnd.github.patch`**: For more information, see "[git-format-patch](https://git-scm.com/docs/git-format-patch)" in the Git documentation. + */ + "pulls/list": { + parameters: { + query?: { + /** @description Either `open`, `closed`, or `all` to filter by state. */ + state?: "open" | "closed" | "all"; + /** @description Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`. */ + head?: string; + /** @description Filter pulls by base branch name. Example: `gh-pages`. */ + base?: string; + /** @description What to sort results by. `popularity` will sort by the number of comments. `long-running` will sort by date created and will limit the results to pull requests that have been open for more than a month and have had activity within the past month. */ + sort?: "created" | "updated" | "popularity" | "long-running"; + /** @description The direction of the sort. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + "pulls/create": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the new pull request. Required unless `issue` is specified. */ + title?: string; + /** @description The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head` with a user like this: `username:branch`. */ + head: string; + /** + * Format: repo.nwo + * @description The name of the repository where the changes in the pull request were made. This field is required for cross-repository pull requests if both repositories are owned by the same organization. + * @example octo-org/octo-repo + */ + head_repo?: string; + /** @description The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. */ + base: string; + /** @description The contents of the pull request. */ + body?: string; + /** @description Indicates whether [maintainers can modify](https://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. */ + maintainer_can_modify?: boolean; + /** @description Indicates whether the pull request is a draft. See "[Draft Pull Requests](https://docs.github.com/articles/about-pull-requests#draft-pull-requests)" in the GitHub Help documentation to learn more. */ + draft?: boolean; + /** + * Format: int64 + * @description An issue in the repository to convert to a pull request. The issue title, body, and comments will become the title, body, and comments on the new pull request. Required unless `title` is specified. + * @example 1 + */ + issue?: number; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/1347 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["pull-request"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List review comments in a repository + * @description Lists review comments for all pull requests in a repository. By default, + * review comments are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-review-comments-for-repo": { + parameters: { + query?: { + sort?: "created" | "updated" | "created_at"; + /** @description The direction to sort results. Ignored without `sort` parameter. */ + direction?: "asc" | "desc"; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"][]; + }; + }; + }; + }; + /** + * Get a review comment for a pull request + * @description Provides details for a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/get-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a review comment for a pull request + * @description Deletes a review comment. + */ + "pulls/delete-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a review comment for a pull request + * @description Edits the content of a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/update-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The text of the reply to the review comment. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + }; + }; + /** + * List reactions for a pull request review comment + * @description List the reactions to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + "reactions/list-for-pull-request-review-comment": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a pull request review comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create reaction for a pull request review comment + * @description Create a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment. + */ + "reactions/create-for-pull-request-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the pull request review comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a pull request comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + * + * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + "reactions/delete-for-pull-request-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists details of a pull request by providing its number. + * + * When you get, [create](https://docs.github.com/rest/pulls/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/pulls/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + * + * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + * + * * If merged as a [merge commit](https://docs.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://docs.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://docs.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + "pulls/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. */ + 200: { + content: { + "application/json": components["schemas"]["pull-request"]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Update a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + "pulls/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The title of the pull request. */ + title?: string; + /** @description The contents of the pull request. */ + body?: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state?: "open" | "closed"; + /** @description The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository. */ + base?: string; + /** @description Indicates whether [maintainers can modify](https://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. */ + maintainer_can_modify?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a codespace from a pull request + * @description Creates a codespace owned by the authenticated user for the specified pull request. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/create-with-pr-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided. */ + location?: string; + /** + * @description The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is being deprecated. + * @enum {string} + */ + geo?: "EuropeWest" | "SoutheastAsia" | "UsEast" | "UsWest"; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Whether to authorize requested permissions from devcontainer.json */ + multi_repo_permissions_opt_out?: boolean; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). */ + retention_period_minutes?: number; + } | null; + }; + }; + responses: { + /** @description Response when the codespace was successfully created */ + 201: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + /** @description Response when the codespace creation partially failed but is being retried in the background */ + 202: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List review comments on a pull request + * @description Lists all review comments for a specified pull request. By default, review comments + * are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-review-comments": { + parameters: { + query?: { + sort?: components["parameters"]["sort"]; + /** @description The direction to sort results. Ignored without `sort` parameter. */ + direction?: "asc" | "desc"; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"][]; + }; + }; + }; + }; + /** + * Create a review comment for a pull request + * @description Creates a review comment on the diff of a specified pull request. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/issues/comments#create-an-issue-comment)." + * + * If your comment applies to more than one line in the pull request diff, you should use the parameters `line`, `side`, and optionally `start_line` and `start_side` in your request. + * + * The `position` parameter is deprecated. If you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/create-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The text of the review comment. */ + body: string; + /** @description The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. */ + commit_id: string; + /** @description The relative path to the file that necessitates a comment. */ + path: string; + /** + * @deprecated + * @description **This parameter is deprecated. Use `line` instead**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + */ + position?: number; + /** + * @description In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://docs.github.com/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + * @enum {string} + */ + side?: "LEFT" | "RIGHT"; + /** @description **Required unless using `subject_type:file`**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. */ + line?: number; + /** @description **Required when using multi-line comments unless using `in_reply_to`**. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://docs.github.com/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. */ + start_line?: number; + /** + * @description **Required when using multi-line comments unless using `in_reply_to`**. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://docs.github.com/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + * @enum {string} + */ + start_side?: "LEFT" | "RIGHT" | "side"; + /** + * @description The ID of the review comment to reply to. To find the ID of a review comment with ["List review comments on a pull request"](#list-review-comments-on-a-pull-request). When specified, all parameters other than `body` in the request body are ignored. + * @example 2 + */ + in_reply_to?: number; + /** + * @description The level at which the comment is targeted. + * @enum {string} + */ + subject_type?: "line" | "file"; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a reply for a review comment + * @description Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/create-reply-for-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The text of the review comment. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List commits on a pull request + * @description Lists a maximum of 250 commits for a pull request. To receive a complete + * commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/commits/commits#list-commits) + * endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + "pulls/list-commits": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["commit"][]; + }; + }; + }; + }; + /** + * List pull requests files + * @description Lists the files in a specified pull request. + * + * **Note:** Responses include a maximum of 3000 files. The paginated response + * returns 30 files per page by default. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + "pulls/list-files": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["diff-entry"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Check if a pull request has been merged + * @description Checks if a pull request has been merged into the base branch. The HTTP status of the response indicates whether or not the pull request has been merged; the response body is empty. + */ + "pulls/check-if-merged": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response if pull request has been merged */ + 204: { + content: never; + }; + /** @description Not Found if pull request has not been merged */ + 404: { + content: never; + }; + }; + }; + /** + * Merge a pull request + * @description Merges a pull request into the base branch. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + "pulls/merge": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Title for the automatic commit message. */ + commit_title?: string; + /** @description Extra detail to append to automatic commit message. */ + commit_message?: string; + /** @description SHA that pull request head must match to allow merge. */ + sha?: string; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method?: "merge" | "squash" | "rebase"; + } | null; + }; + }; + responses: { + /** @description if merge was successful */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-merge-result"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Method Not Allowed if merge cannot be performed */ + 405: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + /** @description Conflict if sha was provided and pull request head did not match */ + 409: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all requested reviewers for a pull request + * @description Gets the users or teams whose review is requested for a pull request. Once a requested reviewer submits a review, they are no longer considered a requested reviewer. Their review will instead be returned by the [List reviews for a pull request](https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request) operation. + */ + "pulls/list-requested-reviewers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-review-request"]; + }; + }; + }; + }; + /** + * Request reviewers for a pull request + * @description This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + "pulls/request-reviewers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description An array of user `login`s that will be requested. */ + reviewers?: string[]; + /** @description An array of team `slug`s that will be requested. */ + team_reviewers?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["pull-request-simple"]; + }; + }; + 403: components["responses"]["forbidden"]; + /** @description Unprocessable Entity if user is not a collaborator */ + 422: { + content: never; + }; + }; + }; + /** + * Remove requested reviewers from a pull request + * @description Removes review requests from a pull request for a given set of users and/or teams. + */ + "pulls/remove-requested-reviewers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of user `login`s that will be removed. */ + reviewers: string[]; + /** @description An array of team `slug`s that will be removed. */ + team_reviewers?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-simple"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List reviews for a pull request + * @description Lists all reviews for a specified pull request. The list of reviews returns in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-reviews": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description The list of reviews returns in chronological order. */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-review"][]; + }; + }; + }; + }; + /** + * Create a review for a pull request + * @description Creates a review on a specified pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Pull request reviews created in the `PENDING` state are not submitted and therefore do not include the `submitted_at` property in the response. To create a pending review for a pull request, leave the `event` parameter blank. For more information about submitting a `PENDING` review, see "[Submit a review for a pull request](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request)." + * + * **Note:** To comment on a specific line in a file, you need to first determine the position of that line in the diff. To see a pull request diff, add the `application/vnd.github.v3.diff` media type to the `Accept` header of a call to the [Get a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) endpoint. + * + * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/create-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value. */ + commit_id?: string; + /** @description **Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review. */ + body?: string; + /** + * @description The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request) when you are ready. + * @enum {string} + */ + event?: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + /** @description Use the following table to specify the location, destination, and contents of the draft review comment. */ + comments?: { + /** @description The relative path to the file that necessitates a review comment. */ + path: string; + /** @description The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. */ + position?: number; + /** @description Text of the review comment. */ + body: string; + /** @example 28 */ + line?: number; + /** @example RIGHT */ + side?: string; + /** @example 26 */ + start_line?: number; + /** @example LEFT */ + start_side?: string; + }[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get a review for a pull request + * @description Retrieves a pull request review by its ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/get-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a review for a pull request + * @description Updates the contents of a specified review summary comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/update-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The body text of the pull request review. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Delete a pending review for a pull request + * @description Deletes a pull request review that has not been submitted. Submitted reviews cannot be deleted. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/delete-pending-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List comments for a pull request review + * @description Lists comments for a specific pull request review. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-comments-for-review": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["review-comment"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Dismiss a review for a pull request + * @description Dismisses a specified review on a pull request. + * + * **Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/branches/branch-protection), + * you must be a repository administrator or be included in the list of people or teams + * who can dismiss pull request reviews. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/dismiss-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The message for the pull request review dismissal */ + message: string; + /** + * @example "DISMISS" + * @enum {string} + */ + event?: "DISMISS"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Submit a review for a pull request + * @description Submits a pending review for a pull request. For more information about creating a pending review for a pull request, see "[Create a review for a pull request](https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/submit-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The body text of the pull request review */ + body?: string; + /** + * @description The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action. + * @enum {string} + */ + event: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Update a pull request branch + * @description Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. + */ + "pulls/update-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a `422 Unprocessable Entity` status. You can use the "[List commits](https://docs.github.com/rest/commits/commits#list-commits)" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref. */ + expected_head_sha?: string; + } | null; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": { + message?: string; + url?: string; + }; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a repository README + * @description Gets the preferred README for a repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + "repos/get-readme": { + parameters: { + query?: { + /** @description The name of the commit/branch/tag. Default: the repository’s default branch. */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["content-file"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a repository README for a directory + * @description Gets the README from a repository directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + "repos/get-readme-in-directory": { + parameters: { + query?: { + /** @description The name of the commit/branch/tag. Default: the repository’s default branch. */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The alternate path to look for a README file */ + dir: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["content-file"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List releases + * @description This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/repos/repos#list-repository-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + */ + "repos/list-releases": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["release"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a release + * @description Users with push access to the repository can create a release. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + "repos/create-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the tag. */ + tag_name: string; + /** @description Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch. */ + target_commitish?: string; + /** @description The name of the release. */ + name?: string; + /** @description Text describing the contents of the tag. */ + body?: string; + /** + * @description `true` to create a draft (unpublished) release, `false` to create a published one. + * @default false + */ + draft?: boolean; + /** + * @description `true` to identify the release as a prerelease. `false` to identify the release as a full release. + * @default false + */ + prerelease?: boolean; + /** @description If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see "[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository)." */ + discussion_category_name?: string; + /** + * @description Whether to automatically generate the name and body for this release. If `name` is specified, the specified name will be used; otherwise, a name will be automatically generated. If `body` is specified, the body will be pre-pended to the automatically generated notes. + * @default false + */ + generate_release_notes?: boolean; + /** + * @description Specifies whether this release should be set as the latest release for the repository. Drafts and prereleases cannot be set as latest. Defaults to `true` for newly published releases. `legacy` specifies that the latest release should be determined based on the release creation date and higher semantic version. + * @default true + * @enum {string} + */ + make_latest?: "true" | "false" | "legacy"; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/releases/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["release"]; + }; + }; + /** @description Not Found if the discussion category name is invalid */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a release asset + * @description To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. + */ + "repos/get-release-asset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + asset_id: components["parameters"]["asset-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release-asset"]; + }; + }; + 302: components["responses"]["found"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a release asset */ + "repos/delete-release-asset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + asset_id: components["parameters"]["asset-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a release asset + * @description Users with push access to the repository can edit a release asset. + */ + "repos/update-release-asset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + asset_id: components["parameters"]["asset-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The file name of the asset. */ + name?: string; + /** @description An alternate short description of the asset. Used in place of the filename. */ + label?: string; + /** @example "uploaded" */ + state?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release-asset"]; + }; + }; + }; + }; + /** + * Generate release notes content for a release + * @description Generate a name and body describing a [release](https://docs.github.com/rest/releases/releases#get-a-release). The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release. + */ + "repos/generate-release-notes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The tag name for the release. This can be an existing tag or a new one. */ + tag_name: string; + /** @description Specifies the commitish value that will be the target for the release's tag. Required if the supplied tag_name does not reference an existing tag. Ignored if the tag_name already exists. */ + target_commitish?: string; + /** @description The name of the previous tag to use as the starting point for the release notes. Use to manually specify the range for the set of changes considered as part this release. */ + previous_tag_name?: string; + /** @description Specifies a path to a file in the repository containing configuration settings used for generating the release notes. If unspecified, the configuration file located in the repository at '.github/release.yml' or '.github/release.yaml' will be used. If that is not present, the default configuration will be used. */ + configuration_file_path?: string; + }; + }; + }; + responses: { + /** @description Name and body of generated release notes */ + 200: { + content: { + "application/json": components["schemas"]["release-notes-content"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get the latest release + * @description View the latest published full release for the repository. + * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + */ + "repos/get-latest-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + }; + }; + /** + * Get a release by tag name + * @description Get a published release with the specified tag. + */ + "repos/get-release-by-tag": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description tag parameter */ + tag: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a release + * @description Gets a public release with the specified release ID. + * + * **Note:** This returns an `upload_url` key corresponding to the endpoint + * for uploading release assets. This key is a hypermedia resource. For more information, see + * "[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + */ + "repos/get-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** @description **Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource. For more information, see "[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: never; + }; + }; + }; + /** + * Delete a release + * @description Users with push access to the repository can delete a release. + */ + "repos/delete-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a release + * @description Users with push access to the repository can edit a release. + */ + "repos/update-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the tag. */ + tag_name?: string; + /** @description Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch. */ + target_commitish?: string; + /** @description The name of the release. */ + name?: string; + /** @description Text describing the contents of the tag. */ + body?: string; + /** @description `true` makes the release a draft, and `false` publishes the release. */ + draft?: boolean; + /** @description `true` to identify the release as a prerelease, `false` to identify the release as a full release. */ + prerelease?: boolean; + /** + * @description Specifies whether this release should be set as the latest release for the repository. Drafts and prereleases cannot be set as latest. Defaults to `true` for newly published releases. `legacy` specifies that the latest release should be determined based on the release creation date and higher semantic version. + * @default true + * @enum {string} + */ + make_latest?: "true" | "false" | "legacy"; + /** @description If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. If there is already a discussion linked to the release, this parameter is ignored. For more information, see "[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository)." */ + discussion_category_name?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + /** @description Not Found if the discussion category name is invalid */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** List release assets */ + "repos/list-release-assets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["release-asset"][]; + }; + }; + }; + }; + /** + * Upload a release asset + * @description This endpoint makes use of a [Hypermedia relation](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in + * the response of the [Create a release endpoint](https://docs.github.com/rest/releases/releases#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, + * you'll still need to pass your authentication to be able to upload an asset. + * + * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. + * + * **Notes:** + * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List release assets](https://docs.github.com/rest/releases/assets#list-release-assets)" + * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * * To find the `release_id` query the [`GET /repos/{owner}/{repo}/releases/latest` endpoint](https://docs.github.com/rest/releases/releases#get-the-latest-release). + * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. + */ + "repos/upload-release-asset": { + parameters: { + query: { + name: string; + label?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + requestBody?: { + content: { + "application/octet-stream": string; + }; + }; + responses: { + /** @description Response for successful upload */ + 201: { + content: { + "application/json": components["schemas"]["release-asset"]; + }; + }; + /** @description Response if you upload an asset with the same filename as another uploaded asset */ + 422: { + content: never; + }; + }; + }; + /** + * List reactions for a release + * @description List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + "reactions/list-for-release": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a release. */ + content?: "+1" | "laugh" | "heart" | "hooray" | "rocket" | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create reaction for a release + * @description Create a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). A response with a `Status: 200 OK` means that you already added the reaction type to this release. + */ + "reactions/create-for-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the release. + * @enum {string} + */ + content: "+1" | "laugh" | "heart" | "hooray" | "rocket" | "eyes"; + }; + }; + }; + responses: { + /** @description Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a release reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id`. + * + * Delete a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + "reactions/delete-for-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get rules for a branch + * @description Returns all active rules that apply to the specified branch. The branch does not need to exist; rules that would apply + * to a branch with that name will be returned. All active rules that apply will be returned, regardless of the level + * at which they are configured (e.g. repository or organization). Rules in rulesets with "evaluate" or "disabled" + * enforcement statuses are not returned. + */ + "repos/get-branch-rules": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-rule-detailed"][]; + }; + }; + }; + }; + /** + * Get all repository rulesets + * @description Get all the rulesets for a repository. + */ + "repos/get-repo-rulesets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Include rulesets configured at higher levels that apply to this repository */ + includes_parents?: boolean; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"][]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create a repository ruleset + * @description Create a ruleset for a repository. + */ + "repos/create-repo-ruleset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + /** @description Request body */ + requestBody: { + content: { + "application/json": { + /** @description The name of the ruleset. */ + name: string; + /** + * @description The target of the ruleset. + * @enum {string} + */ + target?: "branch" | "tag"; + enforcement: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + conditions?: components["schemas"]["repository-ruleset-conditions"]; + /** @description An array of rules within the ruleset. */ + rules?: components["schemas"]["repository-rule"][]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List repository rule suites + * @description Lists suites of rule evaluations at the repository level. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + "repos/get-repo-rule-suites": { + parameters: { + query?: { + ref?: components["parameters"]["ref-in-query"]; + time_period?: components["parameters"]["time-period"]; + actor_name?: components["parameters"]["actor-name-in-query"]; + rule_suite_result?: components["parameters"]["rule-suite-result"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["rule-suites"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get a repository rule suite + * @description Gets information about a suite of rule evaluations from within a repository. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + "repos/get-repo-rule-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + rule_suite_id: components["parameters"]["rule-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["rule-suite"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get a repository ruleset + * @description Get a ruleset for a repository. + */ + "repos/get-repo-ruleset": { + parameters: { + query?: { + /** @description Include rulesets configured at higher levels that apply to this repository */ + includes_parents?: boolean; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update a repository ruleset + * @description Update a ruleset for a repository. + */ + "repos/update-repo-ruleset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + /** @description Request body */ + requestBody?: { + content: { + "application/json": { + /** @description The name of the ruleset. */ + name?: string; + /** + * @description The target of the ruleset. + * @enum {string} + */ + target?: "branch" | "tag"; + enforcement?: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + conditions?: components["schemas"]["repository-ruleset-conditions"]; + /** @description An array of rules within the ruleset. */ + rules?: components["schemas"]["repository-rule"][]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Delete a repository ruleset + * @description Delete a ruleset for a repository. + */ + "repos/delete-repo-ruleset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List secret scanning alerts for a repository + * @description Lists secret scanning alerts for an eligible repository, from newest to oldest. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/list-alerts-for-repo": { + parameters: { + query?: { + state?: components["parameters"]["secret-scanning-alert-state"]; + secret_type?: components["parameters"]["secret-scanning-alert-secret-type"]; + resolution?: components["parameters"]["secret-scanning-alert-resolution"]; + sort?: components["parameters"]["secret-scanning-alert-sort"]; + direction?: components["parameters"]["direction"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + before?: components["parameters"]["secret-scanning-pagination-before-org-repo"]; + after?: components["parameters"]["secret-scanning-pagination-after-org-repo"]; + validity?: components["parameters"]["secret-scanning-alert-validity"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["secret-scanning-alert"][]; + }; + }; + /** @description Repository is public or secret scanning is disabled for the repository */ + 404: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a secret scanning alert + * @description Gets a single secret scanning alert detected in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/get-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["secret-scanning-alert"]; + }; + }; + 304: components["responses"]["not_modified"]; + /** @description Repository is public, or secret scanning is disabled for the repository, or the resource is not found */ + 404: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Update a secret scanning alert + * @description Updates the status of a secret scanning alert in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/update-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + state: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + resolution_comment?: components["schemas"]["secret-scanning-alert-resolution-comment"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["secret-scanning-alert"]; + }; + }; + /** @description Bad request, resolution comment is invalid or the resolution was not changed. */ + 400: { + content: never; + }; + /** @description Repository is public, or secret scanning is disabled for the repository, or the resource is not found */ + 404: { + content: never; + }; + /** @description State does not match the resolution or resolution comment */ + 422: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List locations for a secret scanning alert + * @description Lists all locations for a given secret scanning alert for an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/list-locations-for-alert": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["secret-scanning-location"][]; + }; + }; + /** @description Repository is public, or secret scanning is disabled for the repository, or the resource is not found */ + 404: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List repository security advisories + * @description Lists security advisories in a repository. + * + * The authenticated user can access unpublished security advisories from a repository if they are a security manager or administrator of that repository, or if they are a collaborator on any security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + "security-advisories/list-repository-advisories": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "published"; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + /** @description The number of advisories to return per page. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + /** @description Filter by state of the repository advisories. Only advisories of this state will be returned. */ + state?: "triage" | "draft" | "published" | "closed"; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-advisory"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a repository security advisory + * @description Creates a new repository security advisory. + * + * In order to create a draft repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + "security-advisories/create-repository-advisory": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["repository-advisory-create"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["repository-advisory"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Privately report a security vulnerability + * @description Report a security vulnerability to the maintainers of the repository. + * See "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)" for more information about private vulnerability reporting. + */ + "security-advisories/create-private-vulnerability-report": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["private-vulnerability-report-create"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["repository-advisory"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a repository security advisory + * @description Get a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * Anyone can access any published security advisory on a public repository. + * + * The authenticated user can access an unpublished security advisory from a repository if they are a security manager or administrator of that repository, or if they are a + * collaborator on the security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + "security-advisories/get-repository-advisory": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-advisory"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a repository security advisory + * @description Update a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * In order to update any security advisory, the authenticated user must be a security manager or administrator of that repository, + * or a collaborator on the repository security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + "security-advisories/update-repository-advisory": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["repository-advisory-update"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-advisory"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Validation failed, or the endpoint has been spammed. */ + 422: { + content: { + "application/json": components["schemas"]["validation-error"]; + }; + }; + }; + }; + /** + * Request a CVE for a repository security advisory + * @description If you want a CVE identification number for the security vulnerability in your project, and don't already have one, you can request a CVE identification number from GitHub. For more information see "[Requesting a CVE identification number](https://docs.github.com/code-security/security-advisories/repository-security-advisories/publishing-a-repository-security-advisory#requesting-a-cve-identification-number-optional)." + * + * You may request a CVE for public repositories, but cannot do so for private repositories. + * + * In order to request a CVE for a repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + "security-advisories/create-repository-advisory-cve-request": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a temporary private fork + * @description Create a temporary private fork to collaborate on fixing a security vulnerability in your repository. + * + * **Note**: Forking a repository happens asynchronously. You may have to wait up to 5 minutes before you can access the fork. + */ + "security-advisories/create-fork": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List stargazers + * @description Lists the people that have starred the repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + "activity/list-stargazers-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": + | components["schemas"]["simple-user"][] + | components["schemas"]["stargazer"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get the weekly commit activity + * @description + * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. + * + * **Note:** This endpoint can only be used for repositories with fewer than 10,000 commits. If the repository contains + * 10,000 or more commits, a 422 status code will be returned. + */ + "repos/get-code-frequency-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Returns a weekly aggregate of the number of additions and deletions pushed to a repository. */ + 200: { + content: { + "application/json": components["schemas"]["code-frequency-stat"][]; + }; + }; + 202: components["responses"]["accepted"]; + 204: components["responses"]["no_content"]; + /** @description Repository contains more than 10,000 commits */ + 422: { + content: never; + }; + }; + }; + /** + * Get the last year of commit activity + * @description Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. + */ + "repos/get-commit-activity-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-activity"][]; + }; + }; + 202: components["responses"]["accepted"]; + 204: components["responses"]["no_content"]; + }; + }; + /** + * Get all contributor commit activity + * @description + * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: + * + * * `w` - Start of the week, given as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + * + * **Note:** This endpoint will return `0` values for all addition and deletion counts in repositories with 10,000 or more commits. + */ + "repos/get-contributors-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["contributor-activity"][]; + }; + }; + 202: components["responses"]["accepted"]; + 204: components["responses"]["no_content"]; + }; + }; + /** + * Get the weekly commit count + * @description Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + * + * The array order is oldest week (index 0) to most recent week. + * + * The most recent week is seven days ago at UTC midnight to today at UTC midnight. + */ + "repos/get-participation-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description The array order is oldest week (index 0) to most recent week. */ + 200: { + content: { + "application/json": components["schemas"]["participation-stats"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get the hourly commit count for each day + * @description Each array contains the day number, hour number, and number of commits: + * + * * `0-6`: Sunday - Saturday + * * `0-23`: Hour of day + * * Number of commits + * + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + "repos/get-punch-card-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. */ + 200: { + content: { + "application/json": components["schemas"]["code-frequency-stat"][]; + }; + }; + 204: components["responses"]["no_content"]; + }; + }; + /** + * Create a commit status + * @description Users with push access in a repository can create commit statuses for a given SHA. + * + * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + */ + "repos/create-commit-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + sha: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state of the status. + * @enum {string} + */ + state: "error" | "failure" | "pending" | "success"; + /** + * @description The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status. + * For example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: + * `http://ci.example.com/user/repo/build/sha` + */ + target_url?: string | null; + /** @description A short description of the status. */ + description?: string | null; + /** + * @description A string label to differentiate this status from the status of other systems. This field is case-insensitive. + * @default default + */ + context?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["status"]; + }; + }; + }; + }; + /** + * List watchers + * @description Lists the people watching the specified repository. + */ + "activity/list-watchers-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Get a repository subscription + * @description Gets information about whether the authenticated user is subscribed to the repository. + */ + "activity/get-repo-subscription": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description if you subscribe to the repository */ + 200: { + content: { + "application/json": components["schemas"]["repository-subscription"]; + }; + }; + 403: components["responses"]["forbidden"]; + /** @description Not Found if you don't subscribe to the repository */ + 404: { + content: never; + }; + }; + }; + /** + * Set a repository subscription + * @description If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/activity/watching#delete-a-repository-subscription) completely. + */ + "activity/set-repo-subscription": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Determines if notifications should be received from this repository. */ + subscribed?: boolean; + /** @description Determines if all notifications should be blocked from this repository. */ + ignored?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-subscription"]; + }; + }; + }; + }; + /** + * Delete a repository subscription + * @description This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/activity/watching#set-a-repository-subscription). + */ + "activity/delete-repo-subscription": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** List repository tags */ + "repos/list-tags": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["tag"][]; + }; + }; + }; + }; + /** + * List tag protection states for a repository + * @description This returns the tag protection states of a repository. + * + * This information is only available to repository administrators. + */ + "repos/list-tag-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["tag-protection"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a tag protection state for a repository + * @description This creates a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + "repos/create-tag-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An optional glob pattern to match against when enforcing tag protection. */ + pattern: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["tag-protection"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a tag protection state for a repository + * @description This deletes a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + "repos/delete-tag-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + tag_protection_id: components["parameters"]["tag-protection-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Download a repository archive (tar) + * @description Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + "repos/download-tarball-archive": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: string; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * List repository teams + * @description Lists the teams that have access to the specified repository and that are also visible to the authenticated user. + * + * For a public repository, a team is listed only if that team added the public repository explicitly. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to use this endpoint with a public repository, and `repo` scope to use this endpoint with a private repository. + */ + "repos/list-teams": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Get all repository topics */ + "repos/get-all-topics": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["topic"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Replace all repository topics */ + "repos/replace-all-topics": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of topics to add to the repository. Pass one or more topics to _replace_ the set of existing topics. Send an empty array (`[]`) to clear all topics from the repository. **Note:** Topic `names` cannot contain uppercase letters. */ + names: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["topic"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get repository clones + * @description Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + "repos/get-clones": { + parameters: { + query?: { + per?: components["parameters"]["per"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["clone-traffic"]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get top referral paths + * @description Get the top 10 popular contents over the last 14 days. + */ + "repos/get-top-paths": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["content-traffic"][]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get top referral sources + * @description Get the top 10 referrers over the last 14 days. + */ + "repos/get-top-referrers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["referrer-traffic"][]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get page views + * @description Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + "repos/get-views": { + parameters: { + query?: { + per?: components["parameters"]["per"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["view-traffic"]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Transfer a repository + * @description A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://docs.github.com/articles/about-repository-transfers/). + */ + "repos/transfer": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The username or organization name the repository will be transferred to. */ + new_owner: string; + /** @description The new name to be given to the repository. */ + new_name?: string; + /** @description ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories. */ + team_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["minimal-repository"]; + }; + }; + }; + }; + /** + * Check if vulnerability alerts are enabled for a repository + * @description Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin read access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + "repos/check-vulnerability-alerts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response if repository is enabled with vulnerability alerts */ + 204: { + content: never; + }; + /** @description Not Found if repository is not enabled with vulnerability alerts */ + 404: { + content: never; + }; + }; + }; + /** + * Enable vulnerability alerts + * @description Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + "repos/enable-vulnerability-alerts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Disable vulnerability alerts + * @description Disables dependency alerts and the dependency graph for a repository. + * The authenticated user must have admin access to the repository. For more information, + * see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + "repos/disable-vulnerability-alerts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Download a repository archive (zip) + * @description Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * + * **Note**: For private repositories, these links are temporary and expire after five minutes. If the repository is empty, you will receive a 404 when you follow the redirect. + */ + "repos/download-zipball-archive": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: string; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * Create a repository using a template + * @description Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. If the repository is not public, the authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + "repos/create-using-template": { + parameters: { + path: { + /** @description The account owner of the template repository. The name is not case sensitive. */ + template_owner: string; + /** @description The name of the template repository without the `.git` extension. The name is not case sensitive. */ + template_repo: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization. */ + owner?: string; + /** @description The name of the new repository. */ + name: string; + /** @description A short description of the new repository. */ + description?: string; + /** + * @description Set to `true` to include the directory structure and files from all branches in the template repository, and not just the default branch. Default: `false`. + * @default false + */ + include_all_branches?: boolean; + /** + * @description Either `true` to create a new private repository or `false` to create a new public one. + * @default false + */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + }; + }; + /** + * List public repositories + * @description Lists all public repositories in the order that they were created. + * + * Note: + * - For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise. + * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of repositories. + */ + "repos/list-public": { + parameters: { + query?: { + since?: components["parameters"]["since-repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + /** @example ; rel="next" */ + Link?: string; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List environment secrets + * @description Lists all secrets available in an environment without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-environment-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["actions-secret"][]; + }; + }; + }; + }; + }; + /** + * Get an environment public key + * @description Get the public key for an environment, which you need to encrypt environment + * secrets. You need to encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-environment-public-key": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + }; + /** + * Get an environment secret + * @description Gets a single environment secret without revealing its encrypted value. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-environment-secret": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-secret"]; + }; + }; + }; + }; + /** + * Create or update an environment secret + * @description Creates or updates an environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-or-update-environment-secret": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an environment public key](https://docs.github.com/rest/actions/secrets#get-an-environment-public-key) endpoint. */ + encrypted_value: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id: string; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete an environment secret + * @description Deletes a secret in an environment using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-environment-secret": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Default response */ + 204: { + content: never; + }; + }; + }; + /** + * List environment variables + * @description Lists all environment variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-environment-variables": { + parameters: { + query?: { + per_page?: components["parameters"]["variables-per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + variables: components["schemas"]["actions-variable"][]; + }; + }; + }; + }; + }; + /** + * Create an environment variable + * @description Create an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-environment-variable": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name: string; + /** @description The value of the variable. */ + value: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Get an environment variable + * @description Gets a specific variable in an environment. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-environment-variable": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-variable"]; + }; + }; + }; + }; + /** + * Delete an environment variable + * @description Deletes an environment variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-environment-variable": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + name: components["parameters"]["variable-name"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update an environment variable + * @description Updates an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/update-environment-variable": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + name: components["parameters"]["variable-name"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name?: string; + /** @description The value of the variable. */ + value?: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Search code + * @description Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: + * + * `q=addClass+in:file+language:js+repo:jquery/jquery` + * + * This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. + * + * Considerations for code search: + * + * Due to the complexity of searching code, there are a few restrictions on how searches are performed: + * + * * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * * Only files smaller than 384 KB are searchable. + * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing + * language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + * + * This endpoint requires you to authenticate and limits you to 10 requests per minute. + */ + "search/code": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching code](https://docs.github.com/search-github/searching-on-github/searching-code)" for a detailed list of qualifiers. */ + q: string; + /** + * @deprecated + * @description **This field is deprecated.** Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) + */ + sort?: "indexed"; + /** + * @deprecated + * @description **This field is deprecated.** Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["code-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Search commits + * @description Find commits via various criteria on the default branch (usually `main`). This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match + * metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + * + * `q=repo:octocat/Spoon-Knife+css` + */ + "search/commits": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching commits](https://docs.github.com/search-github/searching-on-github/searching-commits)" for a detailed list of qualifiers. */ + q: string; + /** @description Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: "author-date" | "committer-date"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["commit-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Search issues and pull requests + * @description Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted + * search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * `q=windows+label:bug+language:python+state:open&sort=created&order=asc` + * + * This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. + * + * **Note:** For requests made by GitHub Apps with a user access token, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + */ + "search/issues-and-pull-requests": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching issues and pull requests](https://docs.github.com/search-github/searching-on-github/searching-issues-and-pull-requests)" for a detailed list of qualifiers. */ + q: string; + /** @description Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: + | "comments" + | "reactions" + | "reactions-+1" + | "reactions--1" + | "reactions-smile" + | "reactions-thinking_face" + | "reactions-heart" + | "reactions-tada" + | "interactions" + | "created" + | "updated"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["issue-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Search labels + * @description Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + * + * `q=bug+defect+enhancement&repository_id=64778136` + * + * The labels that best match the query appear first in the search results. + */ + "search/labels": { + parameters: { + query: { + /** @description The id of the repository. */ + repository_id: number; + /** @description The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). */ + q: string; + /** @description Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: "created" | "updated"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["label-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Search repositories + * @description Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: + * + * `q=tetris+language:assembly&sort=stars&order=desc` + * + * This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. + */ + "search/repos": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching for repositories](https://docs.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. */ + q: string; + /** @description Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: "stars" | "forks" | "help-wanted-issues" | "updated"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["repo-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Search topics + * @description Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). See "[Searching topics](https://docs.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: + * + * `q=ruby+is:featured` + * + * This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + */ + "search/topics": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). */ + q: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["topic-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Search users + * @description Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for users, you can get text match metadata for the issue **login**, public **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you're looking for a list of popular users, you might try this query: + * + * `q=tom+repos:%3E42+followers:%3E1000` + * + * This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. + * + * This endpoint does not accept authentication and will only include publicly visible users. As an alternative, you can use the GraphQL API. The GraphQL API requires authentication and will return private users, including Enterprise Managed Users (EMUs), that you are authorized to view. For more information, see "[GraphQL Queries](https://docs.github.com/graphql/reference/queries#search)." + */ + "search/users": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching users](https://docs.github.com/search-github/searching-on-github/searching-users)" for a detailed list of qualifiers. */ + q: string; + /** @description Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: "followers" | "repositories" | "joined"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["user-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/teams/teams#get-a-team-by-name) endpoint. + */ + "teams/get-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/teams/teams#delete-a-team) endpoint. + * + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + */ + "teams/delete-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Update a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/teams/teams#update-a-team) endpoint. + * + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** With nested teams, the `privacy` for parent teams cannot be `secret`. + */ + "teams/update-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the team. */ + name: string; + /** @description The description of the team. */ + description?: string; + /** + * @description The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: + * **For a non-nested team:** + * * `secret` - only visible to organization owners and members of this team. + * * `closed` - visible to all members of this organization. + * **For a parent or child team:** + * * `closed` - visible to all members of this organization. + * @enum {string} + */ + privacy?: "secret" | "closed"; + /** + * @description The notification setting the team has chosen. Editing teams without specifying this parameter leaves `notification_setting` intact. The options are: + * * `notifications_enabled` - team members receive notifications when the team is @mentioned. + * * `notifications_disabled` - no one receives notifications. + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** + * @description **Deprecated**. The permission that new repositories will be added to the team with when none is specified. + * @default pull + * @enum {string} + */ + permission?: "pull" | "push" | "admin"; + /** @description The ID of a team to set as the parent team. */ + parent_team_id?: number | null; + }; + }; + }; + responses: { + /** @description Response when the updated information already exists */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List discussions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List discussions`](https://docs.github.com/rest/teams/discussions#list-discussions) endpoint. + * + * List all discussions on a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/list-discussions-legacy": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-discussion"][]; + }; + }; + }; + }; + /** + * Create a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create a discussion`](https://docs.github.com/rest/teams/discussions#create-a-discussion) endpoint. + * + * Creates a new discussion post on a team's page. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/create-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title: string; + /** @description The discussion post's body text. */ + body: string; + /** + * @description Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + * @default false + */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * Get a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion) endpoint. + * + * Get a specific discussion on a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/get-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * Delete a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Delete a discussion`](https://docs.github.com/rest/teams/discussions#delete-a-discussion) endpoint. + * + * Delete a discussion from a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/delete-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion](https://docs.github.com/rest/teams/discussions#update-a-discussion) endpoint. + * + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/update-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title?: string; + /** @description The discussion post's body text. */ + body?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * List discussion comments (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List discussion comments](https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments) endpoint. + * + * List all comments on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/list-discussion-comments-legacy": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-discussion-comment"][]; + }; + }; + }; + }; + /** + * Create a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Create a discussion comment](https://docs.github.com/rest/teams/discussion-comments#create-a-discussion-comment) endpoint. + * + * Creates a new comment on a team discussion. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/create-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * Get a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment) endpoint. + * + * Get a specific comment on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/get-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * Delete a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a discussion comment](https://docs.github.com/rest/teams/discussion-comments#delete-a-discussion-comment) endpoint. + * + * Deletes a comment on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/delete-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion comment](https://docs.github.com/rest/teams/discussion-comments#update-a-discussion-comment) endpoint. + * + * Edits the body text of a discussion comment. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/update-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * List reactions for a team discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment) endpoint. + * + * List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "reactions/list-for-team-discussion-comment-legacy": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create reaction for a team discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Create reaction for a team discussion comment](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment)" endpoint. + * + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/create-for-team-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the team discussion comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + }; + /** + * List reactions for a team discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion) endpoint. + * + * List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "reactions/list-for-team-discussion-legacy": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create reaction for a team discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion`](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion) endpoint. + * + * Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/create-for-team-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the team discussion. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + }; + /** + * List pending team invitations (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/teams/members#list-pending-team-invitations) endpoint. + * + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + "teams/list-pending-invitations-legacy": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + }; + }; + /** + * List team members (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/teams/members#list-team-members) endpoint. + * + * Team members will include the members of child teams. + */ + "teams/list-members-legacy": { + parameters: { + query?: { + /** @description Filters members returned by their role in the team. */ + role?: "member" | "maintainer" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get team member (Legacy) + * @deprecated + * @description The "Get team member" endpoint (described below) is deprecated. + * + * We recommend using the [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + "teams/get-member-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description if user is a member */ + 204: { + content: never; + }; + /** @description if user is not a member */ + 404: { + content: never; + }; + }; + }; + /** + * Add team member (Legacy) + * @deprecated + * @description The "Add team member" endpoint (described below) is deprecated. + * + * We recommend using the [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "teams/add-member-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + /** @description Not Found if team synchronization is set up */ + 404: { + content: never; + }; + /** @description Unprocessable Entity if you attempt to add an organization to a team or you attempt to add a user to a team when they are not a member of at least one other team in the same organization */ + 422: { + content: never; + }; + }; + }; + /** + * Remove team member (Legacy) + * @deprecated + * @description The "Remove team member" endpoint (described below) is deprecated. + * + * We recommend using the [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + "teams/remove-member-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Not Found if team synchronization is setup */ + 404: { + content: never; + }; + }; + }; + /** + * Get team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint. + * + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + */ + "teams/get-membership-for-user-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Add or update team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + */ + "teams/add-or-update-membership-for-user-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The role that this user should have in the team. + * @default member + * @enum {string} + */ + role?: "member" | "maintainer"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + /** @description Forbidden if team synchronization is set up */ + 403: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description Unprocessable Entity if you attempt to add an organization to a team */ + 422: { + content: never; + }; + }; + }; + /** + * Remove team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + "teams/remove-membership-for-user-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description if team synchronization is set up */ + 403: { + content: never; + }; + }; + }; + /** + * List team projects (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team projects`](https://docs.github.com/rest/teams/teams#list-team-projects) endpoint. + * + * Lists the organization projects for a team. + */ + "teams/list-projects-legacy": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-project"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check team permissions for a project (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a project](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-project) endpoint. + * + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + */ + "teams/check-permissions-for-project-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-project"]; + }; + }; + /** @description Not Found if project is not managed by this team */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team project permissions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team project permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-project-permissions) endpoint. + * + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + */ + "teams/add-or-update-project-permissions-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant to the team for this project. Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * @enum {string} + */ + permission?: "read" | "write" | "admin"; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Forbidden if the project is not owned by the organization */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove a project from a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a project from a team](https://docs.github.com/rest/teams/teams#remove-a-project-from-a-team) endpoint. + * + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. **Note:** This endpoint removes the project from the team, but does not delete it. + */ + "teams/remove-project-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List team repositories (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/teams/teams#list-team-repositories) endpoint. + */ + "teams/list-repos-legacy": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check team permissions for a repository (Legacy) + * @deprecated + * @description **Note**: Repositories inherited through a parent team will also be checked. + * + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository) endpoint. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + "teams/check-permissions-for-repo-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Alternative response with extra repository information */ + 200: { + content: { + "application/json": components["schemas"]["team-repository"]; + }; + }; + /** @description Response if repository is managed by this team */ + 204: { + content: never; + }; + /** @description Not Found if repository is not managed by this team */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team repository permissions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Add or update team repository permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions)" endpoint. + * + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "teams/add-or-update-repo-permissions-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant the team on this repository. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + * @enum {string} + */ + permission?: "pull" | "push" | "admin"; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove a repository from a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team) endpoint. + * + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team. + */ + "teams/remove-repo-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List child teams (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/teams/teams#list-child-teams) endpoint. + */ + "teams/list-child-legacy": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description if child teams exist */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information. + */ + "users/get-authenticated": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": + | components["schemas"]["private-user"] + | components["schemas"]["public-user"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Update the authenticated user + * @description **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API. + */ + "users/update-authenticated": { + requestBody?: { + content: { + "application/json": { + /** + * @description The new name of the user. + * @example Omar Jahandar + */ + name?: string; + /** + * @description The publicly visible email address of the user. + * @example omar@example.com + */ + email?: string; + /** + * @description The new blog URL of the user. + * @example blog.example.com + */ + blog?: string; + /** + * @description The new Twitter username of the user. + * @example therealomarj + */ + twitter_username?: string | null; + /** + * @description The new company of the user. + * @example Acme corporation + */ + company?: string; + /** + * @description The new location of the user. + * @example Berlin, Germany + */ + location?: string; + /** @description The new hiring availability of the user. */ + hireable?: boolean; + /** @description The new short biography of the user. */ + bio?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["private-user"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List users blocked by the authenticated user + * @description List the users you've blocked on your personal account. + */ + "users/list-blocked-by-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if a user is blocked by the authenticated user + * @description Returns a 204 if the given user is blocked by the authenticated user. Returns a 404 if the given user is not blocked by the authenticated user, or if the given user account has been identified as spam by GitHub. + */ + "users/check-blocked": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description If the user is blocked */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** @description If the user is not blocked */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Block a user + * @description Blocks the given user and returns a 204. If the authenticated user cannot block the given user a 422 is returned. + */ + "users/block": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Unblock a user + * @description Unblocks the given user and returns a 204. + */ + "users/unblock": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List codespaces for the authenticated user + * @description Lists the authenticated user's codespaces. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/list-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + repository_id?: components["parameters"]["repository-id-in-query"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create a codespace for the authenticated user + * @description Creates a new codespace, owned by the authenticated user. + * + * This endpoint requires either a `repository_id` OR a `pull_request` but not both. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/create-for-authenticated-user": { + requestBody: { + content: { + "application/json": OneOf< + [ + { + /** @description Repository id for this codespace */ + repository_id: number; + /** @description Git ref (typically a branch name) for this codespace */ + ref?: string; + /** @description The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided. */ + location?: string; + /** + * @description The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is being deprecated. + * @enum {string} + */ + geo?: "EuropeWest" | "SoutheastAsia" | "UsEast" | "UsWest"; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Whether to authorize requested permissions from devcontainer.json */ + multi_repo_permissions_opt_out?: boolean; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). */ + retention_period_minutes?: number; + }, + { + /** @description Pull request number for this codespace */ + pull_request: { + /** @description Pull request number */ + pull_request_number: number; + /** @description Repository id for this codespace */ + repository_id: number; + }; + /** @description The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided. */ + location?: string; + /** + * @description The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is being deprecated. + * @enum {string} + */ + geo?: "EuropeWest" | "SoutheastAsia" | "UsEast" | "UsWest"; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + }, + ] + >; + }; + }; + responses: { + /** @description Response when the codespace was successfully created */ + 201: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + /** @description Response when the codespace creation partially failed but is being retried in the background */ + 202: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List secrets for the authenticated user + * @description Lists all development environment secrets available for a user's codespaces without revealing their + * encrypted values. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/list-secrets-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["codespaces-secret"][]; + }; + }; + }; + }; + }; + /** + * Get public key for the authenticated user + * @description Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/get-public-key-for-authenticated-user": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-user-public-key"]; + }; + }; + }; + }; + /** + * Get a secret for the authenticated user + * @description Gets a development environment secret available to a user's codespaces without revealing its encrypted value. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/get-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-secret"]; + }; + }; + }; + }; + /** + * Create or update a secret for the authenticated user + * @description Creates or updates a development environment secret for a user's codespace with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/create-or-update-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get the public key for the authenticated user](https://docs.github.com/rest/codespaces/secrets#get-public-key-for-the-authenticated-user) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id: string; + /** @description An array of repository ids that can access the user secret. You can manage the list of selected repositories using the [List selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret), [Set selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#set-selected-repositories-for-a-user-secret), and [Remove a selected repository from a user secret](https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret) endpoints. */ + selected_repository_ids?: (number | string)[]; + }; + }; + }; + responses: { + /** @description Response after successfully creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response after successfully updating a secret */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a secret for the authenticated user + * @description Deletes a development environment secret from a user's codespaces using the secret name. Deleting the secret will remove access from all codespaces that were allowed to access the secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/delete-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories for a user secret + * @description List the repositories that have been granted the ability to use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/list-repositories-for-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Set selected repositories for a user secret + * @description Select the repositories that will use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/set-repositories-for-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids for which a codespace can access the secret. You can manage the list of selected repositories using the [List selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret), [Add a selected repository to a user secret](https://docs.github.com/rest/codespaces/secrets#add-a-selected-repository-to-a-user-secret), and [Remove a selected repository from a user secret](https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description No Content when repositories were added to the selected list */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Add a selected repository to a user secret + * @description Adds a repository to the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/add-repository-for-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was added to the selected list */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Remove a selected repository from a user secret + * @description Removes a repository from the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/remove-repository-for-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was removed from the selected list */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get a codespace for the authenticated user + * @description Gets information about a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/get-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Delete a codespace for the authenticated user + * @description Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/delete-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update a codespace for the authenticated user + * @description Updates a codespace owned by the authenticated user. Currently only the codespace's machine type and recent folders can be modified using this endpoint. + * + * If you specify a new machine type it will be applied the next time your codespace is started. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/update-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description A valid machine to transition this codespace to. */ + machine?: string; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Recently opened folders inside the codespace. It is currently used by the clients to determine the folder path to load the codespace in. */ + recent_folders?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Export a codespace for the authenticated user + * @description Triggers an export of the specified codespace and returns a URL and ID where the status of the export can be monitored. + * + * If changes cannot be pushed to the codespace's repository, they will be pushed to a new or previously-existing fork instead. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/export-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["codespace-export-details"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get details about a codespace export + * @description Gets information about an export of a codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/get-export-details-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + export_id: components["parameters"]["export-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace-export-details"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List machine types for a codespace + * @description List the machine types a codespace can transition to use. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/codespace-machines-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + machines: components["schemas"]["codespace-machine"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create a repository from an unpublished codespace + * @description Publishes an unpublished codespace, creating a new repository and assigning it to the codespace. + * + * The codespace's token is granted write permissions to the repository, allowing the user to push their changes. + * + * This will fail for a codespace that is already published, meaning it has an associated repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/publish-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A name for the new repository. */ + name?: string; + /** + * @description Whether the new repository should be private. + * @default false + */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["codespace-with-full-repository"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Start a codespace for the authenticated user + * @description Starts a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/start-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + /** @description Payment required */ + 402: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Stop a codespace for the authenticated user + * @description Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/stop-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get list of conflicting packages during Docker migration for authenticated-user + * @description Lists all packages that are owned by the authenticated user within the user's namespace, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + "packages/list-docker-migration-conflicting-packages-for-authenticated-user": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + }; + }; + /** + * Set primary email visibility for the authenticated user + * @description Sets the visibility for your primary email addresses. + */ + "users/set-primary-email-visibility-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Denotes whether an email is publicly visible. + * @enum {string} + */ + visibility: "public" | "private"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List email addresses for the authenticated user + * @description Lists all of your email addresses, and specifies which one is visible + * to the public. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + "users/list-emails-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Add an email address for the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "users/add-email-for-authenticated-user": { + requestBody?: { + content: { + "application/json": { + /** + * @description Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key. + * @example [] + */ + emails: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an email address for the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "users/delete-email-for-authenticated-user": { + requestBody?: { + content: { + "application/json": { + /** @description Email addresses associated with the GitHub user account. */ + emails: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List followers of the authenticated user + * @description Lists the people following the authenticated user. + */ + "users/list-followers-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List the people the authenticated user follows + * @description Lists the people who the authenticated user follows. + */ + "users/list-followed-by-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Check if a person is followed by the authenticated user */ + "users/check-person-is-followed-by-authenticated": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description if the person is followed by the authenticated user */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** @description if the person is not followed by the authenticated user */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Follow a user + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + "users/follow": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unfollow a user + * @description OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + "users/unfollow": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List GPG keys for the authenticated user + * @description Lists the current user's GPG keys. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + "users/list-gpg-keys-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["gpg-key"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a GPG key for the authenticated user + * @description Adds a GPG key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + "users/create-gpg-key-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** @description A descriptive name for the new key. */ + name?: string; + /** @description A GPG key in ASCII-armored format. */ + armored_public_key: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["gpg-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a GPG key for the authenticated user + * @description View extended details for a single GPG key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + "users/get-gpg-key-for-authenticated-user": { + parameters: { + path: { + gpg_key_id: components["parameters"]["gpg-key-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gpg-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a GPG key for the authenticated user + * @description Removes a GPG key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:gpg_key` scope to use this endpoint. + */ + "users/delete-gpg-key-for-authenticated-user": { + parameters: { + path: { + gpg_key_id: components["parameters"]["gpg-key-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List app installations accessible to the user access token + * @description Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You can find the permissions for the installation under the `permissions` key. + */ + "apps/list-installations-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description You can find the permissions for the installation under the `permissions` key. */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + installations: components["schemas"]["installation"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List repositories accessible to the user access token + * @description List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + "apps/list-installation-repos-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description The access the user has to each repository is included in the hash under the `permissions` key. */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + repository_selection?: string; + repositories: components["schemas"]["repository"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Add a repository to an app installation + * @description Add a single repository to an installation. The authenticated user must have admin access to the repository. + */ + "apps/add-repo-to-installation-for-authenticated-user": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a repository from an app installation + * @description Remove a single repository from an installation. The authenticated user must have admin access to the repository. The installation must have the `repository_selection` of `selected`. + */ + "apps/remove-repo-from-installation-for-authenticated-user": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Returned when the application is installed on `all` repositories in the organization, or if this request would remove the last repository that the application has access to in the organization. */ + 422: { + content: never; + }; + }; + }; + /** + * Get interaction restrictions for your public repositories + * @description Shows which type of GitHub user can interact with your public repositories and when the restriction expires. + */ + "interactions/get-restrictions-for-authenticated-user": { + responses: { + /** @description Default response */ + 200: { + content: { + "application/json": + | components["schemas"]["interaction-limit-response"] + | Record; + }; + }; + /** @description Response when there are no restrictions */ + 204: { + content: never; + }; + }; + }; + /** + * Set interaction restrictions for your public repositories + * @description Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. + */ + "interactions/set-restrictions-for-authenticated-user": { + requestBody: { + content: { + "application/json": components["schemas"]["interaction-limit"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove interaction restrictions from your public repositories + * @description Removes any interaction restrictions from your public repositories. + */ + "interactions/remove-restrictions-for-authenticated-user": { + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List user account issues assigned to the authenticated user + * @description List issues across owned and member repositories assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-for-authenticated-user": { + parameters: { + query?: { + /** @description Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. */ + filter?: + | "assigned" + | "created" + | "mentioned" + | "subscribed" + | "repos" + | "all"; + /** @description Indicates the state of the issues to return. */ + state?: "open" | "closed" | "all"; + labels?: components["parameters"]["labels"]; + /** @description What to sort results by. */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List public SSH keys for the authenticated user + * @description Lists the public SSH keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + "users/list-public-ssh-keys-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["key"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a public SSH key for the authenticated user + * @description Adds a public SSH key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + "users/create-public-ssh-key-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description A descriptive name for the new key. + * @example Personal MacBook Air + */ + title?: string; + /** @description The public SSH key to add to your GitHub account. */ + key: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a public SSH key for the authenticated user + * @description View extended details for a single public SSH key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + "users/get-public-ssh-key-for-authenticated-user": { + parameters: { + path: { + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a public SSH key for the authenticated user + * @description Removes a public SSH key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:public_key` scope to use this endpoint. + */ + "users/delete-public-ssh-key-for-authenticated-user": { + parameters: { + path: { + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List subscriptions for the authenticated user + * @description Lists the active subscriptions for the authenticated user. + */ + "apps/list-subscriptions-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["user-marketplace-purchase"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List subscriptions for the authenticated user (stubbed) + * @description Lists the active subscriptions for the authenticated user. + */ + "apps/list-subscriptions-for-authenticated-user-stubbed": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["user-marketplace-purchase"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * List organization memberships for the authenticated user + * @description Lists all of the authenticated user's organization memberships. + */ + "orgs/list-memberships-for-authenticated-user": { + parameters: { + query?: { + /** @description Indicates the state of the memberships to return. If not specified, the API returns both active and pending memberships. */ + state?: "active" | "pending"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["org-membership"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an organization membership for the authenticated user + * @description If the authenticated user is an active or pending member of the organization, this endpoint will return the user's membership. If the authenticated user is not affiliated with the organization, a `404` is returned. This endpoint will return a `403` if the request is made by a GitHub App that is blocked by the organization. + */ + "orgs/get-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update an organization membership for the authenticated user + * @description Converts the authenticated user to an active member of the organization, if that user has a pending invitation from the organization. + */ + "orgs/update-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state that the membership should be in. Only `"active"` will be accepted. + * @enum {string} + */ + state: "active"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List user migrations + * @description Lists all migrations a user has started. + */ + "migrations/list-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["migration"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Start a user migration + * @description Initiates the generation of a user migration archive. + */ + "migrations/start-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Lock the repositories being migrated at the start of the migration + * @example true + */ + lock_repositories?: boolean; + /** + * @description Indicates whether metadata should be excluded and only git source should be included for the migration. + * @example true + */ + exclude_metadata?: boolean; + /** + * @description Indicates whether the repository git data should be excluded from the migration. + * @example true + */ + exclude_git_data?: boolean; + /** + * @description Do not include attachments in the migration + * @example true + */ + exclude_attachments?: boolean; + /** + * @description Do not include releases in the migration + * @example true + */ + exclude_releases?: boolean; + /** + * @description Indicates whether projects owned by the organization or users should be excluded. + * @example true + */ + exclude_owner_projects?: boolean; + /** + * @description Indicates whether this should only include organization metadata (repositories array should be empty and will ignore other flags). + * @default false + * @example true + */ + org_metadata_only?: boolean; + /** + * @description Exclude attributes from the API response to improve performance + * @example [ + * "repositories" + * ] + */ + exclude?: "repositories"[]; + repositories: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a user migration status + * @description Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + * + * * `pending` - the migration hasn't started yet. + * * `exporting` - the migration is in progress. + * * `exported` - the migration finished successfully. + * * `failed` - the migration failed. + * + * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/migrations/users#download-a-user-migration-archive). + */ + "migrations/get-status-for-authenticated-user": { + parameters: { + query?: { + exclude?: string[]; + }; + path: { + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Download a user migration archive + * @description Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + * + * * attachments + * * bases + * * commit\_comments + * * issue\_comments + * * issue\_events + * * issues + * * milestones + * * organizations + * * projects + * * protected\_branches + * * pull\_request\_reviews + * * pull\_requests + * * releases + * * repositories + * * review\_comments + * * schema + * * users + * + * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + */ + "migrations/get-archive-for-authenticated-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 302: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Delete a user migration archive + * @description Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/migrations/users#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/migrations/users#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. + */ + "migrations/delete-archive-for-authenticated-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unlock a user repository + * @description Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/migrations/users#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/repos/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. + */ + "migrations/unlock-repo-for-authenticated-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration-id"]; + repo_name: components["parameters"]["repo-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories for a user migration + * @description Lists all the repositories for this user migration. + */ + "migrations/list-repos-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organizations for the authenticated user + * @description List organizations for the authenticated user. + * + * For OAuth app tokens and personal access tokens (classic), this endpoint only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope for OAuth app tokens and personal access tokens (classic). Requests with insufficient scope will receive a `403 Forbidden` response. + */ + "orgs/list-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List packages for the authenticated user's namespace + * @description Lists packages owned by the authenticated user within the user's namespace. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/list-packages-for-authenticated-user": { + parameters: { + query: { + /** @description The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + visibility?: components["parameters"]["package-visibility"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 400: components["responses"]["package_es_list_error"]; + }; + }; + /** + * Get a package for the authenticated user + * @description Gets a specific package for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"]; + }; + }; + }; + }; + /** + * Delete a package for the authenticated user + * @description Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, `repo` scope is also required. For the list these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore a package for the authenticated user + * @description Restores a package owned by the authenticated user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-for-authenticated-user": { + parameters: { + query?: { + /** @description package token */ + token?: string; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List package versions for a package owned by the authenticated user + * @description Lists package versions for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-all-package-versions-for-package-owned-by-authenticated-user": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + /** @description The state of the package, either active or deleted. */ + state?: "active" | "deleted"; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a package version for the authenticated user + * @description Gets a specific package version for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-version-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"]; + }; + }; + }; + }; + /** + * Delete a package version for the authenticated user + * @description Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-version-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore a package version for the authenticated user + * @description Restores a package version owned by the authenticated user. + * + * You can restore a deleted package version under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-version-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a user project + * @description Creates a user project board. Returns a `410 Gone` status if the user does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/create-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Name of the project + * @example Week One Sprint + */ + name: string; + /** + * @description Body of the project + * @example This project represents the sprint of the first week in January + */ + body?: string | null; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List public email addresses for the authenticated user + * @description Lists your publicly visible email address, which you can set with the + * [Set primary email visibility for the authenticated user](https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user) + * endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + "users/list-public-emails-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories for the authenticated user + * @description Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + */ + "repos/list-for-authenticated-user": { + parameters: { + query?: { + /** @description Limit results to repositories with the specified visibility. */ + visibility?: "all" | "public" | "private"; + /** + * @description Comma-separated list of values. Can include: + * * `owner`: Repositories that are owned by the authenticated user. + * * `collaborator`: Repositories that the user has been added to as a collaborator. + * * `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on. + */ + affiliation?: string; + /** @description Limit results to repositories of the specified type. Will cause a `422` error if used in the same request as **visibility** or **affiliation**. */ + type?: "all" | "owner" | "public" | "private" | "member"; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** @description The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + since?: components["parameters"]["since-repo-date"]; + before?: components["parameters"]["before-repo-date"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a repository for the authenticated user + * @description Creates a new repository for the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + "repos/create-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @description A short description of the repository. */ + description?: string; + /** @description A URL with more information about the repository. */ + homepage?: string; + /** + * @description Whether the repository is private. + * @default false + */ + private?: boolean; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues?: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects?: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki?: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** @description The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. */ + team_id?: number; + /** + * @description Whether the repository is initialized with a minimal README. + * @default false + */ + auto_init?: boolean; + /** + * @description The desired language or platform to apply to the .gitignore. + * @example Haskell + */ + gitignore_template?: string; + /** + * @description The license keyword of the open source license for this repository. + * @example mit + */ + license_template?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads?: boolean; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List repository invitations for the authenticated user + * @description When authenticating as a user, this endpoint will list all currently open repository invitations for that user. + */ + "repos/list-invitations-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["repository-invitation"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Decline a repository invitation */ + "repos/decline-invitation-for-authenticated-user": { + parameters: { + path: { + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + }; + }; + /** Accept a repository invitation */ + "repos/accept-invitation-for-authenticated-user": { + parameters: { + path: { + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + }; + }; + /** + * List social accounts for the authenticated user + * @description Lists all of your social accounts. + */ + "users/list-social-accounts-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["social-account"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Add social accounts for the authenticated user + * @description Add one or more social accounts to the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "users/add-social-account-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Full URLs for the social media profiles to add. + * @example [] + */ + account_urls: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["social-account"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete social accounts for the authenticated user + * @description Deletes one or more social accounts from the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "users/delete-social-account-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Full URLs for the social media profiles to delete. + * @example [] + */ + account_urls: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List SSH signing keys for the authenticated user + * @description Lists the SSH signing keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + "users/list-ssh-signing-keys-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["ssh-signing-key"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a SSH signing key for the authenticated user + * @description Creates an SSH signing key for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:ssh_signing_key` scope to use this endpoint. + */ + "users/create-ssh-signing-key-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description A descriptive name for the new key. + * @example Personal MacBook Air + */ + title?: string; + /** @description The public SSH key to add to your GitHub account. For more information, see "[Checking for existing SSH keys](https://docs.github.com/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys)." */ + key: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["ssh-signing-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an SSH signing key for the authenticated user + * @description Gets extended details for an SSH signing key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + "users/get-ssh-signing-key-for-authenticated-user": { + parameters: { + path: { + ssh_signing_key_id: components["parameters"]["ssh-signing-key-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["ssh-signing-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an SSH signing key for the authenticated user + * @description Deletes an SSH signing key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:ssh_signing_key` scope to use this endpoint. + */ + "users/delete-ssh-signing-key-for-authenticated-user": { + parameters: { + path: { + ssh_signing_key_id: components["parameters"]["ssh-signing-key-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories starred by the authenticated user + * @description Lists repositories the authenticated user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + "activity/list-repos-starred-by-authenticated-user": { + parameters: { + query?: { + sort?: components["parameters"]["sort-starred"]; + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["repository"][]; + "application/vnd.github.v3.star+json": components["schemas"]["starred-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Check if a repository is starred by the authenticated user + * @description Whether the authenticated user has starred the repository. + */ + "activity/check-repo-is-starred-by-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response if this repository is starred by you */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** @description Not Found if this repository is not starred by you */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Star a repository for the authenticated user + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "activity/star-repo-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unstar a repository for the authenticated user + * @description Unstar a repository that the authenticated user has previously starred. + */ + "activity/unstar-repo-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories watched by the authenticated user + * @description Lists repositories the authenticated user is watching. + */ + "activity/list-watched-repos-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List teams for the authenticated user + * @description List all of the teams across all of the organizations to which the authenticated + * user belongs. + * + * OAuth app tokens and personal access tokens (classic) need the `user`, `repo`, or `read:org` scope to use this endpoint. + * + * When using a fine-grained personal access token, the resource owner of the token must be a single organization, and the response will only include the teams from that organization. + */ + "teams/list-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-full"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List users + * @description Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of users. + */ + "users/list": { + parameters: { + query?: { + since?: components["parameters"]["since-user"]; + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + /** @example ; rel="next" */ + Link?: string; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a user + * @description Provides publicly available information about someone with a GitHub account. + * + * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#authentication). + * + * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://docs.github.com/rest/users/emails)". + */ + "users/get-by-username": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": + | components["schemas"]["private-user"] + | components["schemas"]["public-user"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get list of conflicting packages during Docker migration for user + * @description Lists all packages that are in a specific user's namespace, that the requesting user has access to, and that encountered a conflict during Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + "packages/list-docker-migration-conflicting-packages-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List events for the authenticated user + * @description If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. + */ + "activity/list-events-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** + * List organization events for the authenticated user + * @description This is the user's organization dashboard. You must be authenticated as the user to view this. + */ + "activity/list-org-events-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** List public events for a user */ + "activity/list-public-events-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** + * List followers of a user + * @description Lists the people following the specified user. + */ + "users/list-followers-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * List the people a user follows + * @description Lists the people who the specified user follows. + */ + "users/list-following-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** Check if a user follows another user */ + "users/check-following-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + target_user: string; + }; + }; + responses: { + /** @description if the user follows the target user */ + 204: { + content: never; + }; + /** @description if the user does not follow the target user */ + 404: { + content: never; + }; + }; + }; + /** + * List gists for a user + * @description Lists public gists for the specified user: + */ + "gists/list-for-user": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List GPG keys for a user + * @description Lists the GPG keys for a user. This information is accessible by anyone. + */ + "users/list-gpg-keys-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["gpg-key"][]; + }; + }; + }; + }; + /** + * Get contextual information for a user + * @description Provides hovercard information. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + * + * The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository via cURL, it would look like this: + * + * ```shell + * curl -u username:token + * https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192 + * ``` + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "users/get-context-for-user": { + parameters: { + query?: { + /** @description Identifies which additional information you'd like to receive about the person's hovercard. Can be `organization`, `repository`, `issue`, `pull_request`. **Required** when using `subject_id`. */ + subject_type?: "organization" | "repository" | "issue" | "pull_request"; + /** @description Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`. */ + subject_id?: string; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hovercard"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a user installation for the authenticated app + * @description Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-user-installation": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + }; + }; + /** + * List public keys for a user + * @description Lists the _verified_ public SSH keys for a user. This is accessible by anyone. + */ + "users/list-public-keys-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["key-simple"][]; + }; + }; + }; + }; + /** + * List organizations for a user + * @description List [public organization memberships](https://docs.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user) API instead. + */ + "orgs/list-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-simple"][]; + }; + }; + }; + }; + /** + * List packages for a user + * @description Lists all packages in a user's namespace for which the requesting user has access. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/list-packages-for-user": { + parameters: { + query: { + /** @description The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + visibility?: components["parameters"]["package-visibility"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 400: components["responses"]["package_es_list_error"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a package for a user + * @description Gets a specific package metadata for a public package owned by a user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"]; + }; + }; + }; + }; + /** + * Delete a package for a user + * @description Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore a package for a user + * @description Restores an entire package for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-for-user": { + parameters: { + query?: { + /** @description package token */ + token?: string; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List package versions for a package owned by a user + * @description Lists package versions for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-all-package-versions-for-package-owned-by-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a package version for a user + * @description Gets a specific package version for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-version-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + package_version_id: components["parameters"]["package-version-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"]; + }; + }; + }; + }; + /** + * Delete package version for a user + * @description Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-version-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore package version for a user + * @description Restores a specific package version for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-version-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List user projects + * @description Lists projects for a user. + */ + "projects/list-for-user": { + parameters: { + query?: { + /** @description Indicates the state of the projects to return. */ + state?: "open" | "closed" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List events received by the authenticated user + * @description These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. + */ + "activity/list-received-events-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** List public events received by a user */ + "activity/list-received-public-events-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** + * List repositories for a user + * @description Lists public repositories for the specified user. + */ + "repos/list-for-user": { + parameters: { + query?: { + /** @description Limit results to repositories of the specified type. */ + type?: "all" | "owner" | "member"; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** @description The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Get GitHub Actions billing for a user + * @description Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "billing/get-github-actions-billing-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-billing-usage"]; + }; + }; + }; + }; + /** + * Get GitHub Packages billing for a user + * @description Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "billing/get-github-packages-billing-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["packages-billing-usage"]; + }; + }; + }; + }; + /** + * Get shared storage billing for a user + * @description Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "billing/get-shared-storage-billing-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["combined-billing-usage"]; + }; + }; + }; + }; + /** + * List social accounts for a user + * @description Lists social media accounts for a user. This endpoint is accessible by anyone. + */ + "users/list-social-accounts-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["social-account"][]; + }; + }; + }; + }; + /** + * List SSH signing keys for a user + * @description Lists the SSH signing keys for a user. This operation is accessible by anyone. + */ + "users/list-ssh-signing-keys-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["ssh-signing-key"][]; + }; + }; + }; + }; + /** + * List repositories starred by a user + * @description Lists repositories a user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + "activity/list-repos-starred-by-user": { + parameters: { + query?: { + sort?: components["parameters"]["sort-starred"]; + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": + | components["schemas"]["starred-repository"][] + | components["schemas"]["repository"][]; + }; + }; + }; + }; + /** + * List repositories watched by a user + * @description Lists repositories a user is watching. + */ + "activity/list-repos-watched-by-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Get all API versions + * @description Get all supported GitHub API versions. + */ + "meta/get-all-versions": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get the Zen of GitHub + * @description Get a random sentence from the Zen of GitHub + */ + "meta/get-zen": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string; + }; + }; + }; + }; + /** + * Compare two commits + * @description **Deprecated**: Use `repos.compareCommitsWithBasehead()` (`GET /repos/{owner}/{repo}/compare/{basehead}`) instead. Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + * + * When calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/compare-commits": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + base: string; + head: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comparison"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; +} diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/LICENSE b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/LICENSE new file mode 100644 index 000000000..57bee5f18 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +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: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +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. diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/README.md b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/README.md new file mode 100644 index 000000000..7ebe154a1 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/README.md @@ -0,0 +1,65 @@ +# types.ts + +> Shared TypeScript definitions for Octokit projects + +[![@latest](https://img.shields.io/npm/v/@octokit/types.svg)](https://www.npmjs.com/package/@octokit/types) +[![Build Status](https://github.com/octokit/types.ts/workflows/Test/badge.svg)](https://github.com/octokit/types.ts/actions?workflow=Test) + + + +- [Usage](#usage) +- [Examples](#examples) + - [Get parameter and response data types for a REST API endpoint](#get-parameter-and-response-data-types-for-a-rest-api-endpoint) + - [Get response types from endpoint methods](#get-response-types-from-endpoint-methods) +- [Contributing](#contributing) +- [License](#license) + + + +## Usage + +See all exported types at https://octokit.github.io/types.ts + +## Examples + +### Get parameter and response data types for a REST API endpoint + +```ts +import { Endpoints } from "@octokit/types"; + +type listUserReposParameters = + Endpoints["GET /repos/{owner}/{repo}"]["parameters"]; +type listUserReposResponse = Endpoints["GET /repos/{owner}/{repo}"]["response"]; + +async function listRepos( + options: listUserReposParameters, +): listUserReposResponse["data"] { + // ... +} +``` + +### Get response types from endpoint methods + +```ts +import { + GetResponseTypeFromEndpointMethod, + GetResponseDataTypeFromEndpointMethod, +} from "@octokit/types"; +import { Octokit } from "@octokit/rest"; + +const octokit = new Octokit(); +type CreateLabelResponseType = GetResponseTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +type CreateLabelResponseDataType = GetResponseDataTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +``` + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/AuthInterface.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/AuthInterface.d.ts new file mode 100644 index 000000000..616d6d57d --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/AuthInterface.d.ts @@ -0,0 +1,31 @@ +import type { EndpointOptions } from "./EndpointOptions"; +import type { OctokitResponse } from "./OctokitResponse"; +import type { RequestInterface } from "./RequestInterface"; +import type { RequestParameters } from "./RequestParameters"; +import type { Route } from "./Route"; +/** + * Interface to implement complex authentication strategies for Octokit. + * An object Implementing the AuthInterface can directly be passed as the + * `auth` option in the Octokit constructor. + * + * For the official implementations of the most common authentication + * strategies, see https://github.com/octokit/auth.js + */ +export interface AuthInterface { + (...args: AuthOptions): Promise; + hook: { + /** + * Sends a request using the passed `request` instance + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, options: EndpointOptions): Promise>; + /** + * Sends a request using the passed `request` instance + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, route: Route, parameters?: RequestParameters): Promise>; + }; +} diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts new file mode 100644 index 000000000..3bbc38890 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts @@ -0,0 +1,21 @@ +import type { RequestHeaders } from "./RequestHeaders"; +import type { RequestMethod } from "./RequestMethod"; +import type { RequestParameters } from "./RequestParameters"; +import type { Url } from "./Url"; +/** + * The `.endpoint()` method is guaranteed to set all keys defined by RequestParameters + * as well as the method property. + */ +export type EndpointDefaults = RequestParameters & { + baseUrl: Url; + method: RequestMethod; + url?: Url; + headers: RequestHeaders & { + accept: string; + "user-agent": string; + }; + mediaType: { + format: string; + previews?: string[]; + }; +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts new file mode 100644 index 000000000..184bf7361 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts @@ -0,0 +1,65 @@ +import type { EndpointDefaults } from "./EndpointDefaults"; +import type { RequestOptions } from "./RequestOptions"; +import type { RequestParameters } from "./RequestParameters"; +import type { Route } from "./Route"; +import type { Endpoints } from "./generated/Endpoints"; +export interface EndpointInterface { + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {object} endpoint Must set `url` unless it's set defaults. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): RequestOptions & Pick; + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, parameters?: P): (R extends keyof Endpoints ? Endpoints[R]["request"] : RequestOptions) & Pick; + /** + * Object with current default route and parameters + */ + DEFAULTS: D & EndpointDefaults; + /** + * Returns a new `endpoint` interface with new defaults + */ + defaults: (newDefaults: O) => EndpointInterface; + merge: { + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * + */ + (route: keyof Endpoints | R, parameters?: P): D & (R extends keyof Endpoints ? Endpoints[R]["request"] & Endpoints[R]["parameters"] : EndpointDefaults) & P; + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ +

(options: P): EndpointDefaults & D & P; + /** + * Returns current default options. + * + * @deprecated use endpoint.DEFAULTS instead + */ + (): D & EndpointDefaults; + }; + /** + * Stateless method to turn endpoint options into request options. + * Calling `endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`. + * + * @param {object} options `method`, `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + parse: (options: O) => RequestOptions & Pick; +} diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts new file mode 100644 index 000000000..e77168eac --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts @@ -0,0 +1,7 @@ +import type { RequestMethod } from "./RequestMethod"; +import type { Url } from "./Url"; +import type { RequestParameters } from "./RequestParameters"; +export type EndpointOptions = RequestParameters & { + method: RequestMethod; + url: Url; +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Fetch.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Fetch.d.ts new file mode 100644 index 000000000..983c79be1 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Fetch.d.ts @@ -0,0 +1,4 @@ +/** + * Browser's fetch method (or compatible such as fetch-mock) + */ +export type Fetch = any; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts new file mode 100644 index 000000000..2daaf34db --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts @@ -0,0 +1,5 @@ +type Unwrap = T extends Promise ? U : T; +type AnyFunction = (...args: any[]) => any; +export type GetResponseTypeFromEndpointMethod = Unwrap>; +export type GetResponseDataTypeFromEndpointMethod = Unwrap>["data"]; +export {}; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts new file mode 100644 index 000000000..bc6ab1099 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts @@ -0,0 +1,17 @@ +import type { ResponseHeaders } from "./ResponseHeaders"; +import type { Url } from "./Url"; +export interface OctokitResponse { + headers: ResponseHeaders; + /** + * http response code + */ + status: S; + /** + * URL of response after all redirects + */ + url: Url; + /** + * Response data as documented in the REST API reference documentation at https://docs.github.com/rest/reference + */ + data: T; +} diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestError.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestError.d.ts new file mode 100644 index 000000000..46083923d --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestError.d.ts @@ -0,0 +1,11 @@ +export type RequestError = { + name: string; + status: number; + documentation_url: string; + errors?: Array<{ + resource: string; + code: string; + field: string; + message?: string; + }>; +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts new file mode 100644 index 000000000..423115948 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts @@ -0,0 +1,15 @@ +export type RequestHeaders = { + /** + * Avoid setting `headers.accept`, use `mediaType.{format|previews}` option instead. + */ + accept?: string; + /** + * Use `authorization` to send authenticated request, remember `token ` / `bearer ` prefixes. Example: `token 1234567890abcdef1234567890abcdef12345678` + */ + authorization?: string; + /** + * `user-agent` is set do a default and can be overwritten as needed. + */ + "user-agent"?: string; + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestInterface.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestInterface.d.ts new file mode 100644 index 000000000..cc757e4c4 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestInterface.d.ts @@ -0,0 +1,34 @@ +import type { EndpointInterface } from "./EndpointInterface"; +import type { OctokitResponse } from "./OctokitResponse"; +import type { RequestParameters } from "./RequestParameters"; +import type { Route } from "./Route"; +import type { Endpoints } from "./generated/Endpoints"; +export interface RequestInterface { + /** + * Sends a request based on endpoint options + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): Promise>; + /** + * Sends a request based on endpoint options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, options?: R extends keyof Endpoints ? Endpoints[R]["parameters"] & RequestParameters : RequestParameters): R extends keyof Endpoints ? Promise : Promise>; + /** + * Returns a new `request` with updated route and parameters + */ + defaults: (newDefaults: O) => RequestInterface; + /** + * Octokit endpoint API, see {@link https://github.com/octokit/endpoint.js|@octokit/endpoint} + */ + endpoint: EndpointInterface; +} diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestMethod.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestMethod.d.ts new file mode 100644 index 000000000..4cdfe61c8 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestMethod.d.ts @@ -0,0 +1,4 @@ +/** + * HTTP Verb supported by GitHub's REST API + */ +export type RequestMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT"; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestOptions.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestOptions.d.ts new file mode 100644 index 000000000..b799c0f8e --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestOptions.d.ts @@ -0,0 +1,14 @@ +import type { RequestHeaders } from "./RequestHeaders"; +import type { RequestMethod } from "./RequestMethod"; +import type { RequestRequestOptions } from "./RequestRequestOptions"; +import type { Url } from "./Url"; +/** + * Generic request options as they are returned by the `endpoint()` method + */ +export type RequestOptions = { + method: RequestMethod; + url: Url; + headers: RequestHeaders; + body?: any; + request?: RequestRequestOptions; +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestParameters.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestParameters.d.ts new file mode 100644 index 000000000..e21247876 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestParameters.d.ts @@ -0,0 +1,45 @@ +import type { RequestRequestOptions } from "./RequestRequestOptions"; +import type { RequestHeaders } from "./RequestHeaders"; +import type { Url } from "./Url"; +/** + * Parameters that can be passed into `request(route, parameters)` or `endpoint(route, parameters)` methods + */ +export type RequestParameters = { + /** + * Base URL to be used when a relative URL is passed, such as `/orgs/{org}`. + * If `baseUrl` is `https://enterprise.acme-inc.com/api/v3`, then the request + * will be sent to `https://enterprise.acme-inc.com/api/v3/orgs/{org}`. + */ + baseUrl?: Url; + /** + * HTTP headers. Use lowercase keys. + */ + headers?: RequestHeaders; + /** + * Media type options, see {@link https://developer.github.com/v3/media/|GitHub Developer Guide} + */ + mediaType?: { + /** + * `json` by default. Can be `raw`, `text`, `html`, `full`, `diff`, `patch`, `sha`, `base64`. Depending on endpoint + */ + format?: string; + /** + * Custom media type names of {@link https://docs.github.com/en/graphql/overview/schema-previews|GraphQL API Previews} without the `-preview` suffix. + * Example for single preview: `['squirrel-girl']`. + * Example for multiple previews: `['squirrel-girl', 'mister-fantastic']`. + */ + previews?: string[]; + }; + /** + * Pass custom meta information for the request. The `request` object will be returned as is. + */ + request?: RequestRequestOptions; + /** + * Any additional parameter will be passed as follows + * 1. URL parameter if `':parameter'` or `{parameter}` is part of `url` + * 2. Query parameter if `method` is `'GET'` or `'HEAD'` + * 3. Request body if `parameter` is `'data'` + * 4. JSON in the request body in the form of `body[parameter]` unless `parameter` key is `'data'` + */ + [parameter: string]: unknown; +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts new file mode 100644 index 000000000..0e4d269a2 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts @@ -0,0 +1,20 @@ +import type { Fetch } from "./Fetch"; +import type { Signal } from "./Signal"; +/** + * Octokit-specific request options which are ignored for the actual request, but can be used by Octokit or plugins to manipulate how the request is sent or how a response is handled + */ +export type RequestRequestOptions = { + /** + * Custom replacement for built-in fetch method. Useful for testing or request hooks. + */ + fetch?: Fetch; + /** + * Use an `AbortController` instance to cancel a request. In node you can only cancel streamed requests. + */ + signal?: Signal; + /** + * If set to `false`, the response body will not be parsed and will be returned as a stream. + */ + parseSuccessResponseBody?: boolean; + [option: string]: any; +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts new file mode 100644 index 000000000..7b5bf53b2 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts @@ -0,0 +1,21 @@ +export type ResponseHeaders = { + "cache-control"?: string; + "content-length"?: number; + "content-type"?: string; + date?: string; + etag?: string; + "last-modified"?: string; + link?: string; + location?: string; + server?: string; + status?: string; + vary?: string; + "x-accepted-github-permissions"?: string; + "x-github-mediatype"?: string; + "x-github-request-id"?: string; + "x-oauth-scopes"?: string; + "x-ratelimit-limit"?: string; + "x-ratelimit-remaining"?: string; + "x-ratelimit-reset"?: string; + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Route.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Route.d.ts new file mode 100644 index 000000000..808991ebf --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Route.d.ts @@ -0,0 +1,4 @@ +/** + * String consisting of an optional HTTP method and relative path or absolute URL. Examples: `'/orgs/{org}'`, `'PUT /orgs/{org}'`, `GET https://example.com/foo/bar` + */ +export type Route = string; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Signal.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Signal.d.ts new file mode 100644 index 000000000..bdf97001e --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Signal.d.ts @@ -0,0 +1,6 @@ +/** + * Abort signal + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal + */ +export type Signal = any; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts new file mode 100644 index 000000000..6b213abac --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts @@ -0,0 +1,4 @@ +import type { AuthInterface } from "./AuthInterface"; +export interface StrategyInterface { + (...args: StrategyOptions): AuthInterface; +} diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Url.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Url.d.ts new file mode 100644 index 000000000..521f5ad9b --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/Url.d.ts @@ -0,0 +1,4 @@ +/** + * Relative or absolute URL. Examples: `'/orgs/{org}'`, `https://example.com/foo/bar` + */ +export type Url = string; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/VERSION.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/VERSION.d.ts new file mode 100644 index 000000000..9aba19e69 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/VERSION.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "12.6.0"; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts new file mode 100644 index 000000000..db283bc01 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts @@ -0,0 +1,3797 @@ +import type { paths } from "@octokit/openapi-types"; +import type { OctokitResponse } from "../OctokitResponse"; +import type { RequestHeaders } from "../RequestHeaders"; +import type { RequestRequestOptions } from "../RequestRequestOptions"; +/** + * @license (MIT OR CC0-1.0) + * @source https://github.com/sindresorhus/type-fest/blob/570e27f8fdaee37ef5d5e0fbf241e0212ff8fc1a/source/simplify.d.ts + */ +export type Simplify = { + [KeyType in keyof T]: T[KeyType]; +} & {}; +type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; +type ExtractParameters = "parameters" extends keyof T ? UnionToIntersection<{ + [K in keyof T["parameters"]]-?: T["parameters"][K]; +}[keyof T["parameters"]]> : {}; +type ExtractRequestBody = "requestBody" extends keyof T ? "content" extends keyof T["requestBody"] ? "application/json" extends keyof T["requestBody"]["content"] ? T["requestBody"]["content"]["application/json"] : { + data: { + [K in keyof T["requestBody"]["content"]]: T["requestBody"]["content"][K]; + }[keyof T["requestBody"]["content"]]; +} : "application/json" extends keyof T["requestBody"] ? T["requestBody"]["application/json"] : { + data: { + [K in keyof T["requestBody"]]: T["requestBody"][K]; + }[keyof T["requestBody"]]; +} : {}; +type ToOctokitParameters = ExtractParameters & ExtractRequestBody>; +type Operation = { + parameters: Simplify>; + request: Method extends ReadOnlyMethods ? { + method: Method extends string ? Uppercase : never; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; + } : { + method: Method extends string ? Uppercase : never; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; + data: ExtractRequestBody; + }; + response: ExtractOctokitResponse; +}; +type ReadOnlyMethods = "get" | "head"; +type SuccessStatuses = 200 | 201 | 202 | 204 | 205; +type RedirectStatuses = 301 | 302; +type EmptyResponseStatuses = 201 | 204 | 205; +type KnownJsonResponseTypes = "application/json" | "application/octocat-stream" | "application/scim+json" | "text/html" | "text/plain"; +type SuccessResponseDataType = { + [K in SuccessStatuses & keyof Responses]: GetContentKeyIfPresent extends never ? never : OctokitResponse, K>; +}[SuccessStatuses & keyof Responses]; +type RedirectResponseDataType = { + [K in RedirectStatuses & keyof Responses]: OctokitResponse; +}[RedirectStatuses & keyof Responses]; +type EmptyResponseDataType = { + [K in EmptyResponseStatuses & keyof Responses]: OctokitResponse; +}[EmptyResponseStatuses & keyof Responses]; +type GetContentKeyIfPresent = "content" extends keyof T ? DataType : DataType; +type DataType = { + [K in KnownJsonResponseTypes & keyof T]: T[K]; +}[KnownJsonResponseTypes & keyof T]; +type ExtractOctokitResponse = "responses" extends keyof R ? SuccessResponseDataType extends never ? RedirectResponseDataType extends never ? EmptyResponseDataType : RedirectResponseDataType : SuccessResponseDataType : unknown; +export interface Endpoints { + /** + * @see https://docs.github.com/rest/apps/apps#delete-an-installation-for-the-authenticated-app + */ + "DELETE /app/installations/{installation_id}": Operation<"/app/installations/{installation_id}", "delete">; + /** + * @see https://docs.github.com/rest/apps/apps#unsuspend-an-app-installation + */ + "DELETE /app/installations/{installation_id}/suspended": Operation<"/app/installations/{installation_id}/suspended", "delete">; + /** + * @see https://docs.github.com/rest/apps/oauth-applications#delete-an-app-authorization + */ + "DELETE /applications/{client_id}/grant": Operation<"/applications/{client_id}/grant", "delete">; + /** + * @see https://docs.github.com/rest/apps/oauth-applications#delete-an-app-token + */ + "DELETE /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "delete">; + /** + * @see https://docs.github.com/rest/gists/gists#delete-a-gist + */ + "DELETE /gists/{gist_id}": Operation<"/gists/{gist_id}", "delete">; + /** + * @see https://docs.github.com/rest/gists/comments#delete-a-gist-comment + */ + "DELETE /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/gists/gists#unstar-a-gist + */ + "DELETE /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "delete">; + /** + * @see https://docs.github.com/rest/apps/installations#revoke-an-installation-access-token + */ + "DELETE /installation/token": Operation<"/installation/token", "delete">; + /** + * @see https://docs.github.com/rest/activity/notifications#mark-a-thread-as-done + */ + "DELETE /notifications/threads/{thread_id}": Operation<"/notifications/threads/{thread_id}", "delete">; + /** + * @see https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription + */ + "DELETE /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "delete">; + /** + * @see https://docs.github.com/rest/orgs/orgs#delete-an-organization + */ + "DELETE /orgs/{org}": Operation<"/orgs/{org}", "delete">; + /** + * @see https://docs.github.com/rest/actions/permissions#disable-a-selected-repository-for-github-actions-in-an-organization + */ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}": Operation<"/orgs/{org}/actions/permissions/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#delete-a-self-hosted-runner-from-an-organization + */ + "DELETE /orgs/{org}/actions/runners/{runner_id}": Operation<"/orgs/{org}/actions/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#remove-all-custom-labels-from-a-self-hosted-runner-for-an-organization + */ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#remove-a-custom-label-from-a-self-hosted-runner-for-an-organization + */ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/secrets#delete-an-organization-secret + */ + "DELETE /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/secrets#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/variables#delete-an-organization-variable + */ + "DELETE /orgs/{org}/actions/variables/{name}": Operation<"/orgs/{org}/actions/variables/{name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/variables#remove-selected-repository-from-an-organization-variable + */ + "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/variables/{name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/blocking#unblock-a-user-from-an-organization + */ + "DELETE /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#remove-users-from-codespaces-access-for-an-organization + */ + "DELETE /orgs/{org}/codespaces/access/selected_users": Operation<"/orgs/{org}/codespaces/access/selected_users", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#delete-an-organization-secret + */ + "DELETE /orgs/{org}/codespaces/secrets/{secret_name}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#remove-teams-from-the-copilot-subscription-for-an-organization + */ + "DELETE /orgs/{org}/copilot/billing/selected_teams": Operation<"/orgs/{org}/copilot/billing/selected_teams", "delete">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#remove-users-from-the-copilot-subscription-for-an-organization + */ + "DELETE /orgs/{org}/copilot/billing/selected_users": Operation<"/orgs/{org}/copilot/billing/selected_users", "delete">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#delete-an-organization-secret + */ + "DELETE /orgs/{org}/dependabot/secrets/{secret_name}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#delete-an-organization-webhook + */ + "DELETE /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "delete">; + /** + * @see https://docs.github.com/rest/interactions/orgs#remove-interaction-restrictions-for-an-organization + */ + "DELETE /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/orgs/members#cancel-an-organization-invitation + */ + "DELETE /orgs/{org}/invitations/{invitation_id}": Operation<"/orgs/{org}/invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/members#remove-an-organization-member + */ + "DELETE /orgs/{org}/members/{username}": Operation<"/orgs/{org}/members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#delete-a-codespace-from-the-organization + */ + "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}": Operation<"/orgs/{org}/members/{username}/codespaces/{codespace_name}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/members#remove-organization-membership-for-a-user + */ + "DELETE /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/rest/migrations/orgs#delete-an-organization-migration-archive + */ + "DELETE /orgs/{org}/migrations/{migration_id}/archive": Operation<"/orgs/{org}/migrations/{migration_id}/archive", "delete">; + /** + * @see https://docs.github.com/rest/migrations/orgs#unlock-an-organization-repository + */ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": Operation<"/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-team + */ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}": Operation<"/orgs/{org}/organization-roles/teams/{team_slug}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-team + */ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}": Operation<"/orgs/{org}/organization-roles/teams/{team_slug}/{role_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-user + */ + "DELETE /orgs/{org}/organization-roles/users/{username}": Operation<"/orgs/{org}/organization-roles/users/{username}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-user + */ + "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}": Operation<"/orgs/{org}/organization-roles/users/{username}/{role_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#delete-a-custom-organization-role + */ + "DELETE /orgs/{org}/organization-roles/{role_id}": Operation<"/orgs/{org}/organization-roles/{role_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization + */ + "DELETE /orgs/{org}/outside_collaborators/{username}": Operation<"/orgs/{org}/outside_collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-a-package-for-an-organization + */ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-package-version-for-an-organization + */ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#remove-a-custom-property-for-an-organization + */ + "DELETE /orgs/{org}/properties/schema/{custom_property_name}": Operation<"/orgs/{org}/properties/schema/{custom_property_name}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/members#remove-public-organization-membership-for-the-authenticated-user + */ + "DELETE /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/rules#delete-an-organization-repository-ruleset + */ + "DELETE /orgs/{org}/rulesets/{ruleset_id}": Operation<"/orgs/{org}/rulesets/{ruleset_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team + */ + "DELETE /orgs/{org}/security-managers/teams/{team_slug}": Operation<"/orgs/{org}/security-managers/teams/{team_slug}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#delete-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "delete">; + /** + * @see https://docs.github.com/rest/teams/discussions#delete-a-discussion + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "delete">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#delete-a-discussion-comment + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-team-discussion-comment-reaction + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-team-discussion-reaction + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user + */ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#remove-a-project-from-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/projects/cards#delete-a-project-card + */ + "DELETE /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "delete">; + /** + * @see https://docs.github.com/rest/projects/columns#delete-a-project-column + */ + "DELETE /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "delete">; + /** + * @see https://docs.github.com/rest/projects/projects#delete-a-project + */ + "DELETE /projects/{project_id}": Operation<"/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/rest/projects/collaborators#remove-user-as-a-collaborator + */ + "DELETE /projects/{project_id}/collaborators/{username}": Operation<"/projects/{project_id}/collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/repos/repos#delete-a-repository + */ + "DELETE /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/actions/artifacts#delete-an-artifact + */ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/cache#delete-a-github-actions-cache-for-a-repository-using-a-cache-id + */ + "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}": Operation<"/repos/{owner}/{repo}/actions/caches/{cache_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/cache#delete-github-actions-caches-for-a-repository-using-a-cache-key + */ + "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}": Operation<"/repos/{owner}/{repo}/actions/caches", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#delete-a-self-hosted-runner-from-a-repository + */ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#remove-all-custom-labels-from-a-self-hosted-runner-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#remove-a-custom-label-from-a-self-hosted-runner-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#delete-a-workflow-run + */ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#delete-workflow-run-logs + */ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/logs", "delete">; + /** + * @see https://docs.github.com/rest/actions/secrets#delete-a-repository-secret + */ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/variables#delete-a-repository-variable + */ + "DELETE /repos/{owner}/{repo}/actions/variables/{name}": Operation<"/repos/{owner}/{repo}/actions/variables/{name}", "delete">; + /** + * @see https://docs.github.com/rest/repos/autolinks#delete-an-autolink-reference-from-a-repository + */ + "DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}": Operation<"/repos/{owner}/{repo}/autolinks/{autolink_id}", "delete">; + /** + * @see https://docs.github.com/rest/repos/repos#disable-automated-security-fixes + */ + "DELETE /repos/{owner}/{repo}/automated-security-fixes": Operation<"/repos/{owner}/{repo}/automated-security-fixes", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-branch-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-admin-branch-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-pull-request-review-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-commit-signature-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-status-check-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-status-check-contexts + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-app-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-team-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-user-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "delete">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#delete-a-code-scanning-analysis-from-a-repository + */ + "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}": Operation<"/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#delete-a-repository-secret + */ + "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/codespaces/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#remove-a-repository-collaborator + */ + "DELETE /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/commits/comments#delete-a-commit-comment + */ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-a-commit-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/repos/contents#delete-a-file + */ + "DELETE /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "delete">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#delete-a-repository-secret + */ + "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/deployments/deployments#delete-a-deployment + */ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}", "delete">; + /** + * @see https://docs.github.com/rest/deployments/environments#delete-an-environment + */ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}", "delete">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#delete-a-deployment-branch-policy + */ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}", "delete">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#disable-a-custom-protection-rule-for-an-environment + */ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}", "delete">; + /** + * @see https://docs.github.com/rest/git/refs#delete-a-reference + */ + "DELETE /repos/{owner}/{repo}/git/refs/{ref}": Operation<"/repos/{owner}/{repo}/git/refs/{ref}", "delete">; + /** + * @see https://docs.github.com/rest/repos/webhooks#delete-a-repository-webhook + */ + "DELETE /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "delete">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#cancel-an-import + */ + "DELETE /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "delete">; + /** + * @see https://docs.github.com/rest/interactions/repos#remove-interaction-restrictions-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#delete-a-repository-invitation + */ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}": Operation<"/repos/{owner}/{repo}/invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/issues/comments#delete-an-issue-comment + */ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-an-issue-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#remove-assignees-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/assignees", "delete">; + /** + * @see https://docs.github.com/rest/issues/labels#remove-all-labels-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "delete">; + /** + * @see https://docs.github.com/rest/issues/labels#remove-a-label-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/issues/issues#unlock-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/lock", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-an-issue-reaction + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/deploy-keys/deploy-keys#delete-a-deploy-key + */ + "DELETE /repos/{owner}/{repo}/keys/{key_id}": Operation<"/repos/{owner}/{repo}/keys/{key_id}", "delete">; + /** + * @see https://docs.github.com/rest/issues/labels#delete-a-label + */ + "DELETE /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/issues/milestones#delete-a-milestone + */ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "delete">; + /** + * @see https://docs.github.com/rest/pages/pages#delete-a-apiname-pages-site + */ + "DELETE /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "delete">; + /** + * @see https://docs.github.com/rest/repos/repos#disable-private-vulnerability-reporting-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting": Operation<"/repos/{owner}/{repo}/private-vulnerability-reporting", "delete">; + /** + * @see https://docs.github.com/rest/pulls/comments#delete-a-review-comment-for-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-a-pull-request-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/pulls/review-requests#remove-requested-reviewers-from-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "delete">; + /** + * @see https://docs.github.com/rest/pulls/reviews#delete-a-pending-review-for-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "delete">; + /** + * @see https://docs.github.com/rest/releases/assets#delete-a-release-asset + */ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "delete">; + /** + * @see https://docs.github.com/rest/releases/releases#delete-a-release + */ + "DELETE /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-a-release-reaction + */ + "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/repos/rules#delete-a-repository-ruleset + */ + "DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}": Operation<"/repos/{owner}/{repo}/rulesets/{ruleset_id}", "delete">; + /** + * @see https://docs.github.com/rest/activity/watching#delete-a-repository-subscription + */ + "DELETE /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "delete">; + /** + * @see https://docs.github.com/rest/repos/tags#delete-a-tag-protection-state-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}": Operation<"/repos/{owner}/{repo}/tags/protection/{tag_protection_id}", "delete">; + /** + * @see https://docs.github.com/rest/repos/repos#disable-vulnerability-alerts + */ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "delete">; + /** + * @see https://docs.github.com/rest/actions/secrets#delete-an-environment-secret + */ + "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/variables#delete-an-environment-variable + */ + "DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/variables/{name}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#delete-a-team-legacy + */ + "DELETE /teams/{team_id}": Operation<"/teams/{team_id}", "delete">; + /** + * @see https://docs.github.com/rest/teams/discussions#delete-a-discussion-legacy + */ + "DELETE /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "delete">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#delete-a-discussion-comment-legacy + */ + "DELETE /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "delete">; + /** + * @see https://docs.github.com/rest/teams/members#remove-team-member-legacy + */ + "DELETE /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user-legacy + */ + "DELETE /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#remove-a-project-from-a-team-legacy + */ + "DELETE /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team-legacy + */ + "DELETE /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/users/blocking#unblock-a-user + */ + "DELETE /user/blocks/{username}": Operation<"/user/blocks/{username}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#delete-a-secret-for-the-authenticated-user + */ + "DELETE /user/codespaces/secrets/{secret_name}": Operation<"/user/codespaces/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret + */ + "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/user/codespaces/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#delete-a-codespace-for-the-authenticated-user + */ + "DELETE /user/codespaces/{codespace_name}": Operation<"/user/codespaces/{codespace_name}", "delete">; + /** + * @see https://docs.github.com/rest/users/emails#delete-an-email-address-for-the-authenticated-user + */ + "DELETE /user/emails": Operation<"/user/emails", "delete">; + /** + * @see https://docs.github.com/rest/users/followers#unfollow-a-user + */ + "DELETE /user/following/{username}": Operation<"/user/following/{username}", "delete">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#delete-a-gpg-key-for-the-authenticated-user + */ + "DELETE /user/gpg_keys/{gpg_key_id}": Operation<"/user/gpg_keys/{gpg_key_id}", "delete">; + /** + * @see https://docs.github.com/rest/apps/installations#remove-a-repository-from-an-app-installation + */ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}": Operation<"/user/installations/{installation_id}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/interactions/user#remove-interaction-restrictions-from-your-public-repositories + */ + "DELETE /user/interaction-limits": Operation<"/user/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/users/keys#delete-a-public-ssh-key-for-the-authenticated-user + */ + "DELETE /user/keys/{key_id}": Operation<"/user/keys/{key_id}", "delete">; + /** + * @see https://docs.github.com/rest/migrations/users#delete-a-user-migration-archive + */ + "DELETE /user/migrations/{migration_id}/archive": Operation<"/user/migrations/{migration_id}/archive", "delete">; + /** + * @see https://docs.github.com/rest/migrations/users#unlock-a-user-repository + */ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock": Operation<"/user/migrations/{migration_id}/repos/{repo_name}/lock", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-a-package-for-the-authenticated-user + */ + "DELETE /user/packages/{package_type}/{package_name}": Operation<"/user/packages/{package_type}/{package_name}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-a-package-version-for-the-authenticated-user + */ + "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/user/packages/{package_type}/{package_name}/versions/{package_version_id}", "delete">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#decline-a-repository-invitation + */ + "DELETE /user/repository_invitations/{invitation_id}": Operation<"/user/repository_invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/users/social-accounts#delete-social-accounts-for-the-authenticated-user + */ + "DELETE /user/social_accounts": Operation<"/user/social_accounts", "delete">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#delete-an-ssh-signing-key-for-the-authenticated-user + */ + "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}": Operation<"/user/ssh_signing_keys/{ssh_signing_key_id}", "delete">; + /** + * @see https://docs.github.com/rest/activity/starring#unstar-a-repository-for-the-authenticated-user + */ + "DELETE /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-a-package-for-a-user + */ + "DELETE /users/{username}/packages/{package_type}/{package_name}": Operation<"/users/{username}/packages/{package_type}/{package_name}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-package-version-for-a-user + */ + "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}", "delete">; + /** + * @see https://docs.github.com/rest/meta/meta#github-api-root + */ + "GET /": Operation<"/", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/global-advisories#list-global-security-advisories + */ + "GET /advisories": Operation<"/advisories", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/global-advisories#get-a-global-security-advisory + */ + "GET /advisories/{ghsa_id}": Operation<"/advisories/{ghsa_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-the-authenticated-app + */ + "GET /app": Operation<"/app", "get">; + /** + * @see https://docs.github.com/rest/apps/webhooks#get-a-webhook-configuration-for-an-app + */ + "GET /app/hook/config": Operation<"/app/hook/config", "get">; + /** + * @see https://docs.github.com/rest/apps/webhooks#list-deliveries-for-an-app-webhook + */ + "GET /app/hook/deliveries": Operation<"/app/hook/deliveries", "get">; + /** + * @see https://docs.github.com/rest/apps/webhooks#get-a-delivery-for-an-app-webhook + */ + "GET /app/hook/deliveries/{delivery_id}": Operation<"/app/hook/deliveries/{delivery_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#list-installation-requests-for-the-authenticated-app + */ + "GET /app/installation-requests": Operation<"/app/installation-requests", "get">; + /** + * @see https://docs.github.com/enterprise-server@3.9/rest/apps/apps#list-installations-for-the-authenticated-app + */ + "GET /app/installations": Operation<"/app/installations", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-an-installation-for-the-authenticated-app + */ + "GET /app/installations/{installation_id}": Operation<"/app/installations/{installation_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-an-app + */ + "GET /apps/{app_slug}": Operation<"/apps/{app_slug}", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#get-an-assignment + */ + "GET /assignments/{assignment_id}": Operation<"/assignments/{assignment_id}", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#list-accepted-assignments-for-an-assignment + */ + "GET /assignments/{assignment_id}/accepted_assignments": Operation<"/assignments/{assignment_id}/accepted_assignments", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#get-assignment-grades + */ + "GET /assignments/{assignment_id}/grades": Operation<"/assignments/{assignment_id}/grades", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#list-classrooms + */ + "GET /classrooms": Operation<"/classrooms", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#get-a-classroom + */ + "GET /classrooms/{classroom_id}": Operation<"/classrooms/{classroom_id}", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#list-assignments-for-a-classroom + */ + "GET /classrooms/{classroom_id}/assignments": Operation<"/classrooms/{classroom_id}/assignments", "get">; + /** + * @see https://docs.github.com/rest/codes-of-conduct/codes-of-conduct#get-all-codes-of-conduct + */ + "GET /codes_of_conduct": Operation<"/codes_of_conduct", "get">; + /** + * @see https://docs.github.com/rest/codes-of-conduct/codes-of-conduct#get-a-code-of-conduct + */ + "GET /codes_of_conduct/{key}": Operation<"/codes_of_conduct/{key}", "get">; + /** + * @see https://docs.github.com/rest/emojis/emojis#get-emojis + */ + "GET /emojis": Operation<"/emojis", "get">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-enterprise + */ + "GET /enterprises/{enterprise}/dependabot/alerts": Operation<"/enterprises/{enterprise}/dependabot/alerts", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-an-enterprise + */ + "GET /enterprises/{enterprise}/secret-scanning/alerts": Operation<"/enterprises/{enterprise}/secret-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events + */ + "GET /events": Operation<"/events", "get">; + /** + * @see https://docs.github.com/rest/activity/feeds#get-feeds + */ + "GET /feeds": Operation<"/feeds", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-gists-for-the-authenticated-user + */ + "GET /gists": Operation<"/gists", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-public-gists + */ + "GET /gists/public": Operation<"/gists/public", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-starred-gists + */ + "GET /gists/starred": Operation<"/gists/starred", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#get-a-gist + */ + "GET /gists/{gist_id}": Operation<"/gists/{gist_id}", "get">; + /** + * @see https://docs.github.com/rest/gists/comments#list-gist-comments + */ + "GET /gists/{gist_id}/comments": Operation<"/gists/{gist_id}/comments", "get">; + /** + * @see https://docs.github.com/rest/gists/comments#get-a-gist-comment + */ + "GET /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-gist-commits + */ + "GET /gists/{gist_id}/commits": Operation<"/gists/{gist_id}/commits", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-gist-forks + */ + "GET /gists/{gist_id}/forks": Operation<"/gists/{gist_id}/forks", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#check-if-a-gist-is-starred + */ + "GET /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#get-a-gist-revision + */ + "GET /gists/{gist_id}/{sha}": Operation<"/gists/{gist_id}/{sha}", "get">; + /** + * @see https://docs.github.com/rest/gitignore/gitignore#get-all-gitignore-templates + */ + "GET /gitignore/templates": Operation<"/gitignore/templates", "get">; + /** + * @see https://docs.github.com/rest/gitignore/gitignore#get-a-gitignore-template + */ + "GET /gitignore/templates/{name}": Operation<"/gitignore/templates/{name}", "get">; + /** + * @see https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-app-installation + */ + "GET /installation/repositories": Operation<"/installation/repositories", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#list-issues-assigned-to-the-authenticated-user + */ + "GET /issues": Operation<"/issues", "get">; + /** + * @see https://docs.github.com/rest/licenses/licenses#get-all-commonly-used-licenses + */ + "GET /licenses": Operation<"/licenses", "get">; + /** + * @see https://docs.github.com/rest/licenses/licenses#get-a-license + */ + "GET /licenses/{license}": Operation<"/licenses/{license}", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#get-a-subscription-plan-for-an-account + */ + "GET /marketplace_listing/accounts/{account_id}": Operation<"/marketplace_listing/accounts/{account_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-plans + */ + "GET /marketplace_listing/plans": Operation<"/marketplace_listing/plans", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan + */ + "GET /marketplace_listing/plans/{plan_id}/accounts": Operation<"/marketplace_listing/plans/{plan_id}/accounts", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#get-a-subscription-plan-for-an-account-stubbed + */ + "GET /marketplace_listing/stubbed/accounts/{account_id}": Operation<"/marketplace_listing/stubbed/accounts/{account_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-plans-stubbed + */ + "GET /marketplace_listing/stubbed/plans": Operation<"/marketplace_listing/stubbed/plans", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan-stubbed + */ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts": Operation<"/marketplace_listing/stubbed/plans/{plan_id}/accounts", "get">; + /** + * @see https://docs.github.com/rest/meta/meta#get-apiname-meta-information + */ + "GET /meta": Operation<"/meta", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events-for-a-network-of-repositories + */ + "GET /networks/{owner}/{repo}/events": Operation<"/networks/{owner}/{repo}/events", "get">; + /** + * @see https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user + */ + "GET /notifications": Operation<"/notifications", "get">; + /** + * @see https://docs.github.com/rest/activity/notifications#get-a-thread + */ + "GET /notifications/threads/{thread_id}": Operation<"/notifications/threads/{thread_id}", "get">; + /** + * @see https://docs.github.com/rest/activity/notifications#get-a-thread-subscription-for-the-authenticated-user + */ + "GET /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "get">; + /** + * @see https://docs.github.com/rest/meta/meta#get-octocat + */ + "GET /octocat": Operation<"/octocat", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-organizations + */ + "GET /organizations": Operation<"/organizations", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-the-organization + * @deprecated "org_id" is now "org" + */ + "GET /orgs/{org_id}/codespaces": Operation<"/orgs/{org}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#get-an-organization + */ + "GET /orgs/{org}": Operation<"/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/actions/cache#get-github-actions-cache-usage-for-an-organization + */ + "GET /orgs/{org}/actions/cache/usage": Operation<"/orgs/{org}/actions/cache/usage", "get">; + /** + * @see https://docs.github.com/rest/actions/cache#list-repositories-with-github-actions-cache-usage-for-an-organization + */ + "GET /orgs/{org}/actions/cache/usage-by-repository": Operation<"/orgs/{org}/actions/cache/usage-by-repository", "get">; + /** + * @see https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-an-organization + */ + "GET /orgs/{org}/actions/oidc/customization/sub": Operation<"/orgs/{org}/actions/oidc/customization/sub", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-github-actions-permissions-for-an-organization + */ + "GET /orgs/{org}/actions/permissions": Operation<"/orgs/{org}/actions/permissions", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#list-selected-repositories-enabled-for-github-actions-in-an-organization + */ + "GET /orgs/{org}/actions/permissions/repositories": Operation<"/orgs/{org}/actions/permissions/repositories", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-an-organization + */ + "GET /orgs/{org}/actions/permissions/selected-actions": Operation<"/orgs/{org}/actions/permissions/selected-actions", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-default-workflow-permissions-for-an-organization + */ + "GET /orgs/{org}/actions/permissions/workflow": Operation<"/orgs/{org}/actions/permissions/workflow", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-self-hosted-runners-for-an-organization + */ + "GET /orgs/{org}/actions/runners": Operation<"/orgs/{org}/actions/runners", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-runner-applications-for-an-organization + */ + "GET /orgs/{org}/actions/runners/downloads": Operation<"/orgs/{org}/actions/runners/downloads", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#get-a-self-hosted-runner-for-an-organization + */ + "GET /orgs/{org}/actions/runners/{runner_id}": Operation<"/orgs/{org}/actions/runners/{runner_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-labels-for-a-self-hosted-runner-for-an-organization + */ + "GET /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-organization-secrets + */ + "GET /orgs/{org}/actions/secrets": Operation<"/orgs/{org}/actions/secrets", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-an-organization-public-key + */ + "GET /orgs/{org}/actions/secrets/public-key": Operation<"/orgs/{org}/actions/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-an-organization-secret + */ + "GET /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-organization-variables + */ + "GET /orgs/{org}/actions/variables": Operation<"/orgs/{org}/actions/variables", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#get-an-organization-variable + */ + "GET /orgs/{org}/actions/variables/{name}": Operation<"/orgs/{org}/actions/variables/{name}", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-selected-repositories-for-an-organization-variable + */ + "GET /orgs/{org}/actions/variables/{name}/repositories": Operation<"/orgs/{org}/actions/variables/{name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/orgs/blocking#list-users-blocked-by-an-organization + */ + "GET /orgs/{org}/blocks": Operation<"/orgs/{org}/blocks", "get">; + /** + * @see https://docs.github.com/rest/orgs/blocking#check-if-a-user-is-blocked-by-an-organization + */ + "GET /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-an-organization + */ + "GET /orgs/{org}/code-scanning/alerts": Operation<"/orgs/{org}/code-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-the-organization + */ + "GET /orgs/{org}/codespaces": Operation<"/orgs/{org}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#list-organization-secrets + */ + "GET /orgs/{org}/codespaces/secrets": Operation<"/orgs/{org}/codespaces/secrets", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-public-key + */ + "GET /orgs/{org}/codespaces/secrets/public-key": Operation<"/orgs/{org}/codespaces/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-secret + */ + "GET /orgs/{org}/codespaces/secrets/{secret_name}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-information-and-settings-for-an-organization + */ + "GET /orgs/{org}/copilot/billing": Operation<"/orgs/{org}/copilot/billing", "get">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization + */ + "GET /orgs/{org}/copilot/billing/seats": Operation<"/orgs/{org}/copilot/billing/seats", "get">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-organization + */ + "GET /orgs/{org}/dependabot/alerts": Operation<"/orgs/{org}/dependabot/alerts", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#list-organization-secrets + */ + "GET /orgs/{org}/dependabot/secrets": Operation<"/orgs/{org}/dependabot/secrets", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#get-an-organization-public-key + */ + "GET /orgs/{org}/dependabot/secrets/public-key": Operation<"/orgs/{org}/dependabot/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#get-an-organization-secret + */ + "GET /orgs/{org}/dependabot/secrets/{secret_name}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-organization + */ + "GET /orgs/{org}/docker/conflicts": Operation<"/orgs/{org}/docker/conflicts", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-organization-events + */ + "GET /orgs/{org}/events": Operation<"/orgs/{org}/events", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-failed-organization-invitations + */ + "GET /orgs/{org}/failed_invitations": Operation<"/orgs/{org}/failed_invitations", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#list-organization-webhooks + */ + "GET /orgs/{org}/hooks": Operation<"/orgs/{org}/hooks", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#get-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization + */ + "GET /orgs/{org}/hooks/{hook_id}/config": Operation<"/orgs/{org}/hooks/{hook_id}/config", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#list-deliveries-for-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}/deliveries": Operation<"/orgs/{org}/hooks/{hook_id}/deliveries", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#get-a-webhook-delivery-for-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}": Operation<"/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-an-organization-installation-for-the-authenticated-app + */ + "GET /orgs/{org}/installation": Operation<"/orgs/{org}/installation", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-app-installations-for-an-organization + */ + "GET /orgs/{org}/installations": Operation<"/orgs/{org}/installations", "get">; + /** + * @see https://docs.github.com/rest/interactions/orgs#get-interaction-restrictions-for-an-organization + */ + "GET /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-pending-organization-invitations + */ + "GET /orgs/{org}/invitations": Operation<"/orgs/{org}/invitations", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-organization-invitation-teams + */ + "GET /orgs/{org}/invitations/{invitation_id}/teams": Operation<"/orgs/{org}/invitations/{invitation_id}/teams", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#list-organization-issues-assigned-to-the-authenticated-user + */ + "GET /orgs/{org}/issues": Operation<"/orgs/{org}/issues", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-organization-members + */ + "GET /orgs/{org}/members": Operation<"/orgs/{org}/members", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user + */ + "GET /orgs/{org}/members/{username}": Operation<"/orgs/{org}/members/{username}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-a-user-in-organization + */ + "GET /orgs/{org}/members/{username}/codespaces": Operation<"/orgs/{org}/members/{username}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-assignment-details-for-a-user + */ + "GET /orgs/{org}/members/{username}/copilot": Operation<"/orgs/{org}/members/{username}/copilot", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user + */ + "GET /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/rest/migrations/orgs#list-organization-migrations + */ + "GET /orgs/{org}/migrations": Operation<"/orgs/{org}/migrations", "get">; + /** + * @see https://docs.github.com/rest/migrations/orgs#get-an-organization-migration-status + */ + "GET /orgs/{org}/migrations/{migration_id}": Operation<"/orgs/{org}/migrations/{migration_id}", "get">; + /** + * @see https://docs.github.com/rest/migrations/orgs#download-an-organization-migration-archive + */ + "GET /orgs/{org}/migrations/{migration_id}/archive": Operation<"/orgs/{org}/migrations/{migration_id}/archive", "get">; + /** + * @see https://docs.github.com/rest/migrations/orgs#list-repositories-in-an-organization-migration + */ + "GET /orgs/{org}/migrations/{migration_id}/repositories": Operation<"/orgs/{org}/migrations/{migration_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#list-organization-fine-grained-permissions-for-an-organization + */ + "GET /orgs/{org}/organization-fine-grained-permissions": Operation<"/orgs/{org}/organization-fine-grained-permissions", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#get-all-organization-roles-for-an-organization + */ + "GET /orgs/{org}/organization-roles": Operation<"/orgs/{org}/organization-roles", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#get-an-organization-role + */ + "GET /orgs/{org}/organization-roles/{role_id}": Operation<"/orgs/{org}/organization-roles/{role_id}", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#list-teams-that-are-assigned-to-an-organization-role + */ + "GET /orgs/{org}/organization-roles/{role_id}/teams": Operation<"/orgs/{org}/organization-roles/{role_id}/teams", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#list-users-that-are-assigned-to-an-organization-role + */ + "GET /orgs/{org}/organization-roles/{role_id}/users": Operation<"/orgs/{org}/organization-roles/{role_id}/users", "get">; + /** + * @see https://docs.github.com/rest/orgs/outside-collaborators#list-outside-collaborators-for-an-organization + */ + "GET /orgs/{org}/outside_collaborators": Operation<"/orgs/{org}/outside_collaborators", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-packages-for-an-organization + */ + "GET /orgs/{org}/packages": Operation<"/orgs/{org}/packages", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-for-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-version-for-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", "get">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens + */ + "GET /orgs/{org}/personal-access-token-requests": Operation<"/orgs/{org}/personal-access-token-requests", "get">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-requested-to-be-accessed-by-a-fine-grained-personal-access-token + */ + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories": Operation<"/orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-fine-grained-personal-access-tokens-with-access-to-organization-resources + */ + "GET /orgs/{org}/personal-access-tokens": Operation<"/orgs/{org}/personal-access-tokens", "get">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-a-fine-grained-personal-access-token-has-access-to + */ + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories": Operation<"/orgs/{org}/personal-access-tokens/{pat_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/projects/projects#list-organization-projects + */ + "GET /orgs/{org}/projects": Operation<"/orgs/{org}/projects", "get">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#get-all-custom-properties-for-an-organization + */ + "GET /orgs/{org}/properties/schema": Operation<"/orgs/{org}/properties/schema", "get">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#get-a-custom-property-for-an-organization + */ + "GET /orgs/{org}/properties/schema/{custom_property_name}": Operation<"/orgs/{org}/properties/schema/{custom_property_name}", "get">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#list-custom-property-values-for-organization-repositories + */ + "GET /orgs/{org}/properties/values": Operation<"/orgs/{org}/properties/values", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-public-organization-members + */ + "GET /orgs/{org}/public_members": Operation<"/orgs/{org}/public_members", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#check-public-organization-membership-for-a-user + */ + "GET /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-organization-repositories + */ + "GET /orgs/{org}/repos": Operation<"/orgs/{org}/repos", "get">; + /** + * @see https://docs.github.com/rest/orgs/rules#get-all-organization-repository-rulesets + */ + "GET /orgs/{org}/rulesets": Operation<"/orgs/{org}/rulesets", "get">; + /** + * @see https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites + */ + "GET /orgs/{org}/rulesets/rule-suites": Operation<"/orgs/{org}/rulesets/rule-suites", "get">; + /** + * @see https://docs.github.com/rest/orgs/rule-suites#get-an-organization-rule-suite + */ + "GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}": Operation<"/orgs/{org}/rulesets/rule-suites/{rule_suite_id}", "get">; + /** + * @see https://docs.github.com/rest/orgs/rules#get-an-organization-repository-ruleset + */ + "GET /orgs/{org}/rulesets/{ruleset_id}": Operation<"/orgs/{org}/rulesets/{ruleset_id}", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-an-organization + */ + "GET /orgs/{org}/secret-scanning/alerts": Operation<"/orgs/{org}/secret-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories-for-an-organization + */ + "GET /orgs/{org}/security-advisories": Operation<"/orgs/{org}/security-advisories", "get">; + /** + * @see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams + */ + "GET /orgs/{org}/security-managers": Operation<"/orgs/{org}/security-managers", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-github-actions-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/actions": Operation<"/orgs/{org}/settings/billing/actions", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-github-packages-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/packages": Operation<"/orgs/{org}/settings/billing/packages", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-shared-storage-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/shared-storage": Operation<"/orgs/{org}/settings/billing/shared-storage", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-teams + */ + "GET /orgs/{org}/teams": Operation<"/orgs/{org}/teams", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#get-a-team-by-name + */ + "GET /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "get">; + /** + * @see https://docs.github.com/rest/teams/discussions#list-discussions + */ + "GET /orgs/{org}/teams/{team_slug}/discussions": Operation<"/orgs/{org}/teams/{team_slug}/discussions", "get">; + /** + * @see https://docs.github.com/rest/teams/discussions#get-a-discussion + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "get">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/teams/members#list-pending-team-invitations + */ + "GET /orgs/{org}/teams/{team_slug}/invitations": Operation<"/orgs/{org}/teams/{team_slug}/invitations", "get">; + /** + * @see https://docs.github.com/rest/teams/members#list-team-members + */ + "GET /orgs/{org}/teams/{team_slug}/members": Operation<"/orgs/{org}/teams/{team_slug}/members", "get">; + /** + * @see https://docs.github.com/rest/teams/members#get-team-membership-for-a-user + */ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-projects + */ + "GET /orgs/{org}/teams/{team_slug}/projects": Operation<"/orgs/{org}/teams/{team_slug}/projects", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-project + */ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-repositories + */ + "GET /orgs/{org}/teams/{team_slug}/repos": Operation<"/orgs/{org}/teams/{team_slug}/repos", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository + */ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-child-teams + */ + "GET /orgs/{org}/teams/{team_slug}/teams": Operation<"/orgs/{org}/teams/{team_slug}/teams", "get">; + /** + * @see https://docs.github.com/rest/projects/cards#get-a-project-card + */ + "GET /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "get">; + /** + * @see https://docs.github.com/rest/projects/columns#get-a-project-column + */ + "GET /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "get">; + /** + * @see https://docs.github.com/rest/projects/cards#list-project-cards + */ + "GET /projects/columns/{column_id}/cards": Operation<"/projects/columns/{column_id}/cards", "get">; + /** + * @see https://docs.github.com/rest/projects/projects#get-a-project + */ + "GET /projects/{project_id}": Operation<"/projects/{project_id}", "get">; + /** + * @see https://docs.github.com/rest/projects/collaborators#list-project-collaborators + */ + "GET /projects/{project_id}/collaborators": Operation<"/projects/{project_id}/collaborators", "get">; + /** + * @see https://docs.github.com/rest/projects/collaborators#get-project-permission-for-a-user + */ + "GET /projects/{project_id}/collaborators/{username}/permission": Operation<"/projects/{project_id}/collaborators/{username}/permission", "get">; + /** + * @see https://docs.github.com/rest/projects/columns#list-project-columns + */ + "GET /projects/{project_id}/columns": Operation<"/projects/{project_id}/columns", "get">; + /** + * @see https://docs.github.com/rest/rate-limit/rate-limit#get-rate-limit-status-for-the-authenticated-user + */ + "GET /rate_limit": Operation<"/rate_limit", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#get-a-repository + */ + "GET /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/actions/artifacts#list-artifacts-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/artifacts": Operation<"/repos/{owner}/{repo}/actions/artifacts", "get">; + /** + * @see https://docs.github.com/rest/actions/artifacts#get-an-artifact + */ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/artifacts#download-an-artifact + */ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}", "get">; + /** + * @see https://docs.github.com/rest/actions/cache#get-github-actions-cache-usage-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/cache/usage": Operation<"/repos/{owner}/{repo}/actions/cache/usage", "get">; + /** + * @see https://docs.github.com/rest/actions/cache#list-github-actions-caches-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/caches": Operation<"/repos/{owner}/{repo}/actions/caches", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#get-a-job-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#download-job-logs-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}/logs", "get">; + /** + * @see https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/oidc/customization/sub": Operation<"/repos/{owner}/{repo}/actions/oidc/customization/sub", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-repository-organization-secrets + */ + "GET /repos/{owner}/{repo}/actions/organization-secrets": Operation<"/repos/{owner}/{repo}/actions/organization-secrets", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-repository-organization-variables + */ + "GET /repos/{owner}/{repo}/actions/organization-variables": Operation<"/repos/{owner}/{repo}/actions/organization-variables", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-github-actions-permissions-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions": Operation<"/repos/{owner}/{repo}/actions/permissions", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-the-level-of-access-for-workflows-outside-of-the-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions/access": Operation<"/repos/{owner}/{repo}/actions/permissions/access", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions": Operation<"/repos/{owner}/{repo}/actions/permissions/selected-actions", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-default-workflow-permissions-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions/workflow": Operation<"/repos/{owner}/{repo}/actions/permissions/workflow", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-self-hosted-runners-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners": Operation<"/repos/{owner}/{repo}/actions/runners", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-runner-applications-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/downloads": Operation<"/repos/{owner}/{repo}/actions/runners/downloads", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#get-a-self-hosted-runner-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-labels-for-a-self-hosted-runner-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runs": Operation<"/repos/{owner}/{repo}/actions/runs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-the-review-history-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/approvals", "get">; + /** + * @see https://docs.github.com/rest/actions/artifacts#list-workflow-run-artifacts + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run-attempt + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run-attempt + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-attempt-logs + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-logs + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/logs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-pending-deployments-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-workflow-run-usage + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/timing", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/actions/secrets": Operation<"/repos/{owner}/{repo}/actions/secrets", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-a-repository-public-key + */ + "GET /repos/{owner}/{repo}/actions/secrets/public-key": Operation<"/repos/{owner}/{repo}/actions/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-a-repository-secret + */ + "GET /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-repository-variables + */ + "GET /repos/{owner}/{repo}/actions/variables": Operation<"/repos/{owner}/{repo}/actions/variables", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#get-a-repository-variable + */ + "GET /repos/{owner}/{repo}/actions/variables/{name}": Operation<"/repos/{owner}/{repo}/actions/variables/{name}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflows#list-repository-workflows + */ + "GET /repos/{owner}/{repo}/actions/workflows": Operation<"/repos/{owner}/{repo}/actions/workflows", "get">; + /** + * @see https://docs.github.com/rest/actions/workflows#get-a-workflow + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-workflow + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflows#get-workflow-usage + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-activities + */ + "GET /repos/{owner}/{repo}/activity": Operation<"/repos/{owner}/{repo}/activity", "get">; + /** + * @see https://docs.github.com/rest/issues/assignees#list-assignees + */ + "GET /repos/{owner}/{repo}/assignees": Operation<"/repos/{owner}/{repo}/assignees", "get">; + /** + * @see https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned + */ + "GET /repos/{owner}/{repo}/assignees/{assignee}": Operation<"/repos/{owner}/{repo}/assignees/{assignee}", "get">; + /** + * @see https://docs.github.com/rest/repos/autolinks#get-all-autolinks-of-a-repository + */ + "GET /repos/{owner}/{repo}/autolinks": Operation<"/repos/{owner}/{repo}/autolinks", "get">; + /** + * @see https://docs.github.com/rest/repos/autolinks#get-an-autolink-reference-of-a-repository + */ + "GET /repos/{owner}/{repo}/autolinks/{autolink_id}": Operation<"/repos/{owner}/{repo}/autolinks/{autolink_id}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#check-if-automated-security-fixes-are-enabled-for-a-repository + */ + "GET /repos/{owner}/{repo}/automated-security-fixes": Operation<"/repos/{owner}/{repo}/automated-security-fixes", "get">; + /** + * @see https://docs.github.com/rest/branches/branches#list-branches + */ + "GET /repos/{owner}/{repo}/branches": Operation<"/repos/{owner}/{repo}/branches", "get">; + /** + * @see https://docs.github.com/rest/branches/branches#get-a-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}": Operation<"/repos/{owner}/{repo}/branches/{branch}", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-branch-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-admin-branch-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-pull-request-review-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-commit-signature-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-status-checks-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-all-status-check-contexts + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-access-restrictions + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-apps-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-teams-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-users-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "get">; + /** + * @see https://docs.github.com/rest/checks/runs#get-a-check-run + */ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}", "get">; + /** + * @see https://docs.github.com/rest/checks/runs#list-check-run-annotations + */ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "get">; + /** + * @see https://docs.github.com/rest/checks/suites#get-a-check-suite + */ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}", "get">; + /** + * @see https://docs.github.com/rest/checks/runs#list-check-runs-in-a-check-suite + */ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "get">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-code-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts": Operation<"/repos/{owner}/{repo}/code-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-alert + * @deprecated "alert_id" is now "alert_number" + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_id}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-alert + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-instances-of-a-code-scanning-alert + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-analyses-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/analyses": Operation<"/repos/{owner}/{repo}/code-scanning/analyses", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}": Operation<"/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-codeql-databases-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases": Operation<"/repos/{owner}/{repo}/code-scanning/codeql/databases", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-codeql-database-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}": Operation<"/repos/{owner}/{repo}/code-scanning/codeql/databases/{language}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-default-setup-configuration + */ + "GET /repos/{owner}/{repo}/code-scanning/default-setup": Operation<"/repos/{owner}/{repo}/code-scanning/default-setup", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload + */ + "GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}": Operation<"/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-codeowners-errors + */ + "GET /repos/{owner}/{repo}/codeowners/errors": Operation<"/repos/{owner}/{repo}/codeowners/errors", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#list-codespaces-in-a-repository-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces": Operation<"/repos/{owner}/{repo}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#list-devcontainer-configurations-in-a-repository-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces/devcontainers": Operation<"/repos/{owner}/{repo}/codespaces/devcontainers", "get">; + /** + * @see https://docs.github.com/rest/codespaces/machines#list-available-machine-types-for-a-repository + */ + "GET /repos/{owner}/{repo}/codespaces/machines": Operation<"/repos/{owner}/{repo}/codespaces/machines", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#get-default-attributes-for-a-codespace + */ + "GET /repos/{owner}/{repo}/codespaces/new": Operation<"/repos/{owner}/{repo}/codespaces/new", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#check-if-permissions-defined-by-a-devcontainer-have-been-accepted-by-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces/permissions_check": Operation<"/repos/{owner}/{repo}/codespaces/permissions_check", "get">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/codespaces/secrets": Operation<"/repos/{owner}/{repo}/codespaces/secrets", "get">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-public-key + */ + "GET /repos/{owner}/{repo}/codespaces/secrets/public-key": Operation<"/repos/{owner}/{repo}/codespaces/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-secret + */ + "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/codespaces/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#list-repository-collaborators + */ + "GET /repos/{owner}/{repo}/collaborators": Operation<"/repos/{owner}/{repo}/collaborators", "get">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#check-if-a-user-is-a-repository-collaborator + */ + "GET /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "get">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#get-repository-permissions-for-a-user + */ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission": Operation<"/repos/{owner}/{repo}/collaborators/{username}/permission", "get">; + /** + * @see https://docs.github.com/rest/commits/comments#list-commit-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/comments": Operation<"/repos/{owner}/{repo}/comments", "get">; + /** + * @see https://docs.github.com/rest/commits/comments#get-a-commit-comment + */ + "GET /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-commit-comment + */ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#list-commits + */ + "GET /repos/{owner}/{repo}/commits": Operation<"/repos/{owner}/{repo}/commits", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#list-branches-for-head-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "get">; + /** + * @see https://docs.github.com/rest/commits/comments#list-commit-comments + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/comments", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#list-pull-requests-associated-with-a-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/pulls", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#get-a-commit + */ + "GET /repos/{owner}/{repo}/commits/{ref}": Operation<"/repos/{owner}/{repo}/commits/{ref}", "get">; + /** + * @see https://docs.github.com/rest/checks/runs#list-check-runs-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs": Operation<"/repos/{owner}/{repo}/commits/{ref}/check-runs", "get">; + /** + * @see https://docs.github.com/rest/checks/suites#list-check-suites-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites": Operation<"/repos/{owner}/{repo}/commits/{ref}/check-suites", "get">; + /** + * @see https://docs.github.com/rest/commits/statuses#get-the-combined-status-for-a-specific-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/status": Operation<"/repos/{owner}/{repo}/commits/{ref}/status", "get">; + /** + * @see https://docs.github.com/rest/commits/statuses#list-commit-statuses-for-a-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses": Operation<"/repos/{owner}/{repo}/commits/{ref}/statuses", "get">; + /** + * @see https://docs.github.com/rest/metrics/community#get-community-profile-metrics + */ + "GET /repos/{owner}/{repo}/community/profile": Operation<"/repos/{owner}/{repo}/community/profile", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#compare-two-commits + */ + "GET /repos/{owner}/{repo}/compare/{basehead}": Operation<"/repos/{owner}/{repo}/compare/{basehead}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#compare-two-commits + */ + "GET /repos/{owner}/{repo}/compare/{base}...{head}": Operation<"/repos/{owner}/{repo}/compare/{base}...{head}", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#get-repository-content + */ + "GET /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-contributors + */ + "GET /repos/{owner}/{repo}/contributors": Operation<"/repos/{owner}/{repo}/contributors", "get">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/dependabot/alerts": Operation<"/repos/{owner}/{repo}/dependabot/alerts", "get">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#get-a-dependabot-alert + */ + "GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/dependabot/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/dependabot/secrets": Operation<"/repos/{owner}/{repo}/dependabot/secrets", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#get-a-repository-public-key + */ + "GET /repos/{owner}/{repo}/dependabot/secrets/public-key": Operation<"/repos/{owner}/{repo}/dependabot/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#get-a-repository-secret + */ + "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/dependency-graph/dependency-review#get-a-diff-of-the-dependencies-between-commits + */ + "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}": Operation<"/repos/{owner}/{repo}/dependency-graph/compare/{basehead}", "get">; + /** + * @see https://docs.github.com/rest/dependency-graph/sboms#export-a-software-bill-of-materials-sbom-for-a-repository + */ + "GET /repos/{owner}/{repo}/dependency-graph/sbom": Operation<"/repos/{owner}/{repo}/dependency-graph/sbom", "get">; + /** + * @see https://docs.github.com/rest/deployments/deployments#list-deployments + */ + "GET /repos/{owner}/{repo}/deployments": Operation<"/repos/{owner}/{repo}/deployments", "get">; + /** + * @see https://docs.github.com/rest/deployments/deployments#get-a-deployment + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}", "get">; + /** + * @see https://docs.github.com/rest/deployments/statuses#list-deployment-statuses + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "get">; + /** + * @see https://docs.github.com/rest/deployments/statuses#get-a-deployment-status + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}", "get">; + /** + * @see https://docs.github.com/rest/deployments/environments#list-environments + */ + "GET /repos/{owner}/{repo}/environments": Operation<"/repos/{owner}/{repo}/environments", "get">; + /** + * @see https://docs.github.com/rest/deployments/environments#get-an-environment + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}", "get">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#list-deployment-branch-policies + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies", "get">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#get-a-deployment-branch-policy + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}", "get">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#get-all-deployment-protection-rules-for-an-environment + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules", "get">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#list-custom-deployment-rule-integrations-available-for-an-environment + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps", "get">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#get-a-custom-deployment-protection-rule + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-repository-events + */ + "GET /repos/{owner}/{repo}/events": Operation<"/repos/{owner}/{repo}/events", "get">; + /** + * @see https://docs.github.com/rest/repos/forks#list-forks + */ + "GET /repos/{owner}/{repo}/forks": Operation<"/repos/{owner}/{repo}/forks", "get">; + /** + * @see https://docs.github.com/rest/git/blobs#get-a-blob + */ + "GET /repos/{owner}/{repo}/git/blobs/{file_sha}": Operation<"/repos/{owner}/{repo}/git/blobs/{file_sha}", "get">; + /** + * @see https://docs.github.com/rest/git/commits#get-a-commit-object + */ + "GET /repos/{owner}/{repo}/git/commits/{commit_sha}": Operation<"/repos/{owner}/{repo}/git/commits/{commit_sha}", "get">; + /** + * @see https://docs.github.com/rest/git/refs#list-matching-references + */ + "GET /repos/{owner}/{repo}/git/matching-refs/{ref}": Operation<"/repos/{owner}/{repo}/git/matching-refs/{ref}", "get">; + /** + * @see https://docs.github.com/rest/git/refs#get-a-reference + */ + "GET /repos/{owner}/{repo}/git/ref/{ref}": Operation<"/repos/{owner}/{repo}/git/ref/{ref}", "get">; + /** + * @see https://docs.github.com/rest/git/tags#get-a-tag + */ + "GET /repos/{owner}/{repo}/git/tags/{tag_sha}": Operation<"/repos/{owner}/{repo}/git/tags/{tag_sha}", "get">; + /** + * @see https://docs.github.com/rest/git/trees#get-a-tree + */ + "GET /repos/{owner}/{repo}/git/trees/{tree_sha}": Operation<"/repos/{owner}/{repo}/git/trees/{tree_sha}", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#list-repository-webhooks + */ + "GET /repos/{owner}/{repo}/hooks": Operation<"/repos/{owner}/{repo}/hooks", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#get-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#get-a-webhook-configuration-for-a-repository + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/config", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#list-deliveries-for-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#get-a-delivery-for-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}", "get">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#get-an-import-status + */ + "GET /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "get">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#get-commit-authors + */ + "GET /repos/{owner}/{repo}/import/authors": Operation<"/repos/{owner}/{repo}/import/authors", "get">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#get-large-files + */ + "GET /repos/{owner}/{repo}/import/large_files": Operation<"/repos/{owner}/{repo}/import/large_files", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-a-repository-installation-for-the-authenticated-app + */ + "GET /repos/{owner}/{repo}/installation": Operation<"/repos/{owner}/{repo}/installation", "get">; + /** + * @see https://docs.github.com/rest/interactions/repos#get-interaction-restrictions-for-a-repository + */ + "GET /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#list-repository-invitations + */ + "GET /repos/{owner}/{repo}/invitations": Operation<"/repos/{owner}/{repo}/invitations", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#list-repository-issues + */ + "GET /repos/{owner}/{repo}/issues": Operation<"/repos/{owner}/{repo}/issues", "get">; + /** + * @see https://docs.github.com/rest/issues/comments#list-issue-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/comments": Operation<"/repos/{owner}/{repo}/issues/comments", "get">; + /** + * @see https://docs.github.com/rest/issues/comments#get-an-issue-comment + */ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue-comment + */ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/issues/events#list-issue-events-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/events": Operation<"/repos/{owner}/{repo}/issues/events", "get">; + /** + * @see https://docs.github.com/rest/issues/events#get-an-issue-event + */ + "GET /repos/{owner}/{repo}/issues/events/{event_id}": Operation<"/repos/{owner}/{repo}/issues/events/{event_id}", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#get-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}", "get">; + /** + * @see https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned-to-a-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", "get">; + /** + * @see https://docs.github.com/rest/issues/comments#list-issue-comments + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/issues/events#list-issue-events + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/events": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/events", "get">; + /** + * @see https://docs.github.com/rest/issues/labels#list-labels-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/issues/timeline#list-timeline-events-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/timeline", "get">; + /** + * @see https://docs.github.com/rest/deploy-keys/deploy-keys#list-deploy-keys + */ + "GET /repos/{owner}/{repo}/keys": Operation<"/repos/{owner}/{repo}/keys", "get">; + /** + * @see https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key + */ + "GET /repos/{owner}/{repo}/keys/{key_id}": Operation<"/repos/{owner}/{repo}/keys/{key_id}", "get">; + /** + * @see https://docs.github.com/rest/issues/labels#list-labels-for-a-repository + */ + "GET /repos/{owner}/{repo}/labels": Operation<"/repos/{owner}/{repo}/labels", "get">; + /** + * @see https://docs.github.com/rest/issues/labels#get-a-label + */ + "GET /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-languages + */ + "GET /repos/{owner}/{repo}/languages": Operation<"/repos/{owner}/{repo}/languages", "get">; + /** + * @see https://docs.github.com/rest/licenses/licenses#get-the-license-for-a-repository + */ + "GET /repos/{owner}/{repo}/license": Operation<"/repos/{owner}/{repo}/license", "get">; + /** + * @see https://docs.github.com/rest/issues/milestones#list-milestones + */ + "GET /repos/{owner}/{repo}/milestones": Operation<"/repos/{owner}/{repo}/milestones", "get">; + /** + * @see https://docs.github.com/rest/issues/milestones#get-a-milestone + */ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "get">; + /** + * @see https://docs.github.com/rest/issues/labels#list-labels-for-issues-in-a-milestone + */ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}/labels", "get">; + /** + * @see https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/notifications": Operation<"/repos/{owner}/{repo}/notifications", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-a-apiname-pages-site + */ + "GET /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#list-apiname-pages-builds + */ + "GET /repos/{owner}/{repo}/pages/builds": Operation<"/repos/{owner}/{repo}/pages/builds", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-latest-pages-build + */ + "GET /repos/{owner}/{repo}/pages/builds/latest": Operation<"/repos/{owner}/{repo}/pages/builds/latest", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-apiname-pages-build + */ + "GET /repos/{owner}/{repo}/pages/builds/{build_id}": Operation<"/repos/{owner}/{repo}/pages/builds/{build_id}", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-the-status-of-a-github-pages-deployment + */ + "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}": Operation<"/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-a-dns-health-check-for-github-pages + */ + "GET /repos/{owner}/{repo}/pages/health": Operation<"/repos/{owner}/{repo}/pages/health", "get">; + /** + * @see https://docs.github.com/rest/projects/projects#list-repository-projects + */ + "GET /repos/{owner}/{repo}/projects": Operation<"/repos/{owner}/{repo}/projects", "get">; + /** + * @see https://docs.github.com/rest/repos/custom-properties#get-all-custom-property-values-for-a-repository + */ + "GET /repos/{owner}/{repo}/properties/values": Operation<"/repos/{owner}/{repo}/properties/values", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#list-pull-requests + */ + "GET /repos/{owner}/{repo}/pulls": Operation<"/repos/{owner}/{repo}/pulls", "get">; + /** + * @see https://docs.github.com/rest/pulls/comments#list-review-comments-in-a-repository + */ + "GET /repos/{owner}/{repo}/pulls/comments": Operation<"/repos/{owner}/{repo}/pulls/comments", "get">; + /** + * @see https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-pull-request-review-comment + */ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#get-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}", "get">; + /** + * @see https://docs.github.com/rest/pulls/comments#list-review-comments-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#list-commits-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/commits", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#list-pull-requests-files + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/files", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#check-if-a-pull-request-has-been-merged + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/merge": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/merge", "get">; + /** + * @see https://docs.github.com/rest/pulls/review-requests#get-all-requested-reviewers-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "get">; + /** + * @see https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews", "get">; + /** + * @see https://docs.github.com/rest/pulls/reviews#get-a-review-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "get">; + /** + * @see https://docs.github.com/rest/pulls/reviews#list-comments-for-a-pull-request-review + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#get-a-repository-readme + */ + "GET /repos/{owner}/{repo}/readme": Operation<"/repos/{owner}/{repo}/readme", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#get-a-repository-readme-for-a-directory + */ + "GET /repos/{owner}/{repo}/readme/{dir}": Operation<"/repos/{owner}/{repo}/readme/{dir}", "get">; + /** + * @see https://docs.github.com/rest/releases/releases#list-releases + */ + "GET /repos/{owner}/{repo}/releases": Operation<"/repos/{owner}/{repo}/releases", "get">; + /** + * @see https://docs.github.com/rest/releases/assets#get-a-release-asset + */ + "GET /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "get">; + /** + * @see https://docs.github.com/rest/releases/releases#get-the-latest-release + */ + "GET /repos/{owner}/{repo}/releases/latest": Operation<"/repos/{owner}/{repo}/releases/latest", "get">; + /** + * @see https://docs.github.com/rest/releases/releases#get-a-release-by-tag-name + */ + "GET /repos/{owner}/{repo}/releases/tags/{tag}": Operation<"/repos/{owner}/{repo}/releases/tags/{tag}", "get">; + /** + * @see https://docs.github.com/rest/releases/releases#get-a-release + */ + "GET /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "get">; + /** + * @see https://docs.github.com/rest/releases/assets#list-release-assets + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets": Operation<"/repos/{owner}/{repo}/releases/{release_id}/assets", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-release + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions": Operation<"/repos/{owner}/{repo}/releases/{release_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/repos/rules#get-rules-for-a-branch + */ + "GET /repos/{owner}/{repo}/rules/branches/{branch}": Operation<"/repos/{owner}/{repo}/rules/branches/{branch}", "get">; + /** + * @see https://docs.github.com/rest/repos/rules#get-all-repository-rulesets + */ + "GET /repos/{owner}/{repo}/rulesets": Operation<"/repos/{owner}/{repo}/rulesets", "get">; + /** + * @see https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites + */ + "GET /repos/{owner}/{repo}/rulesets/rule-suites": Operation<"/repos/{owner}/{repo}/rulesets/rule-suites", "get">; + /** + * @see https://docs.github.com/rest/repos/rule-suites#get-a-repository-rule-suite + */ + "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}": Operation<"/repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}", "get">; + /** + * @see https://docs.github.com/rest/repos/rules#get-a-repository-ruleset + */ + "GET /repos/{owner}/{repo}/rulesets/{ruleset_id}": Operation<"/repos/{owner}/{repo}/rulesets/{ruleset_id}", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#get-a-secret-scanning-alert + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-locations-for-a-secret-scanning-alert + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories + */ + "GET /repos/{owner}/{repo}/security-advisories": Operation<"/repos/{owner}/{repo}/security-advisories", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#get-a-repository-security-advisory + */ + "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}": Operation<"/repos/{owner}/{repo}/security-advisories/{ghsa_id}", "get">; + /** + * @see https://docs.github.com/rest/activity/starring#list-stargazers + */ + "GET /repos/{owner}/{repo}/stargazers": Operation<"/repos/{owner}/{repo}/stargazers", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/code_frequency": Operation<"/repos/{owner}/{repo}/stats/code_frequency", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-the-last-year-of-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/commit_activity": Operation<"/repos/{owner}/{repo}/stats/commit_activity", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-all-contributor-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/contributors": Operation<"/repos/{owner}/{repo}/stats/contributors", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-count + */ + "GET /repos/{owner}/{repo}/stats/participation": Operation<"/repos/{owner}/{repo}/stats/participation", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-the-hourly-commit-count-for-each-day + */ + "GET /repos/{owner}/{repo}/stats/punch_card": Operation<"/repos/{owner}/{repo}/stats/punch_card", "get">; + /** + * @see https://docs.github.com/rest/activity/watching#list-watchers + */ + "GET /repos/{owner}/{repo}/subscribers": Operation<"/repos/{owner}/{repo}/subscribers", "get">; + /** + * @see https://docs.github.com/rest/activity/watching#get-a-repository-subscription + */ + "GET /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-tags + */ + "GET /repos/{owner}/{repo}/tags": Operation<"/repos/{owner}/{repo}/tags", "get">; + /** + * @see https://docs.github.com/rest/repos/tags#list-tag-protection-states-for-a-repository + */ + "GET /repos/{owner}/{repo}/tags/protection": Operation<"/repos/{owner}/{repo}/tags/protection", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#download-a-repository-archive-tar + */ + "GET /repos/{owner}/{repo}/tarball/{ref}": Operation<"/repos/{owner}/{repo}/tarball/{ref}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-teams + */ + "GET /repos/{owner}/{repo}/teams": Operation<"/repos/{owner}/{repo}/teams", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#get-all-repository-topics + */ + "GET /repos/{owner}/{repo}/topics": Operation<"/repos/{owner}/{repo}/topics", "get">; + /** + * @see https://docs.github.com/rest/metrics/traffic#get-repository-clones + */ + "GET /repos/{owner}/{repo}/traffic/clones": Operation<"/repos/{owner}/{repo}/traffic/clones", "get">; + /** + * @see https://docs.github.com/rest/metrics/traffic#get-top-referral-paths + */ + "GET /repos/{owner}/{repo}/traffic/popular/paths": Operation<"/repos/{owner}/{repo}/traffic/popular/paths", "get">; + /** + * @see https://docs.github.com/rest/metrics/traffic#get-top-referral-sources + */ + "GET /repos/{owner}/{repo}/traffic/popular/referrers": Operation<"/repos/{owner}/{repo}/traffic/popular/referrers", "get">; + /** + * @see https://docs.github.com/rest/metrics/traffic#get-page-views + */ + "GET /repos/{owner}/{repo}/traffic/views": Operation<"/repos/{owner}/{repo}/traffic/views", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#check-if-vulnerability-alerts-are-enabled-for-a-repository + */ + "GET /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#download-a-repository-archive-zip + */ + "GET /repos/{owner}/{repo}/zipball/{ref}": Operation<"/repos/{owner}/{repo}/zipball/{ref}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-public-repositories + */ + "GET /repositories": Operation<"/repositories", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-environment-secrets + */ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-an-environment-public-key + */ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-an-environment-secret + */ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-environment-variables + */ + "GET /repositories/{repository_id}/environments/{environment_name}/variables": Operation<"/repositories/{repository_id}/environments/{environment_name}/variables", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#get-an-environment-variable + */ + "GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/variables/{name}", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-code + */ + "GET /search/code": Operation<"/search/code", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-commits + */ + "GET /search/commits": Operation<"/search/commits", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-issues-and-pull-requests + */ + "GET /search/issues": Operation<"/search/issues", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-labels + */ + "GET /search/labels": Operation<"/search/labels", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-repositories + */ + "GET /search/repositories": Operation<"/search/repositories", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-topics + */ + "GET /search/topics": Operation<"/search/topics", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-users + */ + "GET /search/users": Operation<"/search/users", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#get-a-team-legacy + */ + "GET /teams/{team_id}": Operation<"/teams/{team_id}", "get">; + /** + * @see https://docs.github.com/rest/teams/discussions#list-discussions-legacy + */ + "GET /teams/{team_id}/discussions": Operation<"/teams/{team_id}/discussions", "get">; + /** + * @see https://docs.github.com/rest/teams/discussions#get-a-discussion-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "get">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/teams/members#list-pending-team-invitations-legacy + */ + "GET /teams/{team_id}/invitations": Operation<"/teams/{team_id}/invitations", "get">; + /** + * @see https://docs.github.com/rest/teams/members#list-team-members-legacy + */ + "GET /teams/{team_id}/members": Operation<"/teams/{team_id}/members", "get">; + /** + * @see https://docs.github.com/rest/teams/members#get-team-member-legacy + */ + "GET /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "get">; + /** + * @see https://docs.github.com/rest/teams/members#get-team-membership-for-a-user-legacy + */ + "GET /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-projects-legacy + */ + "GET /teams/{team_id}/projects": Operation<"/teams/{team_id}/projects", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-project-legacy + */ + "GET /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-repositories-legacy + */ + "GET /teams/{team_id}/repos": Operation<"/teams/{team_id}/repos", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository-legacy + */ + "GET /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-child-teams-legacy + */ + "GET /teams/{team_id}/teams": Operation<"/teams/{team_id}/teams", "get">; + /** + * @see https://docs.github.com/rest/users/users#get-the-authenticated-user + */ + "GET /user": Operation<"/user", "get">; + /** + * @see https://docs.github.com/rest/users/blocking#list-users-blocked-by-the-authenticated-user + */ + "GET /user/blocks": Operation<"/user/blocks", "get">; + /** + * @see https://docs.github.com/rest/users/blocking#check-if-a-user-is-blocked-by-the-authenticated-user + */ + "GET /user/blocks/{username}": Operation<"/user/blocks/{username}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#list-codespaces-for-the-authenticated-user + */ + "GET /user/codespaces": Operation<"/user/codespaces", "get">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#list-secrets-for-the-authenticated-user + */ + "GET /user/codespaces/secrets": Operation<"/user/codespaces/secrets", "get">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#get-public-key-for-the-authenticated-user + */ + "GET /user/codespaces/secrets/public-key": Operation<"/user/codespaces/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#get-a-secret-for-the-authenticated-user + */ + "GET /user/codespaces/secrets/{secret_name}": Operation<"/user/codespaces/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret + */ + "GET /user/codespaces/secrets/{secret_name}/repositories": Operation<"/user/codespaces/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#get-a-codespace-for-the-authenticated-user + */ + "GET /user/codespaces/{codespace_name}": Operation<"/user/codespaces/{codespace_name}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#get-details-about-a-codespace-export + */ + "GET /user/codespaces/{codespace_name}/exports/{export_id}": Operation<"/user/codespaces/{codespace_name}/exports/{export_id}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/machines#list-machine-types-for-a-codespace + */ + "GET /user/codespaces/{codespace_name}/machines": Operation<"/user/codespaces/{codespace_name}/machines", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-authenticated-user + */ + "GET /user/docker/conflicts": Operation<"/user/docker/conflicts", "get">; + /** + * @see https://docs.github.com/rest/users/emails#list-email-addresses-for-the-authenticated-user + */ + "GET /user/emails": Operation<"/user/emails", "get">; + /** + * @see https://docs.github.com/rest/users/followers#list-followers-of-the-authenticated-user + */ + "GET /user/followers": Operation<"/user/followers", "get">; + /** + * @see https://docs.github.com/rest/users/followers#list-the-people-the-authenticated-user-follows + */ + "GET /user/following": Operation<"/user/following", "get">; + /** + * @see https://docs.github.com/rest/users/followers#check-if-a-person-is-followed-by-the-authenticated-user + */ + "GET /user/following/{username}": Operation<"/user/following/{username}", "get">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-the-authenticated-user + */ + "GET /user/gpg_keys": Operation<"/user/gpg_keys", "get">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#get-a-gpg-key-for-the-authenticated-user + */ + "GET /user/gpg_keys/{gpg_key_id}": Operation<"/user/gpg_keys/{gpg_key_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/installations#list-app-installations-accessible-to-the-user-access-token + */ + "GET /user/installations": Operation<"/user/installations", "get">; + /** + * @see https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-user-access-token + */ + "GET /user/installations/{installation_id}/repositories": Operation<"/user/installations/{installation_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/interactions/user#get-interaction-restrictions-for-your-public-repositories + */ + "GET /user/interaction-limits": Operation<"/user/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#list-user-account-issues-assigned-to-the-authenticated-user + */ + "GET /user/issues": Operation<"/user/issues", "get">; + /** + * @see https://docs.github.com/rest/users/keys#list-public-ssh-keys-for-the-authenticated-user + */ + "GET /user/keys": Operation<"/user/keys", "get">; + /** + * @see https://docs.github.com/rest/users/keys#get-a-public-ssh-key-for-the-authenticated-user + */ + "GET /user/keys/{key_id}": Operation<"/user/keys/{key_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user + */ + "GET /user/marketplace_purchases": Operation<"/user/marketplace_purchases", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user-stubbed + */ + "GET /user/marketplace_purchases/stubbed": Operation<"/user/marketplace_purchases/stubbed", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-organization-memberships-for-the-authenticated-user + */ + "GET /user/memberships/orgs": Operation<"/user/memberships/orgs", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#get-an-organization-membership-for-the-authenticated-user + */ + "GET /user/memberships/orgs/{org}": Operation<"/user/memberships/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/migrations/users#list-user-migrations + */ + "GET /user/migrations": Operation<"/user/migrations", "get">; + /** + * @see https://docs.github.com/rest/migrations/users#get-a-user-migration-status + */ + "GET /user/migrations/{migration_id}": Operation<"/user/migrations/{migration_id}", "get">; + /** + * @see https://docs.github.com/rest/migrations/users#download-a-user-migration-archive + */ + "GET /user/migrations/{migration_id}/archive": Operation<"/user/migrations/{migration_id}/archive", "get">; + /** + * @see https://docs.github.com/rest/migrations/users#list-repositories-for-a-user-migration + */ + "GET /user/migrations/{migration_id}/repositories": Operation<"/user/migrations/{migration_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user + */ + "GET /user/orgs": Operation<"/user/orgs", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-packages-for-the-authenticated-users-namespace + */ + "GET /user/packages": Operation<"/user/packages", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-for-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}": Operation<"/user/packages/{package_type}/{package_name}", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}/versions": Operation<"/user/packages/{package_type}/{package_name}/versions", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-version-for-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/user/packages/{package_type}/{package_name}/versions/{package_version_id}", "get">; + /** + * @see https://docs.github.com/rest/users/emails#list-public-email-addresses-for-the-authenticated-user + */ + "GET /user/public_emails": Operation<"/user/public_emails", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repositories-for-the-authenticated-user + */ + "GET /user/repos": Operation<"/user/repos", "get">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#list-repository-invitations-for-the-authenticated-user + */ + "GET /user/repository_invitations": Operation<"/user/repository_invitations", "get">; + /** + * @see https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-the-authenticated-user + */ + "GET /user/social_accounts": Operation<"/user/social_accounts", "get">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-the-authenticated-user + */ + "GET /user/ssh_signing_keys": Operation<"/user/ssh_signing_keys", "get">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#get-an-ssh-signing-key-for-the-authenticated-user + */ + "GET /user/ssh_signing_keys/{ssh_signing_key_id}": Operation<"/user/ssh_signing_keys/{ssh_signing_key_id}", "get">; + /** + * @see https://docs.github.com/rest/activity/starring#list-repositories-starred-by-the-authenticated-user + */ + "GET /user/starred": Operation<"/user/starred", "get">; + /** + * @see https://docs.github.com/rest/activity/starring#check-if-a-repository-is-starred-by-the-authenticated-user + */ + "GET /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/activity/watching#list-repositories-watched-by-the-authenticated-user + */ + "GET /user/subscriptions": Operation<"/user/subscriptions", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-teams-for-the-authenticated-user + */ + "GET /user/teams": Operation<"/user/teams", "get">; + /** + * @see https://docs.github.com/rest/users/users#list-users + */ + "GET /users": Operation<"/users", "get">; + /** + * @see https://docs.github.com/rest/users/users#get-a-user + */ + "GET /users/{username}": Operation<"/users/{username}", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-user + */ + "GET /users/{username}/docker/conflicts": Operation<"/users/{username}/docker/conflicts", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-events-for-the-authenticated-user + */ + "GET /users/{username}/events": Operation<"/users/{username}/events", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-organization-events-for-the-authenticated-user + */ + "GET /users/{username}/events/orgs/{org}": Operation<"/users/{username}/events/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events-for-a-user + */ + "GET /users/{username}/events/public": Operation<"/users/{username}/events/public", "get">; + /** + * @see https://docs.github.com/rest/users/followers#list-followers-of-a-user + */ + "GET /users/{username}/followers": Operation<"/users/{username}/followers", "get">; + /** + * @see https://docs.github.com/rest/users/followers#list-the-people-a-user-follows + */ + "GET /users/{username}/following": Operation<"/users/{username}/following", "get">; + /** + * @see https://docs.github.com/rest/users/followers#check-if-a-user-follows-another-user + */ + "GET /users/{username}/following/{target_user}": Operation<"/users/{username}/following/{target_user}", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-gists-for-a-user + */ + "GET /users/{username}/gists": Operation<"/users/{username}/gists", "get">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-a-user + */ + "GET /users/{username}/gpg_keys": Operation<"/users/{username}/gpg_keys", "get">; + /** + * @see https://docs.github.com/rest/users/users#get-contextual-information-for-a-user + */ + "GET /users/{username}/hovercard": Operation<"/users/{username}/hovercard", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-a-user-installation-for-the-authenticated-app + */ + "GET /users/{username}/installation": Operation<"/users/{username}/installation", "get">; + /** + * @see https://docs.github.com/rest/users/keys#list-public-keys-for-a-user + */ + "GET /users/{username}/keys": Operation<"/users/{username}/keys", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-organizations-for-a-user + */ + "GET /users/{username}/orgs": Operation<"/users/{username}/orgs", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-packages-for-a-user + */ + "GET /users/{username}/packages": Operation<"/users/{username}/packages", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-for-a-user + */ + "GET /users/{username}/packages/{package_type}/{package_name}": Operation<"/users/{username}/packages/{package_type}/{package_name}", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-a-user + */ + "GET /users/{username}/packages/{package_type}/{package_name}/versions": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-version-for-a-user + */ + "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}", "get">; + /** + * @see https://docs.github.com/rest/projects/projects#list-user-projects + */ + "GET /users/{username}/projects": Operation<"/users/{username}/projects", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-events-received-by-the-authenticated-user + */ + "GET /users/{username}/received_events": Operation<"/users/{username}/received_events", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events-received-by-a-user + */ + "GET /users/{username}/received_events/public": Operation<"/users/{username}/received_events/public", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repositories-for-a-user + */ + "GET /users/{username}/repos": Operation<"/users/{username}/repos", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-github-actions-billing-for-a-user + */ + "GET /users/{username}/settings/billing/actions": Operation<"/users/{username}/settings/billing/actions", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-github-packages-billing-for-a-user + */ + "GET /users/{username}/settings/billing/packages": Operation<"/users/{username}/settings/billing/packages", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-shared-storage-billing-for-a-user + */ + "GET /users/{username}/settings/billing/shared-storage": Operation<"/users/{username}/settings/billing/shared-storage", "get">; + /** + * @see https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-a-user + */ + "GET /users/{username}/social_accounts": Operation<"/users/{username}/social_accounts", "get">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-a-user + */ + "GET /users/{username}/ssh_signing_keys": Operation<"/users/{username}/ssh_signing_keys", "get">; + /** + * @see https://docs.github.com/rest/activity/starring#list-repositories-starred-by-a-user + */ + "GET /users/{username}/starred": Operation<"/users/{username}/starred", "get">; + /** + * @see https://docs.github.com/rest/activity/watching#list-repositories-watched-by-a-user + */ + "GET /users/{username}/subscriptions": Operation<"/users/{username}/subscriptions", "get">; + /** + * @see https://docs.github.com/rest/meta/meta#get-all-api-versions + */ + "GET /versions": Operation<"/versions", "get">; + /** + * @see https://docs.github.com/rest/meta/meta#get-the-zen-of-github + */ + "GET /zen": Operation<"/zen", "get">; + /** + * @see https://docs.github.com/rest/apps/webhooks#update-a-webhook-configuration-for-an-app + */ + "PATCH /app/hook/config": Operation<"/app/hook/config", "patch">; + /** + * @see https://docs.github.com/rest/apps/oauth-applications#reset-a-token + */ + "PATCH /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "patch">; + /** + * @see https://docs.github.com/rest/reference/gists/#update-a-gist + */ + "PATCH /gists/{gist_id}": Operation<"/gists/{gist_id}", "patch">; + /** + * @see https://docs.github.com/rest/gists/comments#update-a-gist-comment + */ + "PATCH /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/activity/notifications#mark-a-thread-as-read + */ + "PATCH /notifications/threads/{thread_id}": Operation<"/notifications/threads/{thread_id}", "patch">; + /** + * @see https://docs.github.com/rest/orgs/orgs#update-an-organization + */ + "PATCH /orgs/{org}": Operation<"/orgs/{org}", "patch">; + /** + * @see https://docs.github.com/rest/actions/variables#update-an-organization-variable + */ + "PATCH /orgs/{org}/actions/variables/{name}": Operation<"/orgs/{org}/actions/variables/{name}", "patch">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#update-an-organization-webhook + */ + "PATCH /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "patch">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization + */ + "PATCH /orgs/{org}/hooks/{hook_id}/config": Operation<"/orgs/{org}/hooks/{hook_id}/config", "patch">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#update-a-custom-organization-role + */ + "PATCH /orgs/{org}/organization-roles/{role_id}": Operation<"/orgs/{org}/organization-roles/{role_id}", "patch">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-properties-for-an-organization + */ + "PATCH /orgs/{org}/properties/schema": Operation<"/orgs/{org}/properties/schema", "patch">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-property-values-for-organization-repositories + */ + "PATCH /orgs/{org}/properties/values": Operation<"/orgs/{org}/properties/values", "patch">; + /** + * @see https://docs.github.com/rest/teams/teams#update-a-team + */ + "PATCH /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "patch">; + /** + * @see https://docs.github.com/rest/teams/discussions#update-a-discussion + */ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "patch">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#update-a-discussion-comment + */ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "patch">; + /** + * @see https://docs.github.com/rest/projects/cards#update-an-existing-project-card + */ + "PATCH /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "patch">; + /** + * @see https://docs.github.com/rest/projects/columns#update-an-existing-project-column + */ + "PATCH /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "patch">; + /** + * @see https://docs.github.com/rest/projects/projects#update-a-project + */ + "PATCH /projects/{project_id}": Operation<"/projects/{project_id}", "patch">; + /** + * @see https://docs.github.com/rest/repos/repos#update-a-repository + */ + "PATCH /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "patch">; + /** + * @see https://docs.github.com/rest/actions/variables#update-a-repository-variable + */ + "PATCH /repos/{owner}/{repo}/actions/variables/{name}": Operation<"/repos/{owner}/{repo}/actions/variables/{name}", "patch">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#update-pull-request-review-protection + */ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "patch">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#update-status-check-protection + */ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "patch">; + /** + * @see https://docs.github.com/rest/checks/runs#update-a-check-run + */ + "PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}", "patch">; + /** + * @see https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites + */ + "PATCH /repos/{owner}/{repo}/check-suites/preferences": Operation<"/repos/{owner}/{repo}/check-suites/preferences", "patch">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-alert + */ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "patch">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-default-setup-configuration + */ + "PATCH /repos/{owner}/{repo}/code-scanning/default-setup": Operation<"/repos/{owner}/{repo}/code-scanning/default-setup", "patch">; + /** + * @see https://docs.github.com/rest/commits/comments#update-a-commit-comment + */ + "PATCH /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#update-a-dependabot-alert + */ + "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/dependabot/alerts/{alert_number}", "patch">; + /** + * @see https://docs.github.com/rest/git/refs#update-a-reference + */ + "PATCH /repos/{owner}/{repo}/git/refs/{ref}": Operation<"/repos/{owner}/{repo}/git/refs/{ref}", "patch">; + /** + * @see https://docs.github.com/rest/repos/webhooks#update-a-repository-webhook + */ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "patch">; + /** + * @see https://docs.github.com/rest/repos/webhooks#update-a-webhook-configuration-for-a-repository + */ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/config", "patch">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#update-an-import + */ + "PATCH /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "patch">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author + */ + "PATCH /repos/{owner}/{repo}/import/authors/{author_id}": Operation<"/repos/{owner}/{repo}/import/authors/{author_id}", "patch">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference + */ + "PATCH /repos/{owner}/{repo}/import/lfs": Operation<"/repos/{owner}/{repo}/import/lfs", "patch">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#update-a-repository-invitation + */ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}": Operation<"/repos/{owner}/{repo}/invitations/{invitation_id}", "patch">; + /** + * @see https://docs.github.com/rest/issues/comments#update-an-issue-comment + */ + "PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/issues/issues#update-an-issue + */ + "PATCH /repos/{owner}/{repo}/issues/{issue_number}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}", "patch">; + /** + * @see https://docs.github.com/rest/issues/labels#update-a-label + */ + "PATCH /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "patch">; + /** + * @see https://docs.github.com/rest/issues/milestones#update-a-milestone + */ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "patch">; + /** + * @see https://docs.github.com/rest/repos/custom-properties#create-or-update-custom-property-values-for-a-repository + */ + "PATCH /repos/{owner}/{repo}/properties/values": Operation<"/repos/{owner}/{repo}/properties/values", "patch">; + /** + * @see https://docs.github.com/rest/pulls/comments#update-a-review-comment-for-a-pull-request + */ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/pulls/pulls#update-a-pull-request + */ + "PATCH /repos/{owner}/{repo}/pulls/{pull_number}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}", "patch">; + /** + * @see https://docs.github.com/rest/releases/assets#update-a-release-asset + */ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "patch">; + /** + * @see https://docs.github.com/rest/releases/releases#update-a-release + */ + "PATCH /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "patch">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#update-a-secret-scanning-alert + */ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", "patch">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#update-a-repository-security-advisory + */ + "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}": Operation<"/repos/{owner}/{repo}/security-advisories/{ghsa_id}", "patch">; + /** + * @see https://docs.github.com/rest/actions/variables#update-an-environment-variable + */ + "PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/variables/{name}", "patch">; + /** + * @see https://docs.github.com/rest/teams/teams#update-a-team-legacy + */ + "PATCH /teams/{team_id}": Operation<"/teams/{team_id}", "patch">; + /** + * @see https://docs.github.com/rest/teams/discussions#update-a-discussion-legacy + */ + "PATCH /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "patch">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#update-a-discussion-comment-legacy + */ + "PATCH /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "patch">; + /** + * @see https://docs.github.com/rest/users/users#update-the-authenticated-user + */ + "PATCH /user": Operation<"/user", "patch">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#update-a-codespace-for-the-authenticated-user + */ + "PATCH /user/codespaces/{codespace_name}": Operation<"/user/codespaces/{codespace_name}", "patch">; + /** + * @see https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user + */ + "PATCH /user/email/visibility": Operation<"/user/email/visibility", "patch">; + /** + * @see https://docs.github.com/rest/orgs/members#update-an-organization-membership-for-the-authenticated-user + */ + "PATCH /user/memberships/orgs/{org}": Operation<"/user/memberships/orgs/{org}", "patch">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#accept-a-repository-invitation + */ + "PATCH /user/repository_invitations/{invitation_id}": Operation<"/user/repository_invitations/{invitation_id}", "patch">; + /** + * @see https://docs.github.com/rest/apps/apps#create-a-github-app-from-a-manifest + */ + "POST /app-manifests/{code}/conversions": Operation<"/app-manifests/{code}/conversions", "post">; + /** + * @see https://docs.github.com/rest/apps/webhooks#redeliver-a-delivery-for-an-app-webhook + */ + "POST /app/hook/deliveries/{delivery_id}/attempts": Operation<"/app/hook/deliveries/{delivery_id}/attempts", "post">; + /** + * @see https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app + */ + "POST /app/installations/{installation_id}/access_tokens": Operation<"/app/installations/{installation_id}/access_tokens", "post">; + /** + * @see https://docs.github.com/rest/apps/oauth-applications#check-a-token + */ + "POST /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "post">; + /** + * @see https://docs.github.com/rest/apps/apps#create-a-scoped-access-token + */ + "POST /applications/{client_id}/token/scoped": Operation<"/applications/{client_id}/token/scoped", "post">; + /** + * @see https://docs.github.com/rest/gists/gists#create-a-gist + */ + "POST /gists": Operation<"/gists", "post">; + /** + * @see https://docs.github.com/rest/gists/comments#create-a-gist-comment + */ + "POST /gists/{gist_id}/comments": Operation<"/gists/{gist_id}/comments", "post">; + /** + * @see https://docs.github.com/rest/gists/gists#fork-a-gist + */ + "POST /gists/{gist_id}/forks": Operation<"/gists/{gist_id}/forks", "post">; + /** + * @see https://docs.github.com/rest/markdown/markdown#render-a-markdown-document + */ + "POST /markdown": Operation<"/markdown", "post">; + /** + * @see https://docs.github.com/rest/markdown/markdown#render-a-markdown-document-in-raw-mode + */ + "POST /markdown/raw": Operation<"/markdown/raw", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-configuration-for-a-just-in-time-runner-for-an-organization + */ + "POST /orgs/{org}/actions/runners/generate-jitconfig": Operation<"/orgs/{org}/actions/runners/generate-jitconfig", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-a-registration-token-for-an-organization + */ + "POST /orgs/{org}/actions/runners/registration-token": Operation<"/orgs/{org}/actions/runners/registration-token", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-a-remove-token-for-an-organization + */ + "POST /orgs/{org}/actions/runners/remove-token": Operation<"/orgs/{org}/actions/runners/remove-token", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#add-custom-labels-to-a-self-hosted-runner-for-an-organization + */ + "POST /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "post">; + /** + * @see https://docs.github.com/rest/actions/variables#create-an-organization-variable + */ + "POST /orgs/{org}/actions/variables": Operation<"/orgs/{org}/actions/variables", "post">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#add-users-to-codespaces-access-for-an-organization + */ + "POST /orgs/{org}/codespaces/access/selected_users": Operation<"/orgs/{org}/codespaces/access/selected_users", "post">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#add-teams-to-the-copilot-subscription-for-an-organization + */ + "POST /orgs/{org}/copilot/billing/selected_teams": Operation<"/orgs/{org}/copilot/billing/selected_teams", "post">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#add-users-to-the-copilot-subscription-for-an-organization + */ + "POST /orgs/{org}/copilot/billing/selected_users": Operation<"/orgs/{org}/copilot/billing/selected_users", "post">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#create-an-organization-webhook + */ + "POST /orgs/{org}/hooks": Operation<"/orgs/{org}/hooks", "post">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#redeliver-a-delivery-for-an-organization-webhook + */ + "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": Operation<"/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts", "post">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#ping-an-organization-webhook + */ + "POST /orgs/{org}/hooks/{hook_id}/pings": Operation<"/orgs/{org}/hooks/{hook_id}/pings", "post">; + /** + * @see https://docs.github.com/rest/orgs/members#create-an-organization-invitation + */ + "POST /orgs/{org}/invitations": Operation<"/orgs/{org}/invitations", "post">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#stop-a-codespace-for-an-organization-user + */ + "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop": Operation<"/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop", "post">; + /** + * @see https://docs.github.com/rest/migrations/orgs#start-an-organization-migration + */ + "POST /orgs/{org}/migrations": Operation<"/orgs/{org}/migrations", "post">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#create-a-custom-organization-role + */ + "POST /orgs/{org}/organization-roles": Operation<"/orgs/{org}/organization-roles", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-a-package-for-an-organization + */ + "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/restore", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-package-version-for-an-organization + */ + "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", "post">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#review-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens + */ + "POST /orgs/{org}/personal-access-token-requests": Operation<"/orgs/{org}/personal-access-token-requests", "post">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#review-a-request-to-access-organization-resources-with-a-fine-grained-personal-access-token + */ + "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}": Operation<"/orgs/{org}/personal-access-token-requests/{pat_request_id}", "post">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-to-organization-resources-via-fine-grained-personal-access-tokens + */ + "POST /orgs/{org}/personal-access-tokens": Operation<"/orgs/{org}/personal-access-tokens", "post">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-a-fine-grained-personal-access-token-has-to-organization-resources + */ + "POST /orgs/{org}/personal-access-tokens/{pat_id}": Operation<"/orgs/{org}/personal-access-tokens/{pat_id}", "post">; + /** + * @see https://docs.github.com/rest/projects/projects#create-an-organization-project + */ + "POST /orgs/{org}/projects": Operation<"/orgs/{org}/projects", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#create-an-organization-repository + */ + "POST /orgs/{org}/repos": Operation<"/orgs/{org}/repos", "post">; + /** + * @see https://docs.github.com/rest/orgs/rules#create-an-organization-repository-ruleset + */ + "POST /orgs/{org}/rulesets": Operation<"/orgs/{org}/rulesets", "post">; + /** + * @see https://docs.github.com/rest/teams/teams#create-a-team + */ + "POST /orgs/{org}/teams": Operation<"/orgs/{org}/teams", "post">; + /** + * @see https://docs.github.com/rest/teams/discussions#create-a-discussion + */ + "POST /orgs/{org}/teams/{team_slug}/discussions": Operation<"/orgs/{org}/teams/{team_slug}/discussions", "post">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#create-a-discussion-comment + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/orgs/orgs#enable-or-disable-a-security-feature-for-an-organization + */ + "POST /orgs/{org}/{security_product}/{enablement}": Operation<"/orgs/{org}/{security_product}/{enablement}", "post">; + /** + * @see https://docs.github.com/rest/projects/cards#move-a-project-card + */ + "POST /projects/columns/cards/{card_id}/moves": Operation<"/projects/columns/cards/{card_id}/moves", "post">; + /** + * @see https://docs.github.com/rest/projects/cards#create-a-project-card + */ + "POST /projects/columns/{column_id}/cards": Operation<"/projects/columns/{column_id}/cards", "post">; + /** + * @see https://docs.github.com/rest/projects/columns#move-a-project-column + */ + "POST /projects/columns/{column_id}/moves": Operation<"/projects/columns/{column_id}/moves", "post">; + /** + * @see https://docs.github.com/rest/projects/columns#create-a-project-column + */ + "POST /projects/{project_id}/columns": Operation<"/projects/{project_id}/columns", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-configuration-for-a-just-in-time-runner-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig": Operation<"/repos/{owner}/{repo}/actions/runners/generate-jitconfig", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-a-registration-token-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/registration-token": Operation<"/repos/{owner}/{repo}/actions/runners/registration-token", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-a-remove-token-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/remove-token": Operation<"/repos/{owner}/{repo}/actions/runners/remove-token", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#add-custom-labels-to-a-self-hosted-runner-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#approve-a-workflow-run-for-a-fork-pull-request + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/approve", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#cancel-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/cancel", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#review-custom-deployment-protection-rules-for-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#force-cancel-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#re-run-a-workflow + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/rerun", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#re-run-failed-jobs-from-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs", "post">; + /** + * @see https://docs.github.com/rest/actions/variables#create-a-repository-variable + */ + "POST /repos/{owner}/{repo}/actions/variables": Operation<"/repos/{owner}/{repo}/actions/variables", "post">; + /** + * @see https://docs.github.com/rest/actions/workflows#create-a-workflow-dispatch-event + */ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches", "post">; + /** + * @see https://docs.github.com/rest/repos/autolinks#create-an-autolink-reference-for-a-repository + */ + "POST /repos/{owner}/{repo}/autolinks": Operation<"/repos/{owner}/{repo}/autolinks", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-admin-branch-protection + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#create-commit-signature-protection + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#add-status-check-contexts + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#add-app-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#add-team-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#add-user-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "post">; + /** + * @see https://docs.github.com/rest/branches/branches#rename-a-branch + */ + "POST /repos/{owner}/{repo}/branches/{branch}/rename": Operation<"/repos/{owner}/{repo}/branches/{branch}/rename", "post">; + /** + * @see https://docs.github.com/rest/reference/checks#create-a-check-run + */ + "POST /repos/{owner}/{repo}/check-runs": Operation<"/repos/{owner}/{repo}/check-runs", "post">; + /** + * @see https://docs.github.com/rest/checks/runs#rerequest-a-check-run + */ + "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest", "post">; + /** + * @see https://docs.github.com/rest/checks/suites#create-a-check-suite + */ + "POST /repos/{owner}/{repo}/check-suites": Operation<"/repos/{owner}/{repo}/check-suites", "post">; + /** + * @see https://docs.github.com/rest/checks/suites#rerequest-a-check-suite + */ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest", "post">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#upload-an-analysis-as-sarif-data + */ + "POST /repos/{owner}/{repo}/code-scanning/sarifs": Operation<"/repos/{owner}/{repo}/code-scanning/sarifs", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-in-a-repository + */ + "POST /repos/{owner}/{repo}/codespaces": Operation<"/repos/{owner}/{repo}/codespaces", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-commit-comment + */ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/commits/comments#create-a-commit-comment + */ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/comments", "post">; + /** + * @see https://docs.github.com/rest/dependency-graph/dependency-submission#create-a-snapshot-of-dependencies-for-a-repository + */ + "POST /repos/{owner}/{repo}/dependency-graph/snapshots": Operation<"/repos/{owner}/{repo}/dependency-graph/snapshots", "post">; + /** + * @see https://docs.github.com/rest/deployments/deployments#create-a-deployment + */ + "POST /repos/{owner}/{repo}/deployments": Operation<"/repos/{owner}/{repo}/deployments", "post">; + /** + * @see https://docs.github.com/rest/deployments/statuses#create-a-deployment-status + */ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#create-a-repository-dispatch-event + */ + "POST /repos/{owner}/{repo}/dispatches": Operation<"/repos/{owner}/{repo}/dispatches", "post">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#create-a-deployment-branch-policy + */ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies", "post">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#create-a-custom-deployment-protection-rule-on-an-environment + */ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules", "post">; + /** + * @see https://docs.github.com/rest/repos/forks#create-a-fork + */ + "POST /repos/{owner}/{repo}/forks": Operation<"/repos/{owner}/{repo}/forks", "post">; + /** + * @see https://docs.github.com/rest/git/blobs#create-a-blob + */ + "POST /repos/{owner}/{repo}/git/blobs": Operation<"/repos/{owner}/{repo}/git/blobs", "post">; + /** + * @see https://docs.github.com/rest/git/commits#create-a-commit + */ + "POST /repos/{owner}/{repo}/git/commits": Operation<"/repos/{owner}/{repo}/git/commits", "post">; + /** + * @see https://docs.github.com/rest/git/refs#create-a-reference + */ + "POST /repos/{owner}/{repo}/git/refs": Operation<"/repos/{owner}/{repo}/git/refs", "post">; + /** + * @see https://docs.github.com/rest/git/tags#create-a-tag-object + */ + "POST /repos/{owner}/{repo}/git/tags": Operation<"/repos/{owner}/{repo}/git/tags", "post">; + /** + * @see https://docs.github.com/rest/git/trees#create-a-tree + */ + "POST /repos/{owner}/{repo}/git/trees": Operation<"/repos/{owner}/{repo}/git/trees", "post">; + /** + * @see https://docs.github.com/rest/repos/webhooks#create-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks": Operation<"/repos/{owner}/{repo}/hooks", "post">; + /** + * @see https://docs.github.com/rest/repos/webhooks#redeliver-a-delivery-for-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts", "post">; + /** + * @see https://docs.github.com/rest/repos/webhooks#ping-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/pings": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/pings", "post">; + /** + * @see https://docs.github.com/rest/repos/webhooks#test-the-push-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/tests": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/tests", "post">; + /** + * @see https://docs.github.com/rest/issues/issues#create-an-issue + */ + "POST /repos/{owner}/{repo}/issues": Operation<"/repos/{owner}/{repo}/issues", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue-comment + */ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/issues/assignees#add-assignees-to-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/assignees", "post">; + /** + * @see https://docs.github.com/rest/issues/comments#create-an-issue-comment + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/issues/labels#add-labels-to-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/deploy-keys/deploy-keys#create-a-deploy-key + */ + "POST /repos/{owner}/{repo}/keys": Operation<"/repos/{owner}/{repo}/keys", "post">; + /** + * @see https://docs.github.com/rest/issues/labels#create-a-label + */ + "POST /repos/{owner}/{repo}/labels": Operation<"/repos/{owner}/{repo}/labels", "post">; + /** + * @see https://docs.github.com/rest/branches/branches#sync-a-fork-branch-with-the-upstream-repository + */ + "POST /repos/{owner}/{repo}/merge-upstream": Operation<"/repos/{owner}/{repo}/merge-upstream", "post">; + /** + * @see https://docs.github.com/rest/branches/branches#merge-a-branch + */ + "POST /repos/{owner}/{repo}/merges": Operation<"/repos/{owner}/{repo}/merges", "post">; + /** + * @see https://docs.github.com/rest/issues/milestones#create-a-milestone + */ + "POST /repos/{owner}/{repo}/milestones": Operation<"/repos/{owner}/{repo}/milestones", "post">; + /** + * @see https://docs.github.com/rest/pages/pages#create-a-apiname-pages-site + */ + "POST /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "post">; + /** + * @see https://docs.github.com/rest/pages/pages#request-a-apiname-pages-build + */ + "POST /repos/{owner}/{repo}/pages/builds": Operation<"/repos/{owner}/{repo}/pages/builds", "post">; + /** + * @see https://docs.github.com/rest/pages/pages#create-a-github-pages-deployment + */ + "POST /repos/{owner}/{repo}/pages/deployments": Operation<"/repos/{owner}/{repo}/pages/deployments", "post">; + /** + * @see https://docs.github.com/rest/pages/pages#cancel-a-github-pages-deployment + */ + "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel": Operation<"/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel", "post">; + /** + * @see https://docs.github.com/rest/projects/projects#create-a-repository-project + */ + "POST /repos/{owner}/{repo}/projects": Operation<"/repos/{owner}/{repo}/projects", "post">; + /** + * @see https://docs.github.com/rest/pulls/pulls#create-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls": Operation<"/repos/{owner}/{repo}/pulls", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-pull-request-review-comment + */ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-from-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/codespaces", "post">; + /** + * @see https://docs.github.com/rest/pulls/comments#create-a-review-comment-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/pulls/comments#create-a-reply-for-a-review-comment + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies", "post">; + /** + * @see https://docs.github.com/rest/reference/pulls#request-reviewers-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "post">; + /** + * @see https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews", "post">; + /** + * @see https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events", "post">; + /** + * @see https://docs.github.com/rest/releases/releases#create-a-release + */ + "POST /repos/{owner}/{repo}/releases": Operation<"/repos/{owner}/{repo}/releases", "post">; + /** + * @see https://docs.github.com/rest/releases/releases#generate-release-notes-content-for-a-release + */ + "POST /repos/{owner}/{repo}/releases/generate-notes": Operation<"/repos/{owner}/{repo}/releases/generate-notes", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-release + */ + "POST /repos/{owner}/{repo}/releases/{release_id}/reactions": Operation<"/repos/{owner}/{repo}/releases/{release_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/repos/rules#create-a-repository-ruleset + */ + "POST /repos/{owner}/{repo}/rulesets": Operation<"/repos/{owner}/{repo}/rulesets", "post">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#create-a-repository-security-advisory + */ + "POST /repos/{owner}/{repo}/security-advisories": Operation<"/repos/{owner}/{repo}/security-advisories", "post">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#privately-report-a-security-vulnerability + */ + "POST /repos/{owner}/{repo}/security-advisories/reports": Operation<"/repos/{owner}/{repo}/security-advisories/reports", "post">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#request-a-cve-for-a-repository-security-advisory + */ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve": Operation<"/repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve", "post">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#create-a-temporary-private-fork + */ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks": Operation<"/repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks", "post">; + /** + * @see https://docs.github.com/rest/commits/statuses#create-a-commit-status + */ + "POST /repos/{owner}/{repo}/statuses/{sha}": Operation<"/repos/{owner}/{repo}/statuses/{sha}", "post">; + /** + * @see https://docs.github.com/rest/repos/tags#create-a-tag-protection-state-for-a-repository + */ + "POST /repos/{owner}/{repo}/tags/protection": Operation<"/repos/{owner}/{repo}/tags/protection", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#transfer-a-repository + */ + "POST /repos/{owner}/{repo}/transfer": Operation<"/repos/{owner}/{repo}/transfer", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#create-a-repository-using-a-template + */ + "POST /repos/{template_owner}/{template_repo}/generate": Operation<"/repos/{template_owner}/{template_repo}/generate", "post">; + /** + * @see https://docs.github.com/rest/actions/variables#create-an-environment-variable + */ + "POST /repositories/{repository_id}/environments/{environment_name}/variables": Operation<"/repositories/{repository_id}/environments/{environment_name}/variables", "post">; + /** + * @see https://docs.github.com/rest/teams/discussions#create-a-discussion-legacy + */ + "POST /teams/{team_id}/discussions": Operation<"/teams/{team_id}/discussions", "post">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#create-a-discussion-comment-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/comments": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces": Operation<"/user/codespaces", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#export-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces/{codespace_name}/exports": Operation<"/user/codespaces/{codespace_name}/exports", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#create-a-repository-from-an-unpublished-codespace + */ + "POST /user/codespaces/{codespace_name}/publish": Operation<"/user/codespaces/{codespace_name}/publish", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#start-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces/{codespace_name}/start": Operation<"/user/codespaces/{codespace_name}/start", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#stop-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces/{codespace_name}/stop": Operation<"/user/codespaces/{codespace_name}/stop", "post">; + /** + * @see https://docs.github.com/rest/users/emails#add-an-email-address-for-the-authenticated-user + */ + "POST /user/emails": Operation<"/user/emails", "post">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#create-a-gpg-key-for-the-authenticated-user + */ + "POST /user/gpg_keys": Operation<"/user/gpg_keys", "post">; + /** + * @see https://docs.github.com/rest/users/keys#create-a-public-ssh-key-for-the-authenticated-user + */ + "POST /user/keys": Operation<"/user/keys", "post">; + /** + * @see https://docs.github.com/rest/migrations/users#start-a-user-migration + */ + "POST /user/migrations": Operation<"/user/migrations", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-a-package-for-the-authenticated-user + */ + "POST /user/packages/{package_type}/{package_name}/restore{?token}": Operation<"/user/packages/{package_type}/{package_name}/restore", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-a-package-version-for-the-authenticated-user + */ + "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": Operation<"/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", "post">; + /** + * @see https://docs.github.com/rest/projects/projects#create-a-user-project + */ + "POST /user/projects": Operation<"/user/projects", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user + */ + "POST /user/repos": Operation<"/user/repos", "post">; + /** + * @see https://docs.github.com/rest/users/social-accounts#add-social-accounts-for-the-authenticated-user + */ + "POST /user/social_accounts": Operation<"/user/social_accounts", "post">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#create-a-ssh-signing-key-for-the-authenticated-user + */ + "POST /user/ssh_signing_keys": Operation<"/user/ssh_signing_keys", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-a-package-for-a-user + */ + "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}": Operation<"/users/{username}/packages/{package_type}/{package_name}/restore", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-package-version-for-a-user + */ + "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", "post">; + /** + * @see https://docs.github.com/rest/releases/assets#upload-a-release-asset + */ + "POST {origin}/repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}": Operation<"/repos/{owner}/{repo}/releases/{release_id}/assets", "post">; + /** + * @see https://docs.github.com/rest/apps/apps#suspend-an-app-installation + */ + "PUT /app/installations/{installation_id}/suspended": Operation<"/app/installations/{installation_id}/suspended", "put">; + /** + * @see https://docs.github.com/rest/gists/gists#star-a-gist + */ + "PUT /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "put">; + /** + * @see https://docs.github.com/rest/activity/notifications#mark-notifications-as-read + */ + "PUT /notifications": Operation<"/notifications", "put">; + /** + * @see https://docs.github.com/rest/activity/notifications#set-a-thread-subscription + */ + "PUT /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "put">; + /** + * @see https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-an-organization + */ + "PUT /orgs/{org}/actions/oidc/customization/sub": Operation<"/orgs/{org}/actions/oidc/customization/sub", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-github-actions-permissions-for-an-organization + */ + "PUT /orgs/{org}/actions/permissions": Operation<"/orgs/{org}/actions/permissions", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-selected-repositories-enabled-for-github-actions-in-an-organization + */ + "PUT /orgs/{org}/actions/permissions/repositories": Operation<"/orgs/{org}/actions/permissions/repositories", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#enable-a-selected-repository-for-github-actions-in-an-organization + */ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}": Operation<"/orgs/{org}/actions/permissions/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-allowed-actions-and-reusable-workflows-for-an-organization + */ + "PUT /orgs/{org}/actions/permissions/selected-actions": Operation<"/orgs/{org}/actions/permissions/selected-actions", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-default-workflow-permissions-for-an-organization + */ + "PUT /orgs/{org}/actions/permissions/workflow": Operation<"/orgs/{org}/actions/permissions/workflow", "put">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#set-custom-labels-for-a-self-hosted-runner-for-an-organization + */ + "PUT /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/actions/secrets#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/actions/secrets#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/actions/variables#set-selected-repositories-for-an-organization-variable + */ + "PUT /orgs/{org}/actions/variables/{name}/repositories": Operation<"/orgs/{org}/actions/variables/{name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/actions/variables#add-selected-repository-to-an-organization-variable + */ + "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/variables/{name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/orgs/blocking#block-a-user-from-an-organization + */ + "PUT /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "put">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces + */ + "PUT /orgs/{org}/codespaces/access": Operation<"/orgs/{org}/codespaces/access", "put">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret + */ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret + */ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/interactions/orgs#set-interaction-restrictions-for-an-organization + */ + "PUT /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/orgs/members#set-organization-membership-for-a-user + */ + "PUT /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-team + */ + "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}": Operation<"/orgs/{org}/organization-roles/teams/{team_slug}/{role_id}", "put">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-user + */ + "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}": Operation<"/orgs/{org}/organization-roles/users/{username}/{role_id}", "put">; + /** + * @see https://docs.github.com/rest/orgs/outside-collaborators#convert-an-organization-member-to-outside-collaborator + */ + "PUT /orgs/{org}/outside_collaborators/{username}": Operation<"/orgs/{org}/outside_collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#create-or-update-a-custom-property-for-an-organization + */ + "PUT /orgs/{org}/properties/schema/{custom_property_name}": Operation<"/orgs/{org}/properties/schema/{custom_property_name}", "put">; + /** + * @see https://docs.github.com/rest/orgs/members#set-public-organization-membership-for-the-authenticated-user + */ + "PUT /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "put">; + /** + * @see https://docs.github.com/rest/orgs/rules#update-an-organization-repository-ruleset + */ + "PUT /orgs/{org}/rulesets/{ruleset_id}": Operation<"/orgs/{org}/rulesets/{ruleset_id}", "put">; + /** + * @see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team + */ + "PUT /orgs/{org}/security-managers/teams/{team_slug}": Operation<"/orgs/{org}/security-managers/teams/{team_slug}", "put">; + /** + * @see https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user + */ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/rest/teams/teams#add-or-update-team-project-permissions + */ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "put">; + /** + * @see https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions + */ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "put">; + /** + * @see https://docs.github.com/rest/projects/collaborators#add-project-collaborator + */ + "PUT /projects/{project_id}/collaborators/{username}": Operation<"/projects/{project_id}/collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub": Operation<"/repos/{owner}/{repo}/actions/oidc/customization/sub", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-github-actions-permissions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions": Operation<"/repos/{owner}/{repo}/actions/permissions", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-the-level-of-access-for-workflows-outside-of-the-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions/access": Operation<"/repos/{owner}/{repo}/actions/permissions/access", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-allowed-actions-and-reusable-workflows-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions": Operation<"/repos/{owner}/{repo}/actions/permissions/selected-actions", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-default-workflow-permissions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions/workflow": Operation<"/repos/{owner}/{repo}/actions/permissions/workflow", "put">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#set-custom-labels-for-a-self-hosted-runner-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "put">; + /** + * @see https://docs.github.com/rest/actions/secrets#create-or-update-a-repository-secret + */ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/actions/workflows#disable-a-workflow + */ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable", "put">; + /** + * @see https://docs.github.com/rest/actions/workflows#enable-a-workflow + */ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable", "put">; + /** + * @see https://docs.github.com/rest/repos/repos#enable-automated-security-fixes + */ + "PUT /repos/{owner}/{repo}/automated-security-fixes": Operation<"/repos/{owner}/{repo}/automated-security-fixes", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#update-branch-protection + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-status-check-contexts + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-app-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-team-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-user-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "put">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#create-or-update-a-repository-secret + */ + "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/codespaces/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#add-a-repository-collaborator + */ + "PUT /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/repos/contents#create-or-update-file-contents + */ + "PUT /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "put">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#create-or-update-a-repository-secret + */ + "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/deployments/environments#create-or-update-an-environment + */ + "PUT /repos/{owner}/{repo}/environments/{environment_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}", "put">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#update-a-deployment-branch-policy + */ + "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}", "put">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#start-an-import + */ + "PUT /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "put">; + /** + * @see https://docs.github.com/rest/interactions/repos#set-interaction-restrictions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/issues/labels#set-labels-for-an-issue + */ + "PUT /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "put">; + /** + * @see https://docs.github.com/rest/issues/issues#lock-an-issue + */ + "PUT /repos/{owner}/{repo}/issues/{issue_number}/lock": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/lock", "put">; + /** + * @see https://docs.github.com/rest/activity/notifications#mark-repository-notifications-as-read + */ + "PUT /repos/{owner}/{repo}/notifications": Operation<"/repos/{owner}/{repo}/notifications", "put">; + /** + * @see https://docs.github.com/rest/pages/pages#update-information-about-a-apiname-pages-site + */ + "PUT /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "put">; + /** + * @see https://docs.github.com/rest/repos/repos#enable-private-vulnerability-reporting-for-a-repository + */ + "PUT /repos/{owner}/{repo}/private-vulnerability-reporting": Operation<"/repos/{owner}/{repo}/private-vulnerability-reporting", "put">; + /** + * @see https://docs.github.com/rest/pulls/pulls#merge-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/merge", "put">; + /** + * @see https://docs.github.com/rest/pulls/reviews#update-a-review-for-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "put">; + /** + * @see https://docs.github.com/rest/pulls/reviews#dismiss-a-review-for-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals", "put">; + /** + * @see https://docs.github.com/rest/pulls/pulls#update-a-pull-request-branch + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/update-branch", "put">; + /** + * @see https://docs.github.com/rest/repos/rules#update-a-repository-ruleset + */ + "PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}": Operation<"/repos/{owner}/{repo}/rulesets/{ruleset_id}", "put">; + /** + * @see https://docs.github.com/rest/activity/watching#set-a-repository-subscription + */ + "PUT /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "put">; + /** + * @see https://docs.github.com/rest/repos/repos#replace-all-repository-topics + */ + "PUT /repos/{owner}/{repo}/topics": Operation<"/repos/{owner}/{repo}/topics", "put">; + /** + * @see https://docs.github.com/rest/repos/repos#enable-vulnerability-alerts + */ + "PUT /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "put">; + /** + * @see https://docs.github.com/rest/actions/secrets#create-or-update-an-environment-secret + */ + "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/teams/members#add-team-member-legacy + */ + "PUT /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "put">; + /** + * @see https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user-legacy + */ + "PUT /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/rest/teams/teams#add-or-update-team-project-permissions-legacy + */ + "PUT /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "put">; + /** + * @see https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions-legacy + */ + "PUT /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "put">; + /** + * @see https://docs.github.com/rest/users/blocking#block-a-user + */ + "PUT /user/blocks/{username}": Operation<"/user/blocks/{username}", "put">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#create-or-update-a-secret-for-the-authenticated-user + */ + "PUT /user/codespaces/secrets/{secret_name}": Operation<"/user/codespaces/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#set-selected-repositories-for-a-user-secret + */ + "PUT /user/codespaces/secrets/{secret_name}/repositories": Operation<"/user/codespaces/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#add-a-selected-repository-to-a-user-secret + */ + "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/user/codespaces/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/users/followers#follow-a-user + */ + "PUT /user/following/{username}": Operation<"/user/following/{username}", "put">; + /** + * @see https://docs.github.com/rest/apps/installations#add-a-repository-to-an-app-installation + */ + "PUT /user/installations/{installation_id}/repositories/{repository_id}": Operation<"/user/installations/{installation_id}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/interactions/user#set-interaction-restrictions-for-your-public-repositories + */ + "PUT /user/interaction-limits": Operation<"/user/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/activity/starring#star-a-repository-for-the-authenticated-user + */ + "PUT /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "put">; +} +export {}; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/index.d.ts b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/index.d.ts new file mode 100644 index 000000000..004ae9b22 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/dist-types/index.d.ts @@ -0,0 +1,21 @@ +export * from "./AuthInterface"; +export * from "./EndpointDefaults"; +export * from "./EndpointInterface"; +export * from "./EndpointOptions"; +export * from "./Fetch"; +export * from "./OctokitResponse"; +export * from "./RequestError"; +export * from "./RequestHeaders"; +export * from "./RequestInterface"; +export * from "./RequestMethod"; +export * from "./RequestOptions"; +export * from "./RequestParameters"; +export * from "./RequestRequestOptions"; +export * from "./ResponseHeaders"; +export * from "./Route"; +export * from "./Signal"; +export * from "./StrategyInterface"; +export * from "./Url"; +export * from "./VERSION"; +export * from "./GetResponseTypeFromEndpointMethod"; +export * from "./generated/Endpoints"; diff --git a/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/package.json b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/package.json new file mode 100644 index 000000000..99959575e --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types/package.json @@ -0,0 +1,46 @@ +{ + "name": "@octokit/types", + "version": "12.6.0", + "publishConfig": { + "access": "public" + }, + "description": "Shared TypeScript definitions for Octokit projects", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + }, + "repository": "github:octokit/types.ts", + "keywords": [ + "github", + "api", + "sdk", + "toolkit", + "typescript" + ], + "author": "Gregor Martynus (https://twitter.com/gr2m)", + "license": "MIT", + "devDependencies": { + "@octokit/tsconfig": "^2.0.0", + "@types/node": ">= 8", + "github-openapi-graphql-query": "^4.0.0", + "handlebars": "^4.7.6", + "json-schema-to-typescript": "^13.0.0", + "lodash.set": "^4.3.2", + "npm-run-all2": "^6.0.0", + "pascal-case": "^3.1.1", + "prettier": "^3.0.0", + "semantic-release": "^23.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "sort-keys": "^5.0.0", + "string-to-jsdoc-comment": "^1.0.0", + "typedoc": "^0.25.0", + "typescript": "^5.0.0" + }, + "octokit": { + "openapi-version": "14.0.0" + }, + "files": [ + "dist-types/**" + ], + "types": "dist-types/index.d.ts", + "sideEffects": false +} diff --git a/node_modules/@octokit/plugin-paginate-rest/package.json b/node_modules/@octokit/plugin-paginate-rest/package.json new file mode 100644 index 000000000..7a9b09efa --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/package.json @@ -0,0 +1,52 @@ +{ + "name": "@octokit/plugin-paginate-rest", + "publishConfig": { + "access": "public" + }, + "version": "9.2.1", + "description": "Octokit plugin to paginate REST API endpoint responses", + "repository": "github:octokit/plugin-paginate-rest.js", + "keywords": [ + "github", + "api", + "sdk", + "toolkit" + ], + "license": "MIT", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "peerDependencies": { + "@octokit/core": "5" + }, + "devDependencies": { + "@octokit/core": "^5.1.0", + "@octokit/plugin-rest-endpoint-methods": "^10.4.0", + "@octokit/tsconfig": "^2.0.0", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^29.0.0", + "@types/node": "^20.0.0", + "esbuild": "^0.20.0", + "fetch-mock": "^9.0.0", + "github-openapi-graphql-query": "^4.0.0", + "glob": "^10.2.5", + "jest": "^29.0.0", + "npm-run-all2": "^6.0.0", + "prettier": "3.2.5", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^29.0.0", + "typescript": "^5.0.0" + }, + "engines": { + "node": ">= 18" + }, + "files": [ + "dist-*/**", + "bin/**" + ], + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "types": "dist-types/index.d.ts", + "source": "dist-src/index.js", + "sideEffects": false +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/LICENSE b/node_modules/@octokit/plugin-rest-endpoint-methods/LICENSE new file mode 100644 index 000000000..57bee5f18 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +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: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +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. diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/README.md b/node_modules/@octokit/plugin-rest-endpoint-methods/README.md new file mode 100644 index 000000000..ee4f952e3 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/README.md @@ -0,0 +1,76 @@ +# plugin-rest-endpoint-methods.js + +> Octokit plugin adding one method for all of api.github.com REST API endpoints + +[![@latest](https://img.shields.io/npm/v/@octokit/plugin-rest-endpoint-methods.svg)](https://www.npmjs.com/package/@octokit/plugin-rest-endpoint-methods) +[![Build Status](https://github.com/octokit/plugin-rest-endpoint-methods.js/workflows/Test/badge.svg)](https://github.com/octokit/plugin-rest-endpoint-methods.js/actions?workflow=Test) + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/plugin-rest-endpoint-methods` and [`@octokit/core`](https://github.com/octokit/core.js) (or core-compatible module) directly from [esm.sh](https://esm.sh) + +```html + +``` + +
+Node + + +Install with `npm install @octokit/core @octokit/plugin-rest-endpoint-methods`. Optionally replace `@octokit/core` with a compatible module + +```js +const { Octokit } = require("@octokit/core"); +const { + restEndpointMethods, +} = require("@octokit/plugin-rest-endpoint-methods"); +``` + +
+ +```js +const MyOctokit = Octokit.plugin(restEndpointMethods); +const octokit = new MyOctokit({ auth: "secret123" }); + +// https://developer.github.com/v3/users/#get-the-authenticated-user +octokit.rest.users.getAuthenticated(); +``` + +There is one method for each REST API endpoint documented at [https://developer.github.com/v3](https://developer.github.com/v3). All endpoint methods are documented in the [docs/](docs/) folder, e.g. [docs/users/getAuthenticated.md](docs/users/getAuthenticated.md) + +## TypeScript + +Parameter and response types for all endpoint methods exported as `{ RestEndpointMethodTypes }`. + +Example + +```ts +import { RestEndpointMethodTypes } from "@octokit/plugin-rest-endpoint-methods"; + +type UpdateLabelParameters = + RestEndpointMethodTypes["issues"]["updateLabel"]["parameters"]; +type UpdateLabelResponse = + RestEndpointMethodTypes["issues"]["updateLabel"]["response"]; +``` + +In order to get types beyond parameters and responses, check out [`@octokit/openapi-types`](https://github.com/octokit/openapi-types.ts/#readme), which is a direct transpilation from GitHub's official OpenAPI specification. + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js new file mode 100644 index 000000000..379465fbc --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js @@ -0,0 +1,2165 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + legacyRestEndpointMethods: () => legacyRestEndpointMethods, + restEndpointMethods: () => restEndpointMethods +}); +module.exports = __toCommonJS(dist_src_exports); + +// pkg/dist-src/version.js +var VERSION = "10.4.1"; + +// pkg/dist-src/generated/endpoints.js +var Endpoints = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: [ + "POST /orgs/{org}/actions/runners/{runner_id}/labels" + ], + addCustomLabelsToSelfHostedRunnerForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" + ], + addSelectedRepoToOrgVariable: [ + "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" + ], + approveWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve" + ], + cancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel" + ], + createEnvironmentVariable: [ + "POST /repositories/{repository_id}/environments/{environment_name}/variables" + ], + createOrUpdateEnvironmentSecret: [ + "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" + ], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}" + ], + createOrgVariable: ["POST /orgs/{org}/actions/variables"], + createRegistrationTokenForOrg: [ + "POST /orgs/{org}/actions/runners/registration-token" + ], + createRegistrationTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/registration-token" + ], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/remove-token" + ], + createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"], + createWorkflowDispatch: [ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches" + ], + deleteActionsCacheById: [ + "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}" + ], + deleteActionsCacheByKey: [ + "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}" + ], + deleteArtifact: [ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" + ], + deleteEnvironmentSecret: [ + "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" + ], + deleteEnvironmentVariable: [ + "DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}" + ], + deleteRepoVariable: [ + "DELETE /repos/{owner}/{repo}/actions/variables/{name}" + ], + deleteSelfHostedRunnerFromOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}" + ], + deleteSelfHostedRunnerFromRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}" + ], + deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], + deleteWorkflowRunLogs: [ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs" + ], + disableSelectedRepositoryGithubActionsOrganization: [ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}" + ], + disableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable" + ], + downloadArtifact: [ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}" + ], + downloadJobLogsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs" + ], + downloadWorkflowRunAttemptLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs" + ], + downloadWorkflowRunLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs" + ], + enableSelectedRepositoryGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}" + ], + enableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable" + ], + forceCancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel" + ], + generateRunnerJitconfigForOrg: [ + "POST /orgs/{org}/actions/runners/generate-jitconfig" + ], + generateRunnerJitconfigForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig" + ], + getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], + getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], + getActionsCacheUsageByRepoForOrg: [ + "GET /orgs/{org}/actions/cache/usage-by-repository" + ], + getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], + getAllowedActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/selected-actions" + ], + getAllowedActionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions" + ], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getCustomOidcSubClaimForRepo: [ + "GET /repos/{owner}/{repo}/actions/oidc/customization/sub" + ], + getEnvironmentPublicKey: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key" + ], + getEnvironmentSecret: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" + ], + getEnvironmentVariable: [ + "GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}" + ], + getGithubActionsDefaultWorkflowPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions/workflow" + ], + getGithubActionsDefaultWorkflowPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/workflow" + ], + getGithubActionsPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions" + ], + getGithubActionsPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions" + ], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"], + getPendingDeploymentsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" + ], + getRepoPermissions: [ + "GET /repos/{owner}/{repo}/actions/permissions", + {}, + { renamed: ["actions", "getGithubActionsPermissionsRepository"] } + ], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"], + getReviewsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals" + ], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}" + ], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowAccessToRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/access" + ], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunAttempt: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}" + ], + getWorkflowRunUsage: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing" + ], + getWorkflowUsage: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing" + ], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listEnvironmentSecrets: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets" + ], + listEnvironmentVariables: [ + "GET /repositories/{repository_id}/environments/{environment_name}/variables" + ], + listJobsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" + ], + listJobsForWorkflowRunAttempt: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" + ], + listLabelsForSelfHostedRunnerForOrg: [ + "GET /orgs/{org}/actions/runners/{runner_id}/labels" + ], + listLabelsForSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listOrgVariables: ["GET /orgs/{org}/actions/variables"], + listRepoOrganizationSecrets: [ + "GET /repos/{owner}/{repo}/actions/organization-secrets" + ], + listRepoOrganizationVariables: [ + "GET /repos/{owner}/{repo}/actions/organization-variables" + ], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/downloads" + ], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" + ], + listSelectedReposForOrgVariable: [ + "GET /orgs/{org}/actions/variables/{name}/repositories" + ], + listSelectedRepositoriesEnabledGithubActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/repositories" + ], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" + ], + listWorkflowRuns: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" + ], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunJobForWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun" + ], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + reRunWorkflowFailedJobs: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs" + ], + removeAllCustomLabelsFromSelfHostedRunnerForOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels" + ], + removeAllCustomLabelsFromSelfHostedRunnerForRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + removeCustomLabelFromSelfHostedRunnerForOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}" + ], + removeCustomLabelFromSelfHostedRunnerForRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" + ], + removeSelectedRepoFromOrgVariable: [ + "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" + ], + reviewCustomGatesForRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule" + ], + reviewPendingDeploymentsForRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" + ], + setAllowedActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/selected-actions" + ], + setAllowedActionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions" + ], + setCustomLabelsForSelfHostedRunnerForOrg: [ + "PUT /orgs/{org}/actions/runners/{runner_id}/labels" + ], + setCustomLabelsForSelfHostedRunnerForRepo: [ + "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + setCustomOidcSubClaimForRepo: [ + "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub" + ], + setGithubActionsDefaultWorkflowPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/workflow" + ], + setGithubActionsDefaultWorkflowPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/workflow" + ], + setGithubActionsPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions" + ], + setGithubActionsPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories" + ], + setSelectedReposForOrgVariable: [ + "PUT /orgs/{org}/actions/variables/{name}/repositories" + ], + setSelectedRepositoriesEnabledGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories" + ], + setWorkflowAccessToRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/access" + ], + updateEnvironmentVariable: [ + "PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}" + ], + updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"], + updateRepoVariable: [ + "PATCH /repos/{owner}/{repo}/actions/variables/{name}" + ] + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: [ + "DELETE /notifications/threads/{thread_id}/subscription" + ], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: [ + "GET /notifications/threads/{thread_id}/subscription" + ], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: [ + "GET /users/{username}/events/orgs/{org}" + ], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: [ + "GET /users/{username}/received_events/public" + ], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/notifications" + ], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: [ + "PUT /notifications/threads/{thread_id}/subscription" + ], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] + }, + apps: { + addRepoToInstallation: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}", + {}, + { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] } + ], + addRepoToInstallationForAuthenticatedUser: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}" + ], + checkToken: ["POST /applications/{client_id}/token"], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: [ + "POST /app/installations/{installation_id}/access_tokens" + ], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}"], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app"], + getBySlug: ["GET /apps/{app_slug}"], + getInstallation: ["GET /app/installations/{installation_id}"], + getOrgInstallation: ["GET /orgs/{org}/installation"], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], + getSubscriptionPlanForAccount: [ + "GET /marketplace_listing/accounts/{account_id}" + ], + getSubscriptionPlanForAccountStubbed: [ + "GET /marketplace_listing/stubbed/accounts/{account_id}" + ], + getUserInstallation: ["GET /users/{username}/installation"], + getWebhookConfigForApp: ["GET /app/hook/config"], + getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: [ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" + ], + listInstallationReposForAuthenticatedUser: [ + "GET /user/installations/{installation_id}/repositories" + ], + listInstallationRequestsForAuthenticatedApp: [ + "GET /app/installation-requests" + ], + listInstallations: ["GET /app/installations"], + listInstallationsForAuthenticatedUser: ["GET /user/installations"], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories"], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: [ + "GET /user/marketplace_purchases/stubbed" + ], + listWebhookDeliveries: ["GET /app/hook/deliveries"], + redeliverWebhookDelivery: [ + "POST /app/hook/deliveries/{delivery_id}/attempts" + ], + removeRepoFromInstallation: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}", + {}, + { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] } + ], + removeRepoFromInstallationForAuthenticatedUser: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}" + ], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + scopeToken: ["POST /applications/{client_id}/token/scoped"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: [ + "DELETE /app/installations/{installation_id}/suspended" + ], + updateWebhookConfigForApp: ["PATCH /app/hook/config"] + }, + billing: { + getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], + getGithubActionsBillingUser: [ + "GET /users/{username}/settings/billing/actions" + ], + getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], + getGithubPackagesBillingUser: [ + "GET /users/{username}/settings/billing/packages" + ], + getSharedStorageBillingOrg: [ + "GET /orgs/{org}/settings/billing/shared-storage" + ], + getSharedStorageBillingUser: [ + "GET /users/{username}/settings/billing/shared-storage" + ] + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs"], + createSuite: ["POST /repos/{owner}/{repo}/check-suites"], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], + listAnnotations: [ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" + ], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], + listForSuite: [ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" + ], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], + rerequestRun: [ + "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest" + ], + rerequestSuite: [ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest" + ], + setSuitesPreferences: [ + "PATCH /repos/{owner}/{repo}/check-suites/preferences" + ], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] + }, + codeScanning: { + deleteAnalysis: [ + "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" + ], + getAlert: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + {}, + { renamedParameters: { alert_id: "alert_number" } } + ], + getAnalysis: [ + "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}" + ], + getCodeqlDatabase: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" + ], + getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + listAlertInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" + ], + listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listAlertsInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + {}, + { renamed: ["codeScanning", "listAlertInstances"] } + ], + listCodeqlDatabases: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases" + ], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" + ], + updateDefaultSetup: [ + "PATCH /repos/{owner}/{repo}/code-scanning/default-setup" + ], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct"], + getConductCode: ["GET /codes_of_conduct/{key}"] + }, + codespaces: { + addRepositoryForSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + checkPermissionsForDevcontainer: [ + "GET /repos/{owner}/{repo}/codespaces/permissions_check" + ], + codespaceMachinesForAuthenticatedUser: [ + "GET /user/codespaces/{codespace_name}/machines" + ], + createForAuthenticatedUser: ["POST /user/codespaces"], + createOrUpdateOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}" + ], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + createOrUpdateSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}" + ], + createWithPrForAuthenticatedUser: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces" + ], + createWithRepoForAuthenticatedUser: [ + "POST /repos/{owner}/{repo}/codespaces" + ], + deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], + deleteFromOrganization: [ + "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + deleteSecretForAuthenticatedUser: [ + "DELETE /user/codespaces/secrets/{secret_name}" + ], + exportForAuthenticatedUser: [ + "POST /user/codespaces/{codespace_name}/exports" + ], + getCodespacesForUserInOrg: [ + "GET /orgs/{org}/members/{username}/codespaces" + ], + getExportDetailsForAuthenticatedUser: [ + "GET /user/codespaces/{codespace_name}/exports/{export_id}" + ], + getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], + getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"], + getPublicKeyForAuthenticatedUser: [ + "GET /user/codespaces/secrets/public-key" + ], + getRepoPublicKey: [ + "GET /repos/{owner}/{repo}/codespaces/secrets/public-key" + ], + getRepoSecret: [ + "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + getSecretForAuthenticatedUser: [ + "GET /user/codespaces/secrets/{secret_name}" + ], + listDevcontainersInRepositoryForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/devcontainers" + ], + listForAuthenticatedUser: ["GET /user/codespaces"], + listInOrganization: [ + "GET /orgs/{org}/codespaces", + {}, + { renamedParameters: { org_id: "org" } } + ], + listInRepositoryForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces" + ], + listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], + listRepositoriesForSecretForAuthenticatedUser: [ + "GET /user/codespaces/secrets/{secret_name}/repositories" + ], + listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories" + ], + preFlightWithRepoForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/new" + ], + publishForAuthenticatedUser: [ + "POST /user/codespaces/{codespace_name}/publish" + ], + removeRepositoryForSecretForAuthenticatedUser: [ + "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + repoMachinesForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/machines" + ], + setRepositoriesForSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}/repositories" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories" + ], + startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], + stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], + stopInOrganization: [ + "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop" + ], + updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] + }, + copilot: { + addCopilotSeatsForTeams: [ + "POST /orgs/{org}/copilot/billing/selected_teams" + ], + addCopilotSeatsForUsers: [ + "POST /orgs/{org}/copilot/billing/selected_users" + ], + cancelCopilotSeatAssignmentForTeams: [ + "DELETE /orgs/{org}/copilot/billing/selected_teams" + ], + cancelCopilotSeatAssignmentForUsers: [ + "DELETE /orgs/{org}/copilot/billing/selected_users" + ], + getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"], + getCopilotSeatDetailsForUser: [ + "GET /orgs/{org}/members/{username}/copilot" + ], + listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"] + }, + dependabot: { + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" + ], + createOrUpdateOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}" + ], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"], + getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], + getRepoPublicKey: [ + "GET /repos/{owner}/{repo}/dependabot/secrets/public-key" + ], + getRepoSecret: [ + "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + listAlertsForEnterprise: [ + "GET /enterprises/{enterprise}/dependabot/alerts" + ], + listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"], + listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" + ] + }, + dependencyGraph: { + createRepositorySnapshot: [ + "POST /repos/{owner}/{repo}/dependency-graph/snapshots" + ], + diffRange: [ + "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}" + ], + exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"] + }, + emojis: { get: ["GET /emojis"] }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"] + }, + interactions: { + getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], + getRestrictionsForYourPublicRepos: [ + "GET /user/interaction-limits", + {}, + { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] } + ], + removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], + removeRestrictionsForRepo: [ + "DELETE /repos/{owner}/{repo}/interaction-limits" + ], + removeRestrictionsForYourPublicRepos: [ + "DELETE /user/interaction-limits", + {}, + { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] } + ], + setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], + setRestrictionsForYourPublicRepos: [ + "PUT /user/interaction-limits", + {}, + { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] } + ] + }, + issues: { + addAssignees: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees" + ], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + checkUserCanBeAssignedToIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}" + ], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments" + ], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}" + ], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: [ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}" + ], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline" + ], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: [ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels" + ], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels" + ], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels" + ], + removeAssignees: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees" + ], + removeLabel: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" + ], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: [ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}" + ] + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"] + }, + markdown: { + render: ["POST /markdown"], + renderRaw: [ + "POST /markdown/raw", + { headers: { "content-type": "text/plain; charset=utf-8" } } + ] + }, + meta: { + get: ["GET /meta"], + getAllVersions: ["GET /versions"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"] + }, + migrations: { + cancelImport: [ + "DELETE /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import" + } + ], + deleteArchiveForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/archive" + ], + deleteArchiveForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/archive" + ], + downloadArchiveForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}/archive" + ], + getArchiveForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/archive" + ], + getCommitAuthors: [ + "GET /repos/{owner}/{repo}/import/authors", + {}, + { + deprecated: "octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors" + } + ], + getImportStatus: [ + "GET /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status" + } + ], + getLargeFiles: [ + "GET /repos/{owner}/{repo}/import/large_files", + {}, + { + deprecated: "octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files" + } + ], + getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], + getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], + listForAuthenticatedUser: ["GET /user/migrations"], + listForOrg: ["GET /orgs/{org}/migrations"], + listReposForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/repositories" + ], + listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], + listReposForUser: [ + "GET /user/migrations/{migration_id}/repositories", + {}, + { renamed: ["migrations", "listReposForAuthenticatedUser"] } + ], + mapCommitAuthor: [ + "PATCH /repos/{owner}/{repo}/import/authors/{author_id}", + {}, + { + deprecated: "octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author" + } + ], + setLfsPreference: [ + "PATCH /repos/{owner}/{repo}/import/lfs", + {}, + { + deprecated: "octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference" + } + ], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: [ + "PUT /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import" + } + ], + unlockRepoForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" + ], + unlockRepoForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" + ], + updateImport: [ + "PATCH /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import" + } + ] + }, + oidc: { + getOidcCustomSubTemplateForOrg: [ + "GET /orgs/{org}/actions/oidc/customization/sub" + ], + updateOidcCustomSubTemplateForOrg: [ + "PUT /orgs/{org}/actions/oidc/customization/sub" + ] + }, + orgs: { + addSecurityManagerTeam: [ + "PUT /orgs/{org}/security-managers/teams/{team_slug}" + ], + assignTeamToOrgRole: [ + "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" + ], + assignUserToOrgRole: [ + "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}" + ], + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: [ + "PUT /orgs/{org}/outside_collaborators/{username}" + ], + createCustomOrganizationRole: ["POST /orgs/{org}/organization-roles"], + createInvitation: ["POST /orgs/{org}/invitations"], + createOrUpdateCustomProperties: ["PATCH /orgs/{org}/properties/schema"], + createOrUpdateCustomPropertiesValuesForRepos: [ + "PATCH /orgs/{org}/properties/values" + ], + createOrUpdateCustomProperty: [ + "PUT /orgs/{org}/properties/schema/{custom_property_name}" + ], + createWebhook: ["POST /orgs/{org}/hooks"], + delete: ["DELETE /orgs/{org}"], + deleteCustomOrganizationRole: [ + "DELETE /orgs/{org}/organization-roles/{role_id}" + ], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + enableOrDisableSecurityProductOnAllOrgRepos: [ + "POST /orgs/{org}/{security_product}/{enablement}" + ], + get: ["GET /orgs/{org}"], + getAllCustomProperties: ["GET /orgs/{org}/properties/schema"], + getCustomProperty: [ + "GET /orgs/{org}/properties/schema/{custom_property_name}" + ], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], + getWebhookDelivery: [ + "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}" + ], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listCustomPropertiesValuesForRepos: ["GET /orgs/{org}/properties/values"], + listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"], + listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"], + listOrgRoles: ["GET /orgs/{org}/organization-roles"], + listOrganizationFineGrainedPermissions: [ + "GET /orgs/{org}/organization-fine-grained-permissions" + ], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPatGrantRepositories: [ + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories" + ], + listPatGrantRequestRepositories: [ + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories" + ], + listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"], + listPatGrants: ["GET /orgs/{org}/personal-access-tokens"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listSecurityManagerTeams: ["GET /orgs/{org}/security-managers"], + listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], + listWebhooks: ["GET /orgs/{org}/hooks"], + patchCustomOrganizationRole: [ + "PATCH /orgs/{org}/organization-roles/{role_id}" + ], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: [ + "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" + ], + removeCustomProperty: [ + "DELETE /orgs/{org}/properties/schema/{custom_property_name}" + ], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: [ + "DELETE /orgs/{org}/outside_collaborators/{username}" + ], + removePublicMembershipForAuthenticatedUser: [ + "DELETE /orgs/{org}/public_members/{username}" + ], + removeSecurityManagerTeam: [ + "DELETE /orgs/{org}/security-managers/teams/{team_slug}" + ], + reviewPatGrantRequest: [ + "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}" + ], + reviewPatGrantRequestsInBulk: [ + "POST /orgs/{org}/personal-access-token-requests" + ], + revokeAllOrgRolesTeam: [ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}" + ], + revokeAllOrgRolesUser: [ + "DELETE /orgs/{org}/organization-roles/users/{username}" + ], + revokeOrgRoleTeam: [ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" + ], + revokeOrgRoleUser: [ + "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}" + ], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: [ + "PUT /orgs/{org}/public_members/{username}" + ], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: [ + "PATCH /user/memberships/orgs/{org}" + ], + updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"], + updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], + updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] + }, + packages: { + deletePackageForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}" + ], + deletePackageForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}" + ], + deletePackageForUser: [ + "DELETE /users/{username}/packages/{package_type}/{package_name}" + ], + deletePackageVersionForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + deletePackageVersionForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + deletePackageVersionForUser: [ + "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getAllPackageVersionsForAPackageOwnedByAnOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + {}, + { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] } + ], + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions", + {}, + { + renamed: [ + "packages", + "getAllPackageVersionsForPackageOwnedByAuthenticatedUser" + ] + } + ], + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions" + ], + getAllPackageVersionsForPackageOwnedByOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" + ], + getAllPackageVersionsForPackageOwnedByUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions" + ], + getPackageForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}" + ], + getPackageForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}" + ], + getPackageForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}" + ], + getPackageVersionForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getPackageVersionForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getPackageVersionForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + listDockerMigrationConflictingPackagesForAuthenticatedUser: [ + "GET /user/docker/conflicts" + ], + listDockerMigrationConflictingPackagesForOrganization: [ + "GET /orgs/{org}/docker/conflicts" + ], + listDockerMigrationConflictingPackagesForUser: [ + "GET /users/{username}/docker/conflicts" + ], + listPackagesForAuthenticatedUser: ["GET /user/packages"], + listPackagesForOrganization: ["GET /orgs/{org}/packages"], + listPackagesForUser: ["GET /users/{username}/packages"], + restorePackageForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageForUser: [ + "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageVersionForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ], + restorePackageVersionForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ], + restorePackageVersionForUser: [ + "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ] + }, + projects: { + addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], + createCard: ["POST /projects/columns/{column_id}/cards"], + createColumn: ["POST /projects/{project_id}/columns"], + createForAuthenticatedUser: ["POST /user/projects"], + createForOrg: ["POST /orgs/{org}/projects"], + createForRepo: ["POST /repos/{owner}/{repo}/projects"], + delete: ["DELETE /projects/{project_id}"], + deleteCard: ["DELETE /projects/columns/cards/{card_id}"], + deleteColumn: ["DELETE /projects/columns/{column_id}"], + get: ["GET /projects/{project_id}"], + getCard: ["GET /projects/columns/cards/{card_id}"], + getColumn: ["GET /projects/columns/{column_id}"], + getPermissionForUser: [ + "GET /projects/{project_id}/collaborators/{username}/permission" + ], + listCards: ["GET /projects/columns/{column_id}/cards"], + listCollaborators: ["GET /projects/{project_id}/collaborators"], + listColumns: ["GET /projects/{project_id}/columns"], + listForOrg: ["GET /orgs/{org}/projects"], + listForRepo: ["GET /repos/{owner}/{repo}/projects"], + listForUser: ["GET /users/{username}/projects"], + moveCard: ["POST /projects/columns/cards/{card_id}/moves"], + moveColumn: ["POST /projects/columns/{column_id}/moves"], + removeCollaborator: [ + "DELETE /projects/{project_id}/collaborators/{username}" + ], + update: ["PATCH /projects/{project_id}"], + updateCard: ["PATCH /projects/columns/cards/{card_id}"], + updateColumn: ["PATCH /projects/columns/{column_id}"] + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies" + ], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments" + ], + deletePendingReview: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + deleteReviewComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}" + ], + dismissReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals" + ], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments" + ], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + listReviewComments: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments" + ], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + requestReviewers: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + submitReview: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events" + ], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch" + ], + updateReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + updateReviewComment: [ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}" + ] + }, + rateLimit: { get: ["GET /rate_limit"] }, + reactions: { + createForCommitComment: [ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions" + ], + createForIssue: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions" + ], + createForIssueComment: [ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" + ], + createForPullRequestReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" + ], + createForRelease: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/reactions" + ], + createForTeamDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" + ], + createForTeamDiscussionInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" + ], + deleteForCommitComment: [ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForIssue: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}" + ], + deleteForIssueComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForPullRequestComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForRelease: [ + "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}" + ], + deleteForTeamDiscussion: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}" + ], + deleteForTeamDiscussionComment: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}" + ], + listForCommitComment: [ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" + ], + listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], + listForIssueComment: [ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" + ], + listForPullRequestReviewComment: [ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" + ], + listForRelease: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions" + ], + listForTeamDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" + ], + listForTeamDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" + ] + }, + repos: { + acceptInvitation: [ + "PATCH /user/repository_invitations/{invitation_id}", + {}, + { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] } + ], + acceptInvitationForAuthenticatedUser: [ + "PATCH /user/repository_invitations/{invitation_id}" + ], + addAppAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + addTeamAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + addUserAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + cancelPagesDeployment: [ + "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel" + ], + checkAutomatedSecurityFixes: [ + "GET /repos/{owner}/{repo}/automated-security-fixes" + ], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkVulnerabilityAlerts: [ + "GET /repos/{owner}/{repo}/vulnerability-alerts" + ], + codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + compareCommitsWithBasehead: [ + "GET /repos/{owner}/{repo}/compare/{basehead}" + ], + createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], + createCommitComment: [ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments" + ], + createCommitSignatureProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentBranchPolicy: [ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" + ], + createDeploymentProtectionRule: [ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" + ], + createDeploymentStatus: [ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" + ], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateCustomPropertiesValues: [ + "PATCH /repos/{owner}/{repo}/properties/values" + ], + createOrUpdateEnvironment: [ + "PUT /repos/{owner}/{repo}/environments/{environment_name}" + ], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createOrgRuleset: ["POST /orgs/{org}/rulesets"], + createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"], + createPagesSite: ["POST /repos/{owner}/{repo}/pages"], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"], + createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], + createUsingTemplate: [ + "POST /repos/{template_owner}/{template_repo}/generate" + ], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: [ + "DELETE /user/repository_invitations/{invitation_id}", + {}, + { renamed: ["repos", "declineInvitationForAuthenticatedUser"] } + ], + declineInvitationForAuthenticatedUser: [ + "DELETE /user/repository_invitations/{invitation_id}" + ], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" + ], + deleteAdminBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + deleteAnEnvironment: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}" + ], + deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], + deleteBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection" + ], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: [ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}" + ], + deleteDeploymentBranchPolicy: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: [ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}" + ], + deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"], + deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], + deletePullRequestReviewProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: [ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}" + ], + deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + deleteTagProtection: [ + "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}" + ], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: [ + "DELETE /repos/{owner}/{repo}/automated-security-fixes" + ], + disableDeploymentProtectionRule: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" + ], + disablePrivateVulnerabilityReporting: [ + "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting" + ], + disableVulnerabilityAlerts: [ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts" + ], + downloadArchive: [ + "GET /repos/{owner}/{repo}/zipball/{ref}", + {}, + { renamed: ["repos", "downloadZipballArchive"] } + ], + downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], + downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], + enableAutomatedSecurityFixes: [ + "PUT /repos/{owner}/{repo}/automated-security-fixes" + ], + enablePrivateVulnerabilityReporting: [ + "PUT /repos/{owner}/{repo}/private-vulnerability-reporting" + ], + enableVulnerabilityAlerts: [ + "PUT /repos/{owner}/{repo}/vulnerability-alerts" + ], + generateReleaseNotes: [ + "POST /repos/{owner}/{repo}/releases/generate-notes" + ], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" + ], + getAdminBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + getAllDeploymentProtectionRules: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" + ], + getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], + getAllStatusCheckContexts: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" + ], + getAllTopics: ["GET /repos/{owner}/{repo}/topics"], + getAppsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" + ], + getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection" + ], + getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: [ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission" + ], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getCustomDeploymentProtectionRule: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" + ], + getCustomPropertiesValues: ["GET /repos/{owner}/{repo}/properties/values"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentBranchPolicy: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + getDeploymentStatus: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}" + ], + getEnvironment: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}" + ], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"], + getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"], + getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"], + getOrgRulesets: ["GET /orgs/{org}/rulesets"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getPagesDeployment: [ + "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}" + ], + getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getRepoRuleSuite: [ + "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}" + ], + getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"], + getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"], + getStatusChecksProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + getTeamsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" + ], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" + ], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + getWebhookConfigForRepo: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config" + ], + getWebhookDelivery: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}" + ], + listActivities: ["GET /repos/{owner}/{repo}/activity"], + listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head" + ], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments" + ], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: [ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses" + ], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listCustomDeploymentRuleIntegrations: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps" + ], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentBranchPolicies: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" + ], + listDeploymentStatuses: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" + ], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls" + ], + listReleaseAssets: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets" + ], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhookDeliveries: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries" + ], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: [ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" + ], + removeAppAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + removeCollaborator: [ + "DELETE /repos/{owner}/{repo}/collaborators/{username}" + ], + removeStatusCheckContexts: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + removeStatusCheckProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + removeTeamAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + removeUserAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], + replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + setAppAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + setStatusCheckContexts: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + setTeamAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + setUserAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection" + ], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateDeploymentBranchPolicy: [ + "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: [ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}" + ], + updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"], + updatePullRequestReviewProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: [ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}" + ], + updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + updateStatusCheckPotection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + {}, + { renamed: ["repos", "updateStatusCheckProtection"] } + ], + updateStatusCheckProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + updateWebhookConfigForRepo: [ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config" + ], + uploadReleaseAsset: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", + { baseUrl: "https://uploads.github.com" } + ] + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits"], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics"], + users: ["GET /search/users"] + }, + secretScanning: { + getAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ], + listAlertsForEnterprise: [ + "GET /enterprises/{enterprise}/secret-scanning/alerts" + ], + listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], + listLocationsForAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ] + }, + securityAdvisories: { + createFork: [ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks" + ], + createPrivateVulnerabilityReport: [ + "POST /repos/{owner}/{repo}/security-advisories/reports" + ], + createRepositoryAdvisory: [ + "POST /repos/{owner}/{repo}/security-advisories" + ], + createRepositoryAdvisoryCveRequest: [ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve" + ], + getGlobalAdvisory: ["GET /advisories/{ghsa_id}"], + getRepositoryAdvisory: [ + "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}" + ], + listGlobalAdvisories: ["GET /advisories"], + listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"], + listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"], + updateRepositoryAdvisory: [ + "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}" + ] + }, + teams: { + addOrUpdateMembershipForUserInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + addOrUpdateProjectPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + addOrUpdateRepoPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + checkPermissionsForProjectInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + checkPermissionsForRepoInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" + ], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + deleteDiscussionInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + getDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + getMembershipForUserInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" + ], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/invitations" + ], + listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + removeProjectInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + removeRepoInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + updateDiscussionCommentInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + updateDiscussionInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] + }, + users: { + addEmailForAuthenticated: [ + "POST /user/emails", + {}, + { renamed: ["users", "addEmailForAuthenticatedUser"] } + ], + addEmailForAuthenticatedUser: ["POST /user/emails"], + addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: [ + "POST /user/gpg_keys", + {}, + { renamed: ["users", "createGpgKeyForAuthenticatedUser"] } + ], + createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: [ + "POST /user/keys", + {}, + { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] } + ], + createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], + createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"], + deleteEmailForAuthenticated: [ + "DELETE /user/emails", + {}, + { renamed: ["users", "deleteEmailForAuthenticatedUser"] } + ], + deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: [ + "DELETE /user/gpg_keys/{gpg_key_id}", + {}, + { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] } + ], + deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: [ + "DELETE /user/keys/{key_id}", + {}, + { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] } + ], + deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], + deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"], + deleteSshSigningKeyForAuthenticatedUser: [ + "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}" + ], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: [ + "GET /user/gpg_keys/{gpg_key_id}", + {}, + { renamed: ["users", "getGpgKeyForAuthenticatedUser"] } + ], + getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: [ + "GET /user/keys/{key_id}", + {}, + { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] } + ], + getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], + getSshSigningKeyForAuthenticatedUser: [ + "GET /user/ssh_signing_keys/{ssh_signing_key_id}" + ], + list: ["GET /users"], + listBlockedByAuthenticated: [ + "GET /user/blocks", + {}, + { renamed: ["users", "listBlockedByAuthenticatedUser"] } + ], + listBlockedByAuthenticatedUser: ["GET /user/blocks"], + listEmailsForAuthenticated: [ + "GET /user/emails", + {}, + { renamed: ["users", "listEmailsForAuthenticatedUser"] } + ], + listEmailsForAuthenticatedUser: ["GET /user/emails"], + listFollowedByAuthenticated: [ + "GET /user/following", + {}, + { renamed: ["users", "listFollowedByAuthenticatedUser"] } + ], + listFollowedByAuthenticatedUser: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: [ + "GET /user/gpg_keys", + {}, + { renamed: ["users", "listGpgKeysForAuthenticatedUser"] } + ], + listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: [ + "GET /user/public_emails", + {}, + { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] } + ], + listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: [ + "GET /user/keys", + {}, + { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] } + ], + listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], + listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"], + listSocialAccountsForUser: ["GET /users/{username}/social_accounts"], + listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"], + listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"], + setPrimaryEmailVisibilityForAuthenticated: [ + "PATCH /user/email/visibility", + {}, + { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] } + ], + setPrimaryEmailVisibilityForAuthenticatedUser: [ + "PATCH /user/email/visibility" + ], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"] + } +}; +var endpoints_default = Endpoints; + +// pkg/dist-src/endpoints-to-methods.js +var endpointMethodsMap = /* @__PURE__ */ new Map(); +for (const [scope, endpoints] of Object.entries(endpoints_default)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign( + { + method, + url + }, + defaults + ); + if (!endpointMethodsMap.has(scope)) { + endpointMethodsMap.set(scope, /* @__PURE__ */ new Map()); + } + endpointMethodsMap.get(scope).set(methodName, { + scope, + methodName, + endpointDefaults, + decorations + }); + } +} +var handler = { + has({ scope }, methodName) { + return endpointMethodsMap.get(scope).has(methodName); + }, + getOwnPropertyDescriptor(target, methodName) { + return { + value: this.get(target, methodName), + // ensures method is in the cache + configurable: true, + writable: true, + enumerable: true + }; + }, + defineProperty(target, methodName, descriptor) { + Object.defineProperty(target.cache, methodName, descriptor); + return true; + }, + deleteProperty(target, methodName) { + delete target.cache[methodName]; + return true; + }, + ownKeys({ scope }) { + return [...endpointMethodsMap.get(scope).keys()]; + }, + set(target, methodName, value) { + return target.cache[methodName] = value; + }, + get({ octokit, scope, cache }, methodName) { + if (cache[methodName]) { + return cache[methodName]; + } + const method = endpointMethodsMap.get(scope).get(methodName); + if (!method) { + return void 0; + } + const { endpointDefaults, decorations } = method; + if (decorations) { + cache[methodName] = decorate( + octokit, + scope, + methodName, + endpointDefaults, + decorations + ); + } else { + cache[methodName] = octokit.request.defaults(endpointDefaults); + } + return cache[methodName]; + } +}; +function endpointsToMethods(octokit) { + const newMethods = {}; + for (const scope of endpointMethodsMap.keys()) { + newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler); + } + return newMethods; +} +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + function withDecorations(...args) { + let options = requestWithDefaults.endpoint.merge(...args); + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: void 0 + }); + return requestWithDefaults(options); + } + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn( + `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()` + ); + } + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + if (decorations.renamedParameters) { + const options2 = requestWithDefaults.endpoint.merge(...args); + for (const [name, alias] of Object.entries( + decorations.renamedParameters + )) { + if (name in options2) { + octokit.log.warn( + `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead` + ); + if (!(alias in options2)) { + options2[alias] = options2[name]; + } + delete options2[name]; + } + } + return requestWithDefaults(options2); + } + return requestWithDefaults(...args); + } + return Object.assign(withDecorations, requestWithDefaults); +} + +// pkg/dist-src/index.js +function restEndpointMethods(octokit) { + const api = endpointsToMethods(octokit); + return { + rest: api + }; +} +restEndpointMethods.VERSION = VERSION; +function legacyRestEndpointMethods(octokit) { + const api = endpointsToMethods(octokit); + return { + ...api, + rest: api + }; +} +legacyRestEndpointMethods.VERSION = VERSION; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + legacyRestEndpointMethods, + restEndpointMethods +}); diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js.map b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js.map new file mode 100644 index 000000000..2a0e67a33 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/index.js", "../dist-src/version.js", "../dist-src/generated/endpoints.js", "../dist-src/endpoints-to-methods.js"], + "sourcesContent": ["import { VERSION } from \"./version.js\";\nimport { endpointsToMethods } from \"./endpoints-to-methods.js\";\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit);\n return {\n ...api,\n rest: api\n };\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\nexport {\n legacyRestEndpointMethods,\n restEndpointMethods\n};\n", "const VERSION = \"10.4.1\";\nexport {\n VERSION\n};\n", "const Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\n \"POST /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n addCustomLabelsToSelfHostedRunnerForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n addSelectedRepoToOrgVariable: [\n \"PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}\"\n ],\n approveWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"\n ],\n cancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"\n ],\n createEnvironmentVariable: [\n \"POST /repositories/{repository_id}/environments/{environment_name}/variables\"\n ],\n createOrUpdateEnvironmentSecret: [\n \"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"\n ],\n createOrgVariable: [\"POST /orgs/{org}/actions/variables\"],\n createRegistrationTokenForOrg: [\n \"POST /orgs/{org}/actions/runners/registration-token\"\n ],\n createRegistrationTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/registration-token\"\n ],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/remove-token\"\n ],\n createRepoVariable: [\"POST /repos/{owner}/{repo}/actions/variables\"],\n createWorkflowDispatch: [\n \"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"\n ],\n deleteActionsCacheById: [\n \"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"\n ],\n deleteActionsCacheByKey: [\n \"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"\n ],\n deleteArtifact: [\n \"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"\n ],\n deleteEnvironmentSecret: [\n \"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n deleteEnvironmentVariable: [\n \"DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteOrgVariable: [\"DELETE /orgs/{org}/actions/variables/{name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"\n ],\n deleteRepoVariable: [\n \"DELETE /repos/{owner}/{repo}/actions/variables/{name}\"\n ],\n deleteSelfHostedRunnerFromOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}\"\n ],\n deleteSelfHostedRunnerFromRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"\n ],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\n \"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"\n ],\n disableSelectedRepositoryGithubActionsOrganization: [\n \"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"\n ],\n disableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"\n ],\n downloadArtifact: [\n \"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"\n ],\n downloadJobLogsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"\n ],\n downloadWorkflowRunAttemptLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"\n ],\n downloadWorkflowRunLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"\n ],\n enableSelectedRepositoryGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"\n ],\n enableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"\n ],\n forceCancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel\"\n ],\n generateRunnerJitconfigForOrg: [\n \"POST /orgs/{org}/actions/runners/generate-jitconfig\"\n ],\n generateRunnerJitconfigForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig\"\n ],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\n \"GET /orgs/{org}/actions/cache/usage-by-repository\"\n ],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/selected-actions\"\n ],\n getAllowedActionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"\n ],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getCustomOidcSubClaimForRepo: [\n \"GET /repos/{owner}/{repo}/actions/oidc/customization/sub\"\n ],\n getEnvironmentPublicKey: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"\n ],\n getEnvironmentSecret: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n getEnvironmentVariable: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}\"\n ],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/workflow\"\n ],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/workflow\"\n ],\n getGithubActionsPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions\"\n ],\n getGithubActionsPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions\"\n ],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getOrgVariable: [\"GET /orgs/{org}/actions/variables/{name}\"],\n getPendingDeploymentsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"\n ],\n getRepoPermissions: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n {},\n { renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"] }\n ],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getRepoVariable: [\"GET /repos/{owner}/{repo}/actions/variables/{name}\"],\n getReviewsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"\n ],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"\n ],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/access\"\n ],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"\n ],\n getWorkflowRunUsage: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"\n ],\n getWorkflowUsage: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"\n ],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"\n ],\n listEnvironmentVariables: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/variables\"\n ],\n listJobsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"\n ],\n listJobsForWorkflowRunAttempt: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"\n ],\n listLabelsForSelfHostedRunnerForOrg: [\n \"GET /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n listLabelsForSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listOrgVariables: [\"GET /orgs/{org}/actions/variables\"],\n listRepoOrganizationSecrets: [\n \"GET /repos/{owner}/{repo}/actions/organization-secrets\"\n ],\n listRepoOrganizationVariables: [\n \"GET /repos/{owner}/{repo}/actions/organization-variables\"\n ],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoVariables: [\"GET /repos/{owner}/{repo}/actions/variables\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/downloads\"\n ],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"\n ],\n listSelectedReposForOrgVariable: [\n \"GET /orgs/{org}/actions/variables/{name}/repositories\"\n ],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/repositories\"\n ],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"\n ],\n listWorkflowRuns: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"\n ],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"\n ],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"\n ],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"\n ],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n removeSelectedRepoFromOrgVariable: [\n \"DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}\"\n ],\n reviewCustomGatesForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule\"\n ],\n reviewPendingDeploymentsForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"\n ],\n setAllowedActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/selected-actions\"\n ],\n setAllowedActionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"\n ],\n setCustomLabelsForSelfHostedRunnerForOrg: [\n \"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n setCustomLabelsForSelfHostedRunnerForRepo: [\n \"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n setCustomOidcSubClaimForRepo: [\n \"PUT /repos/{owner}/{repo}/actions/oidc/customization/sub\"\n ],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/workflow\"\n ],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"\n ],\n setGithubActionsPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions\"\n ],\n setGithubActionsPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"\n ],\n setSelectedReposForOrgVariable: [\n \"PUT /orgs/{org}/actions/variables/{name}/repositories\"\n ],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories\"\n ],\n setWorkflowAccessToRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/access\"\n ],\n updateEnvironmentVariable: [\n \"PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}\"\n ],\n updateOrgVariable: [\"PATCH /orgs/{org}/actions/variables/{name}\"],\n updateRepoVariable: [\n \"PATCH /repos/{owner}/{repo}/actions/variables/{name}\"\n ]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\n \"DELETE /notifications/threads/{thread_id}/subscription\"\n ],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\n \"GET /notifications/threads/{thread_id}/subscription\"\n ],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\n \"GET /users/{username}/events/orgs/{org}\"\n ],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\n \"GET /users/{username}/received_events/public\"\n ],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/notifications\"\n ],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsDone: [\"DELETE /notifications/threads/{thread_id}\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\n \"PUT /notifications/threads/{thread_id}/subscription\"\n ],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\",\n {},\n { renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"] }\n ],\n addRepoToInstallationForAuthenticatedUser: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\"\n ],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\n \"POST /app/installations/{installation_id}/access_tokens\"\n ],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\n \"GET /marketplace_listing/accounts/{account_id}\"\n ],\n getSubscriptionPlanForAccountStubbed: [\n \"GET /marketplace_listing/stubbed/accounts/{account_id}\"\n ],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"\n ],\n listInstallationReposForAuthenticatedUser: [\n \"GET /user/installations/{installation_id}/repositories\"\n ],\n listInstallationRequestsForAuthenticatedApp: [\n \"GET /app/installation-requests\"\n ],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\n \"GET /user/marketplace_purchases/stubbed\"\n ],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\n \"POST /app/hook/deliveries/{delivery_id}/attempts\"\n ],\n removeRepoFromInstallation: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\",\n {},\n { renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"] }\n ],\n removeRepoFromInstallationForAuthenticatedUser: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"\n ],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\n \"DELETE /app/installations/{installation_id}/suspended\"\n ],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\n \"GET /users/{username}/settings/billing/actions\"\n ],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\n \"GET /users/{username}/settings/billing/packages\"\n ],\n getSharedStorageBillingOrg: [\n \"GET /orgs/{org}/settings/billing/shared-storage\"\n ],\n getSharedStorageBillingUser: [\n \"GET /users/{username}/settings/billing/shared-storage\"\n ]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"\n ],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"\n ],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\n \"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"\n ],\n rerequestSuite: [\n \"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"\n ],\n setSuitesPreferences: [\n \"PATCH /repos/{owner}/{repo}/check-suites/preferences\"\n ],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\n \"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"\n ],\n getAlert: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n {},\n { renamedParameters: { alert_id: \"alert_number\" } }\n ],\n getAnalysis: [\n \"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"\n ],\n getCodeqlDatabase: [\n \"GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}\"\n ],\n getDefaultSetup: [\"GET /repos/{owner}/{repo}/code-scanning/default-setup\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n {},\n { renamed: [\"codeScanning\", \"listAlertInstances\"] }\n ],\n listCodeqlDatabases: [\n \"GET /repos/{owner}/{repo}/code-scanning/codeql/databases\"\n ],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"\n ],\n updateDefaultSetup: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/default-setup\"\n ],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n checkPermissionsForDevcontainer: [\n \"GET /repos/{owner}/{repo}/codespaces/permissions_check\"\n ],\n codespaceMachinesForAuthenticatedUser: [\n \"GET /user/codespaces/{codespace_name}/machines\"\n ],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}\"\n ],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n createOrUpdateSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}\"\n ],\n createWithPrForAuthenticatedUser: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"\n ],\n createWithRepoForAuthenticatedUser: [\n \"POST /repos/{owner}/{repo}/codespaces\"\n ],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\n \"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/codespaces/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n deleteSecretForAuthenticatedUser: [\n \"DELETE /user/codespaces/secrets/{secret_name}\"\n ],\n exportForAuthenticatedUser: [\n \"POST /user/codespaces/{codespace_name}/exports\"\n ],\n getCodespacesForUserInOrg: [\n \"GET /orgs/{org}/members/{username}/codespaces\"\n ],\n getExportDetailsForAuthenticatedUser: [\n \"GET /user/codespaces/{codespace_name}/exports/{export_id}\"\n ],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/codespaces/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/codespaces/secrets/{secret_name}\"],\n getPublicKeyForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/public-key\"\n ],\n getRepoPublicKey: [\n \"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"\n ],\n getRepoSecret: [\n \"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n getSecretForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/{secret_name}\"\n ],\n listDevcontainersInRepositoryForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/devcontainers\"\n ],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\n \"GET /orgs/{org}/codespaces\",\n {},\n { renamedParameters: { org_id: \"org\" } }\n ],\n listInRepositoryForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces\"\n ],\n listOrgSecrets: [\"GET /orgs/{org}/codespaces/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/{secret_name}/repositories\"\n ],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories\"\n ],\n preFlightWithRepoForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/new\"\n ],\n publishForAuthenticatedUser: [\n \"POST /user/codespaces/{codespace_name}/publish\"\n ],\n removeRepositoryForSecretForAuthenticatedUser: [\n \"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n repoMachinesForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/machines\"\n ],\n setRepositoriesForSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}/repositories\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories\"\n ],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\n \"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"\n ],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n copilot: {\n addCopilotSeatsForTeams: [\n \"POST /orgs/{org}/copilot/billing/selected_teams\"\n ],\n addCopilotSeatsForUsers: [\n \"POST /orgs/{org}/copilot/billing/selected_users\"\n ],\n cancelCopilotSeatAssignmentForTeams: [\n \"DELETE /orgs/{org}/copilot/billing/selected_teams\"\n ],\n cancelCopilotSeatAssignmentForUsers: [\n \"DELETE /orgs/{org}/copilot/billing/selected_users\"\n ],\n getCopilotOrganizationDetails: [\"GET /orgs/{org}/copilot/billing\"],\n getCopilotSeatDetailsForUser: [\n \"GET /orgs/{org}/members/{username}/copilot\"\n ],\n listCopilotSeats: [\"GET /orgs/{org}/copilot/billing/seats\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n createOrUpdateOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"\n ],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n getAlert: [\"GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\n \"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"\n ],\n getRepoSecret: [\n \"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n listAlertsForEnterprise: [\n \"GET /enterprises/{enterprise}/dependabot/alerts\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/dependabot/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/dependabot/alerts\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"\n ],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}\"\n ]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\n \"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"\n ],\n diffRange: [\n \"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"\n ],\n exportSbom: [\"GET /repos/{owner}/{repo}/dependency-graph/sbom\"]\n },\n emojis: { get: [\"GET /emojis\"] },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\n \"GET /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"] }\n ],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\n \"DELETE /repos/{owner}/{repo}/interaction-limits\"\n ],\n removeRestrictionsForYourPublicRepos: [\n \"DELETE /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"] }\n ],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\n \"PUT /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"] }\n ]\n },\n issues: {\n addAssignees: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"\n ],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n checkUserCanBeAssignedToIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}\"\n ],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"\n ],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"\n ],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\n \"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"\n ],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"\n ],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"\n ],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"\n ],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"\n ],\n removeAssignees: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"\n ],\n removeLabel: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"\n ],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\n \"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"\n ]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\n \"POST /markdown/raw\",\n { headers: { \"content-type\": \"text/plain; charset=utf-8\" } }\n ]\n },\n meta: {\n get: [\"GET /meta\"],\n getAllVersions: [\"GET /versions\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\n \"DELETE /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import\"\n }\n ],\n deleteArchiveForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/archive\"\n ],\n deleteArchiveForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/archive\"\n ],\n downloadArchiveForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/archive\"\n ],\n getArchiveForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/archive\"\n ],\n getCommitAuthors: [\n \"GET /repos/{owner}/{repo}/import/authors\",\n {},\n {\n deprecated: \"octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors\"\n }\n ],\n getImportStatus: [\n \"GET /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status\"\n }\n ],\n getLargeFiles: [\n \"GET /repos/{owner}/{repo}/import/large_files\",\n {},\n {\n deprecated: \"octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files\"\n }\n ],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/repositories\"\n ],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\n \"GET /user/migrations/{migration_id}/repositories\",\n {},\n { renamed: [\"migrations\", \"listReposForAuthenticatedUser\"] }\n ],\n mapCommitAuthor: [\n \"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\",\n {},\n {\n deprecated: \"octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author\"\n }\n ],\n setLfsPreference: [\n \"PATCH /repos/{owner}/{repo}/import/lfs\",\n {},\n {\n deprecated: \"octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference\"\n }\n ],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\n \"PUT /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import\"\n }\n ],\n unlockRepoForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"\n ],\n unlockRepoForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"\n ],\n updateImport: [\n \"PATCH /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import\"\n }\n ]\n },\n oidc: {\n getOidcCustomSubTemplateForOrg: [\n \"GET /orgs/{org}/actions/oidc/customization/sub\"\n ],\n updateOidcCustomSubTemplateForOrg: [\n \"PUT /orgs/{org}/actions/oidc/customization/sub\"\n ]\n },\n orgs: {\n addSecurityManagerTeam: [\n \"PUT /orgs/{org}/security-managers/teams/{team_slug}\"\n ],\n assignTeamToOrgRole: [\n \"PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}\"\n ],\n assignUserToOrgRole: [\n \"PUT /orgs/{org}/organization-roles/users/{username}/{role_id}\"\n ],\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\n \"PUT /orgs/{org}/outside_collaborators/{username}\"\n ],\n createCustomOrganizationRole: [\"POST /orgs/{org}/organization-roles\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createOrUpdateCustomProperties: [\"PATCH /orgs/{org}/properties/schema\"],\n createOrUpdateCustomPropertiesValuesForRepos: [\n \"PATCH /orgs/{org}/properties/values\"\n ],\n createOrUpdateCustomProperty: [\n \"PUT /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n delete: [\"DELETE /orgs/{org}\"],\n deleteCustomOrganizationRole: [\n \"DELETE /orgs/{org}/organization-roles/{role_id}\"\n ],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n enableOrDisableSecurityProductOnAllOrgRepos: [\n \"POST /orgs/{org}/{security_product}/{enablement}\"\n ],\n get: [\"GET /orgs/{org}\"],\n getAllCustomProperties: [\"GET /orgs/{org}/properties/schema\"],\n getCustomProperty: [\n \"GET /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getOrgRole: [\"GET /orgs/{org}/organization-roles/{role_id}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\n \"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"\n ],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomPropertiesValuesForRepos: [\"GET /orgs/{org}/properties/values\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOrgRoleTeams: [\"GET /orgs/{org}/organization-roles/{role_id}/teams\"],\n listOrgRoleUsers: [\"GET /orgs/{org}/organization-roles/{role_id}/users\"],\n listOrgRoles: [\"GET /orgs/{org}/organization-roles\"],\n listOrganizationFineGrainedPermissions: [\n \"GET /orgs/{org}/organization-fine-grained-permissions\"\n ],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPatGrantRepositories: [\n \"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories\"\n ],\n listPatGrantRequestRepositories: [\n \"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories\"\n ],\n listPatGrantRequests: [\"GET /orgs/{org}/personal-access-token-requests\"],\n listPatGrants: [\"GET /orgs/{org}/personal-access-tokens\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listSecurityManagerTeams: [\"GET /orgs/{org}/security-managers\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n patchCustomOrganizationRole: [\n \"PATCH /orgs/{org}/organization-roles/{role_id}\"\n ],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\n \"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"\n ],\n removeCustomProperty: [\n \"DELETE /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\n \"DELETE /orgs/{org}/outside_collaborators/{username}\"\n ],\n removePublicMembershipForAuthenticatedUser: [\n \"DELETE /orgs/{org}/public_members/{username}\"\n ],\n removeSecurityManagerTeam: [\n \"DELETE /orgs/{org}/security-managers/teams/{team_slug}\"\n ],\n reviewPatGrantRequest: [\n \"POST /orgs/{org}/personal-access-token-requests/{pat_request_id}\"\n ],\n reviewPatGrantRequestsInBulk: [\n \"POST /orgs/{org}/personal-access-token-requests\"\n ],\n revokeAllOrgRolesTeam: [\n \"DELETE /orgs/{org}/organization-roles/teams/{team_slug}\"\n ],\n revokeAllOrgRolesUser: [\n \"DELETE /orgs/{org}/organization-roles/users/{username}\"\n ],\n revokeOrgRoleTeam: [\n \"DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}\"\n ],\n revokeOrgRoleUser: [\n \"DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}\"\n ],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\n \"PUT /orgs/{org}/public_members/{username}\"\n ],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\n \"PATCH /user/memberships/orgs/{org}\"\n ],\n updatePatAccess: [\"POST /orgs/{org}/personal-access-tokens/{pat_id}\"],\n updatePatAccesses: [\"POST /orgs/{org}/personal-access-tokens\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}\"\n ],\n deletePackageForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"\n ],\n deletePackageForUser: [\n \"DELETE /users/{username}/packages/{package_type}/{package_name}\"\n ],\n deletePackageVersionForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n deletePackageVersionForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n deletePackageVersionForUser: [\n \"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n {},\n { renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"] }\n ],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n {},\n {\n renamed: [\n \"packages\",\n \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"\n ]\n }\n ],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\"\n ],\n getAllPackageVersionsForPackageOwnedByOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"\n ],\n getAllPackageVersionsForPackageOwnedByUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions\"\n ],\n getPackageForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}\"\n ],\n getPackageForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}\"\n ],\n getPackageForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}\"\n ],\n getPackageVersionForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getPackageVersionForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getPackageVersionForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n listDockerMigrationConflictingPackagesForAuthenticatedUser: [\n \"GET /user/docker/conflicts\"\n ],\n listDockerMigrationConflictingPackagesForOrganization: [\n \"GET /orgs/{org}/docker/conflicts\"\n ],\n listDockerMigrationConflictingPackagesForUser: [\n \"GET /users/{username}/docker/conflicts\"\n ],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageForUser: [\n \"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageVersionForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ],\n restorePackageVersionForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ],\n restorePackageVersionForUser: [\n \"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\n \"GET /projects/{project_id}/collaborators/{username}/permission\"\n ],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\n \"DELETE /projects/{project_id}/collaborators/{username}\"\n ],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"\n ],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"\n ],\n deletePendingReview: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n deleteReviewComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"\n ],\n dismissReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"\n ],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n listReviewComments: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"\n ],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n requestReviewers: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n submitReview: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"\n ],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"\n ],\n updateReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n updateReviewComment: [\n \"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"\n ]\n },\n rateLimit: { get: [\"GET /rate_limit\"] },\n reactions: {\n createForCommitComment: [\n \"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"\n ],\n createForIssue: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"\n ],\n createForIssueComment: [\n \"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"\n ],\n createForPullRequestReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"\n ],\n createForRelease: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"\n ],\n createForTeamDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"\n ],\n createForTeamDiscussionInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"\n ],\n deleteForCommitComment: [\n \"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForIssue: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"\n ],\n deleteForIssueComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForPullRequestComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForRelease: [\n \"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"\n ],\n deleteForTeamDiscussion: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"\n ],\n deleteForTeamDiscussionComment: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"\n ],\n listForCommitComment: [\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"\n ],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"\n ],\n listForPullRequestReviewComment: [\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"\n ],\n listForRelease: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"\n ],\n listForTeamDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"\n ],\n listForTeamDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"\n ]\n },\n repos: {\n acceptInvitation: [\n \"PATCH /user/repository_invitations/{invitation_id}\",\n {},\n { renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"] }\n ],\n acceptInvitationForAuthenticatedUser: [\n \"PATCH /user/repository_invitations/{invitation_id}\"\n ],\n addAppAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n addTeamAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n addUserAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n cancelPagesDeployment: [\n \"POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel\"\n ],\n checkAutomatedSecurityFixes: [\n \"GET /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\n \"GET /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\n \"GET /repos/{owner}/{repo}/compare/{basehead}\"\n ],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\n \"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"\n ],\n createCommitSignatureProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentBranchPolicy: [\n \"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\"\n ],\n createDeploymentProtectionRule: [\n \"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules\"\n ],\n createDeploymentStatus: [\n \"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"\n ],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateCustomPropertiesValues: [\n \"PATCH /repos/{owner}/{repo}/properties/values\"\n ],\n createOrUpdateEnvironment: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createOrgRuleset: [\"POST /orgs/{org}/rulesets\"],\n createPagesDeployment: [\"POST /repos/{owner}/{repo}/pages/deployments\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createRepoRuleset: [\"POST /repos/{owner}/{repo}/rulesets\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\n \"POST /repos/{template_owner}/{template_repo}/generate\"\n ],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\n \"DELETE /user/repository_invitations/{invitation_id}\",\n {},\n { renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"] }\n ],\n declineInvitationForAuthenticatedUser: [\n \"DELETE /user/repository_invitations/{invitation_id}\"\n ],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"\n ],\n deleteAdminBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n deleteAnEnvironment: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\n \"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"\n ],\n deleteDeploymentBranchPolicy: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\n \"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"\n ],\n deleteOrgRuleset: [\"DELETE /orgs/{org}/rulesets/{ruleset_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\n \"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"\n ],\n deleteRepoRuleset: [\"DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n deleteTagProtection: [\n \"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"\n ],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\n \"DELETE /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n disableDeploymentProtectionRule: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}\"\n ],\n disablePrivateVulnerabilityReporting: [\n \"DELETE /repos/{owner}/{repo}/private-vulnerability-reporting\"\n ],\n disableVulnerabilityAlerts: [\n \"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n downloadArchive: [\n \"GET /repos/{owner}/{repo}/zipball/{ref}\",\n {},\n { renamed: [\"repos\", \"downloadZipballArchive\"] }\n ],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\n \"PUT /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n enablePrivateVulnerabilityReporting: [\n \"PUT /repos/{owner}/{repo}/private-vulnerability-reporting\"\n ],\n enableVulnerabilityAlerts: [\n \"PUT /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n generateReleaseNotes: [\n \"POST /repos/{owner}/{repo}/releases/generate-notes\"\n ],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"\n ],\n getAdminBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n getAllDeploymentProtectionRules: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules\"\n ],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"\n ],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"\n ],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n getBranchRules: [\"GET /repos/{owner}/{repo}/rules/branches/{branch}\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\n \"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"\n ],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getCustomDeploymentProtectionRule: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}\"\n ],\n getCustomPropertiesValues: [\"GET /repos/{owner}/{repo}/properties/values\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentBranchPolicy: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n getDeploymentStatus: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"\n ],\n getEnvironment: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getOrgRuleSuite: [\"GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}\"],\n getOrgRuleSuites: [\"GET /orgs/{org}/rulesets/rule-suites\"],\n getOrgRuleset: [\"GET /orgs/{org}/rulesets/{ruleset_id}\"],\n getOrgRulesets: [\"GET /orgs/{org}/rulesets\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesDeployment: [\n \"GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}\"\n ],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getRepoRuleSuite: [\n \"GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}\"\n ],\n getRepoRuleSuites: [\"GET /repos/{owner}/{repo}/rulesets/rule-suites\"],\n getRepoRuleset: [\"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n getRepoRulesets: [\"GET /repos/{owner}/{repo}/rulesets\"],\n getStatusChecksProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n getTeamsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"\n ],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"\n ],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"\n ],\n getWebhookDelivery: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"\n ],\n listActivities: [\"GET /repos/{owner}/{repo}/activity\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"\n ],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"\n ],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listCustomDeploymentRuleIntegrations: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps\"\n ],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentBranchPolicies: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\"\n ],\n listDeploymentStatuses: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"\n ],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"\n ],\n listReleaseAssets: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"\n ],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"\n ],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\n \"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"\n ],\n removeAppAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n removeCollaborator: [\n \"DELETE /repos/{owner}/{repo}/collaborators/{username}\"\n ],\n removeStatusCheckContexts: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n removeStatusCheckProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n removeTeamAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n removeUserAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n setAppAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n setStatusCheckContexts: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n setTeamAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n setUserAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateDeploymentBranchPolicy: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\n \"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"\n ],\n updateOrgRuleset: [\"PUT /orgs/{org}/rulesets/{ruleset_id}\"],\n updatePullRequestReviewProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\n \"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"\n ],\n updateRepoRuleset: [\"PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n updateStatusCheckPotection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n {},\n { renamed: [\"repos\", \"updateStatusCheckProtection\"] }\n ],\n updateStatusCheckProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\n \"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"\n ],\n uploadReleaseAsset: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\",\n { baseUrl: \"https://uploads.github.com\" }\n ]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"\n ],\n listAlertsForEnterprise: [\n \"GET /enterprises/{enterprise}/secret-scanning/alerts\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"\n ],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"\n ]\n },\n securityAdvisories: {\n createFork: [\n \"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks\"\n ],\n createPrivateVulnerabilityReport: [\n \"POST /repos/{owner}/{repo}/security-advisories/reports\"\n ],\n createRepositoryAdvisory: [\n \"POST /repos/{owner}/{repo}/security-advisories\"\n ],\n createRepositoryAdvisoryCveRequest: [\n \"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve\"\n ],\n getGlobalAdvisory: [\"GET /advisories/{ghsa_id}\"],\n getRepositoryAdvisory: [\n \"GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}\"\n ],\n listGlobalAdvisories: [\"GET /advisories\"],\n listOrgRepositoryAdvisories: [\"GET /orgs/{org}/security-advisories\"],\n listRepositoryAdvisories: [\"GET /repos/{owner}/{repo}/security-advisories\"],\n updateRepositoryAdvisory: [\n \"PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}\"\n ]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n addOrUpdateProjectPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"\n ],\n addOrUpdateRepoPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n checkPermissionsForProjectInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"\n ],\n checkPermissionsForRepoInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"\n ],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n deleteDiscussionInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n getDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n getMembershipForUserInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"\n ],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/invitations\"\n ],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n removeProjectInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"\n ],\n removeRepoInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n updateDiscussionCommentInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n updateDiscussionInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\n \"POST /user/emails\",\n {},\n { renamed: [\"users\", \"addEmailForAuthenticatedUser\"] }\n ],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n addSocialAccountForAuthenticatedUser: [\"POST /user/social_accounts\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\n \"POST /user/gpg_keys\",\n {},\n { renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"] }\n ],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\n \"POST /user/keys\",\n {},\n { renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"] }\n ],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n createSshSigningKeyForAuthenticatedUser: [\"POST /user/ssh_signing_keys\"],\n deleteEmailForAuthenticated: [\n \"DELETE /user/emails\",\n {},\n { renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"] }\n ],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\n \"DELETE /user/gpg_keys/{gpg_key_id}\",\n {},\n { renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"] }\n ],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\n \"DELETE /user/keys/{key_id}\",\n {},\n { renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"] }\n ],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n deleteSocialAccountForAuthenticatedUser: [\"DELETE /user/social_accounts\"],\n deleteSshSigningKeyForAuthenticatedUser: [\n \"DELETE /user/ssh_signing_keys/{ssh_signing_key_id}\"\n ],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\n \"GET /user/gpg_keys/{gpg_key_id}\",\n {},\n { renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"] }\n ],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\n \"GET /user/keys/{key_id}\",\n {},\n { renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"] }\n ],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n getSshSigningKeyForAuthenticatedUser: [\n \"GET /user/ssh_signing_keys/{ssh_signing_key_id}\"\n ],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\n \"GET /user/blocks\",\n {},\n { renamed: [\"users\", \"listBlockedByAuthenticatedUser\"] }\n ],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\n \"GET /user/emails\",\n {},\n { renamed: [\"users\", \"listEmailsForAuthenticatedUser\"] }\n ],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\n \"GET /user/following\",\n {},\n { renamed: [\"users\", \"listFollowedByAuthenticatedUser\"] }\n ],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\n \"GET /user/gpg_keys\",\n {},\n { renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"] }\n ],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\n \"GET /user/public_emails\",\n {},\n { renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"] }\n ],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\n \"GET /user/keys\",\n {},\n { renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"] }\n ],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n listSocialAccountsForAuthenticatedUser: [\"GET /user/social_accounts\"],\n listSocialAccountsForUser: [\"GET /users/{username}/social_accounts\"],\n listSshSigningKeysForAuthenticatedUser: [\"GET /user/ssh_signing_keys\"],\n listSshSigningKeysForUser: [\"GET /users/{username}/ssh_signing_keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\n \"PATCH /user/email/visibility\",\n {},\n { renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"] }\n ],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\n \"PATCH /user/email/visibility\"\n ],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\nvar endpoints_default = Endpoints;\nexport {\n endpoints_default as default\n};\n", "import ENDPOINTS from \"./generated/endpoints.js\";\nconst endpointMethodsMap = /* @__PURE__ */ new Map();\nfor (const [scope, endpoints] of Object.entries(ENDPOINTS)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign(\n {\n method,\n url\n },\n defaults\n );\n if (!endpointMethodsMap.has(scope)) {\n endpointMethodsMap.set(scope, /* @__PURE__ */ new Map());\n }\n endpointMethodsMap.get(scope).set(methodName, {\n scope,\n methodName,\n endpointDefaults,\n decorations\n });\n }\n}\nconst handler = {\n has({ scope }, methodName) {\n return endpointMethodsMap.get(scope).has(methodName);\n },\n getOwnPropertyDescriptor(target, methodName) {\n return {\n value: this.get(target, methodName),\n // ensures method is in the cache\n configurable: true,\n writable: true,\n enumerable: true\n };\n },\n defineProperty(target, methodName, descriptor) {\n Object.defineProperty(target.cache, methodName, descriptor);\n return true;\n },\n deleteProperty(target, methodName) {\n delete target.cache[methodName];\n return true;\n },\n ownKeys({ scope }) {\n return [...endpointMethodsMap.get(scope).keys()];\n },\n set(target, methodName, value) {\n return target.cache[methodName] = value;\n },\n get({ octokit, scope, cache }, methodName) {\n if (cache[methodName]) {\n return cache[methodName];\n }\n const method = endpointMethodsMap.get(scope).get(methodName);\n if (!method) {\n return void 0;\n }\n const { endpointDefaults, decorations } = method;\n if (decorations) {\n cache[methodName] = decorate(\n octokit,\n scope,\n methodName,\n endpointDefaults,\n decorations\n );\n } else {\n cache[methodName] = octokit.request.defaults(endpointDefaults);\n }\n return cache[methodName];\n }\n};\nfunction endpointsToMethods(octokit) {\n const newMethods = {};\n for (const scope of endpointMethodsMap.keys()) {\n newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler);\n }\n return newMethods;\n}\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n function withDecorations(...args) {\n let options = requestWithDefaults.endpoint.merge(...args);\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: void 0\n });\n return requestWithDefaults(options);\n }\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(\n `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`\n );\n }\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n if (decorations.renamedParameters) {\n const options2 = requestWithDefaults.endpoint.merge(...args);\n for (const [name, alias] of Object.entries(\n decorations.renamedParameters\n )) {\n if (name in options2) {\n octokit.log.warn(\n `\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`\n );\n if (!(alias in options2)) {\n options2[alias] = options2[name];\n }\n delete options2[name];\n }\n }\n return requestWithDefaults(options2);\n }\n return requestWithDefaults(...args);\n }\n return Object.assign(withDecorations, requestWithDefaults);\n}\nexport {\n endpointsToMethods\n};\n"], + "mappings": "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", + "names": [] +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js new file mode 100644 index 000000000..8a2aa969e --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js @@ -0,0 +1,125 @@ +import ENDPOINTS from "./generated/endpoints.js"; +const endpointMethodsMap = /* @__PURE__ */ new Map(); +for (const [scope, endpoints] of Object.entries(ENDPOINTS)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign( + { + method, + url + }, + defaults + ); + if (!endpointMethodsMap.has(scope)) { + endpointMethodsMap.set(scope, /* @__PURE__ */ new Map()); + } + endpointMethodsMap.get(scope).set(methodName, { + scope, + methodName, + endpointDefaults, + decorations + }); + } +} +const handler = { + has({ scope }, methodName) { + return endpointMethodsMap.get(scope).has(methodName); + }, + getOwnPropertyDescriptor(target, methodName) { + return { + value: this.get(target, methodName), + // ensures method is in the cache + configurable: true, + writable: true, + enumerable: true + }; + }, + defineProperty(target, methodName, descriptor) { + Object.defineProperty(target.cache, methodName, descriptor); + return true; + }, + deleteProperty(target, methodName) { + delete target.cache[methodName]; + return true; + }, + ownKeys({ scope }) { + return [...endpointMethodsMap.get(scope).keys()]; + }, + set(target, methodName, value) { + return target.cache[methodName] = value; + }, + get({ octokit, scope, cache }, methodName) { + if (cache[methodName]) { + return cache[methodName]; + } + const method = endpointMethodsMap.get(scope).get(methodName); + if (!method) { + return void 0; + } + const { endpointDefaults, decorations } = method; + if (decorations) { + cache[methodName] = decorate( + octokit, + scope, + methodName, + endpointDefaults, + decorations + ); + } else { + cache[methodName] = octokit.request.defaults(endpointDefaults); + } + return cache[methodName]; + } +}; +function endpointsToMethods(octokit) { + const newMethods = {}; + for (const scope of endpointMethodsMap.keys()) { + newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler); + } + return newMethods; +} +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + function withDecorations(...args) { + let options = requestWithDefaults.endpoint.merge(...args); + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: void 0 + }); + return requestWithDefaults(options); + } + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn( + `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()` + ); + } + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + if (decorations.renamedParameters) { + const options2 = requestWithDefaults.endpoint.merge(...args); + for (const [name, alias] of Object.entries( + decorations.renamedParameters + )) { + if (name in options2) { + octokit.log.warn( + `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead` + ); + if (!(alias in options2)) { + options2[alias] = options2[name]; + } + delete options2[name]; + } + } + return requestWithDefaults(options2); + } + return requestWithDefaults(...args); + } + return Object.assign(withDecorations, requestWithDefaults); +} +export { + endpointsToMethods +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js new file mode 100644 index 000000000..5950ad3e6 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js @@ -0,0 +1,1992 @@ +const Endpoints = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: [ + "POST /orgs/{org}/actions/runners/{runner_id}/labels" + ], + addCustomLabelsToSelfHostedRunnerForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" + ], + addSelectedRepoToOrgVariable: [ + "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" + ], + approveWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve" + ], + cancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel" + ], + createEnvironmentVariable: [ + "POST /repositories/{repository_id}/environments/{environment_name}/variables" + ], + createOrUpdateEnvironmentSecret: [ + "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" + ], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}" + ], + createOrgVariable: ["POST /orgs/{org}/actions/variables"], + createRegistrationTokenForOrg: [ + "POST /orgs/{org}/actions/runners/registration-token" + ], + createRegistrationTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/registration-token" + ], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/remove-token" + ], + createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"], + createWorkflowDispatch: [ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches" + ], + deleteActionsCacheById: [ + "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}" + ], + deleteActionsCacheByKey: [ + "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}" + ], + deleteArtifact: [ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" + ], + deleteEnvironmentSecret: [ + "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" + ], + deleteEnvironmentVariable: [ + "DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}" + ], + deleteRepoVariable: [ + "DELETE /repos/{owner}/{repo}/actions/variables/{name}" + ], + deleteSelfHostedRunnerFromOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}" + ], + deleteSelfHostedRunnerFromRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}" + ], + deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], + deleteWorkflowRunLogs: [ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs" + ], + disableSelectedRepositoryGithubActionsOrganization: [ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}" + ], + disableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable" + ], + downloadArtifact: [ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}" + ], + downloadJobLogsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs" + ], + downloadWorkflowRunAttemptLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs" + ], + downloadWorkflowRunLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs" + ], + enableSelectedRepositoryGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}" + ], + enableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable" + ], + forceCancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel" + ], + generateRunnerJitconfigForOrg: [ + "POST /orgs/{org}/actions/runners/generate-jitconfig" + ], + generateRunnerJitconfigForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig" + ], + getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], + getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], + getActionsCacheUsageByRepoForOrg: [ + "GET /orgs/{org}/actions/cache/usage-by-repository" + ], + getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], + getAllowedActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/selected-actions" + ], + getAllowedActionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions" + ], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getCustomOidcSubClaimForRepo: [ + "GET /repos/{owner}/{repo}/actions/oidc/customization/sub" + ], + getEnvironmentPublicKey: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key" + ], + getEnvironmentSecret: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" + ], + getEnvironmentVariable: [ + "GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}" + ], + getGithubActionsDefaultWorkflowPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions/workflow" + ], + getGithubActionsDefaultWorkflowPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/workflow" + ], + getGithubActionsPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions" + ], + getGithubActionsPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions" + ], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"], + getPendingDeploymentsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" + ], + getRepoPermissions: [ + "GET /repos/{owner}/{repo}/actions/permissions", + {}, + { renamed: ["actions", "getGithubActionsPermissionsRepository"] } + ], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"], + getReviewsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals" + ], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}" + ], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowAccessToRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/access" + ], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunAttempt: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}" + ], + getWorkflowRunUsage: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing" + ], + getWorkflowUsage: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing" + ], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listEnvironmentSecrets: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets" + ], + listEnvironmentVariables: [ + "GET /repositories/{repository_id}/environments/{environment_name}/variables" + ], + listJobsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" + ], + listJobsForWorkflowRunAttempt: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" + ], + listLabelsForSelfHostedRunnerForOrg: [ + "GET /orgs/{org}/actions/runners/{runner_id}/labels" + ], + listLabelsForSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listOrgVariables: ["GET /orgs/{org}/actions/variables"], + listRepoOrganizationSecrets: [ + "GET /repos/{owner}/{repo}/actions/organization-secrets" + ], + listRepoOrganizationVariables: [ + "GET /repos/{owner}/{repo}/actions/organization-variables" + ], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/downloads" + ], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" + ], + listSelectedReposForOrgVariable: [ + "GET /orgs/{org}/actions/variables/{name}/repositories" + ], + listSelectedRepositoriesEnabledGithubActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/repositories" + ], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" + ], + listWorkflowRuns: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" + ], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunJobForWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun" + ], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + reRunWorkflowFailedJobs: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs" + ], + removeAllCustomLabelsFromSelfHostedRunnerForOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels" + ], + removeAllCustomLabelsFromSelfHostedRunnerForRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + removeCustomLabelFromSelfHostedRunnerForOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}" + ], + removeCustomLabelFromSelfHostedRunnerForRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" + ], + removeSelectedRepoFromOrgVariable: [ + "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" + ], + reviewCustomGatesForRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule" + ], + reviewPendingDeploymentsForRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" + ], + setAllowedActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/selected-actions" + ], + setAllowedActionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions" + ], + setCustomLabelsForSelfHostedRunnerForOrg: [ + "PUT /orgs/{org}/actions/runners/{runner_id}/labels" + ], + setCustomLabelsForSelfHostedRunnerForRepo: [ + "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + setCustomOidcSubClaimForRepo: [ + "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub" + ], + setGithubActionsDefaultWorkflowPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/workflow" + ], + setGithubActionsDefaultWorkflowPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/workflow" + ], + setGithubActionsPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions" + ], + setGithubActionsPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories" + ], + setSelectedReposForOrgVariable: [ + "PUT /orgs/{org}/actions/variables/{name}/repositories" + ], + setSelectedRepositoriesEnabledGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories" + ], + setWorkflowAccessToRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/access" + ], + updateEnvironmentVariable: [ + "PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}" + ], + updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"], + updateRepoVariable: [ + "PATCH /repos/{owner}/{repo}/actions/variables/{name}" + ] + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: [ + "DELETE /notifications/threads/{thread_id}/subscription" + ], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: [ + "GET /notifications/threads/{thread_id}/subscription" + ], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: [ + "GET /users/{username}/events/orgs/{org}" + ], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: [ + "GET /users/{username}/received_events/public" + ], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/notifications" + ], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: [ + "PUT /notifications/threads/{thread_id}/subscription" + ], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] + }, + apps: { + addRepoToInstallation: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}", + {}, + { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] } + ], + addRepoToInstallationForAuthenticatedUser: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}" + ], + checkToken: ["POST /applications/{client_id}/token"], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: [ + "POST /app/installations/{installation_id}/access_tokens" + ], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}"], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app"], + getBySlug: ["GET /apps/{app_slug}"], + getInstallation: ["GET /app/installations/{installation_id}"], + getOrgInstallation: ["GET /orgs/{org}/installation"], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], + getSubscriptionPlanForAccount: [ + "GET /marketplace_listing/accounts/{account_id}" + ], + getSubscriptionPlanForAccountStubbed: [ + "GET /marketplace_listing/stubbed/accounts/{account_id}" + ], + getUserInstallation: ["GET /users/{username}/installation"], + getWebhookConfigForApp: ["GET /app/hook/config"], + getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: [ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" + ], + listInstallationReposForAuthenticatedUser: [ + "GET /user/installations/{installation_id}/repositories" + ], + listInstallationRequestsForAuthenticatedApp: [ + "GET /app/installation-requests" + ], + listInstallations: ["GET /app/installations"], + listInstallationsForAuthenticatedUser: ["GET /user/installations"], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories"], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: [ + "GET /user/marketplace_purchases/stubbed" + ], + listWebhookDeliveries: ["GET /app/hook/deliveries"], + redeliverWebhookDelivery: [ + "POST /app/hook/deliveries/{delivery_id}/attempts" + ], + removeRepoFromInstallation: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}", + {}, + { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] } + ], + removeRepoFromInstallationForAuthenticatedUser: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}" + ], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + scopeToken: ["POST /applications/{client_id}/token/scoped"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: [ + "DELETE /app/installations/{installation_id}/suspended" + ], + updateWebhookConfigForApp: ["PATCH /app/hook/config"] + }, + billing: { + getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], + getGithubActionsBillingUser: [ + "GET /users/{username}/settings/billing/actions" + ], + getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], + getGithubPackagesBillingUser: [ + "GET /users/{username}/settings/billing/packages" + ], + getSharedStorageBillingOrg: [ + "GET /orgs/{org}/settings/billing/shared-storage" + ], + getSharedStorageBillingUser: [ + "GET /users/{username}/settings/billing/shared-storage" + ] + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs"], + createSuite: ["POST /repos/{owner}/{repo}/check-suites"], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], + listAnnotations: [ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" + ], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], + listForSuite: [ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" + ], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], + rerequestRun: [ + "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest" + ], + rerequestSuite: [ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest" + ], + setSuitesPreferences: [ + "PATCH /repos/{owner}/{repo}/check-suites/preferences" + ], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] + }, + codeScanning: { + deleteAnalysis: [ + "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" + ], + getAlert: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + {}, + { renamedParameters: { alert_id: "alert_number" } } + ], + getAnalysis: [ + "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}" + ], + getCodeqlDatabase: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" + ], + getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + listAlertInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" + ], + listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listAlertsInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + {}, + { renamed: ["codeScanning", "listAlertInstances"] } + ], + listCodeqlDatabases: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases" + ], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" + ], + updateDefaultSetup: [ + "PATCH /repos/{owner}/{repo}/code-scanning/default-setup" + ], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct"], + getConductCode: ["GET /codes_of_conduct/{key}"] + }, + codespaces: { + addRepositoryForSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + checkPermissionsForDevcontainer: [ + "GET /repos/{owner}/{repo}/codespaces/permissions_check" + ], + codespaceMachinesForAuthenticatedUser: [ + "GET /user/codespaces/{codespace_name}/machines" + ], + createForAuthenticatedUser: ["POST /user/codespaces"], + createOrUpdateOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}" + ], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + createOrUpdateSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}" + ], + createWithPrForAuthenticatedUser: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces" + ], + createWithRepoForAuthenticatedUser: [ + "POST /repos/{owner}/{repo}/codespaces" + ], + deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], + deleteFromOrganization: [ + "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + deleteSecretForAuthenticatedUser: [ + "DELETE /user/codespaces/secrets/{secret_name}" + ], + exportForAuthenticatedUser: [ + "POST /user/codespaces/{codespace_name}/exports" + ], + getCodespacesForUserInOrg: [ + "GET /orgs/{org}/members/{username}/codespaces" + ], + getExportDetailsForAuthenticatedUser: [ + "GET /user/codespaces/{codespace_name}/exports/{export_id}" + ], + getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], + getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"], + getPublicKeyForAuthenticatedUser: [ + "GET /user/codespaces/secrets/public-key" + ], + getRepoPublicKey: [ + "GET /repos/{owner}/{repo}/codespaces/secrets/public-key" + ], + getRepoSecret: [ + "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + getSecretForAuthenticatedUser: [ + "GET /user/codespaces/secrets/{secret_name}" + ], + listDevcontainersInRepositoryForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/devcontainers" + ], + listForAuthenticatedUser: ["GET /user/codespaces"], + listInOrganization: [ + "GET /orgs/{org}/codespaces", + {}, + { renamedParameters: { org_id: "org" } } + ], + listInRepositoryForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces" + ], + listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], + listRepositoriesForSecretForAuthenticatedUser: [ + "GET /user/codespaces/secrets/{secret_name}/repositories" + ], + listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories" + ], + preFlightWithRepoForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/new" + ], + publishForAuthenticatedUser: [ + "POST /user/codespaces/{codespace_name}/publish" + ], + removeRepositoryForSecretForAuthenticatedUser: [ + "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + repoMachinesForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/machines" + ], + setRepositoriesForSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}/repositories" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories" + ], + startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], + stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], + stopInOrganization: [ + "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop" + ], + updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] + }, + copilot: { + addCopilotSeatsForTeams: [ + "POST /orgs/{org}/copilot/billing/selected_teams" + ], + addCopilotSeatsForUsers: [ + "POST /orgs/{org}/copilot/billing/selected_users" + ], + cancelCopilotSeatAssignmentForTeams: [ + "DELETE /orgs/{org}/copilot/billing/selected_teams" + ], + cancelCopilotSeatAssignmentForUsers: [ + "DELETE /orgs/{org}/copilot/billing/selected_users" + ], + getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"], + getCopilotSeatDetailsForUser: [ + "GET /orgs/{org}/members/{username}/copilot" + ], + listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"] + }, + dependabot: { + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" + ], + createOrUpdateOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}" + ], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"], + getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], + getRepoPublicKey: [ + "GET /repos/{owner}/{repo}/dependabot/secrets/public-key" + ], + getRepoSecret: [ + "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + listAlertsForEnterprise: [ + "GET /enterprises/{enterprise}/dependabot/alerts" + ], + listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"], + listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" + ] + }, + dependencyGraph: { + createRepositorySnapshot: [ + "POST /repos/{owner}/{repo}/dependency-graph/snapshots" + ], + diffRange: [ + "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}" + ], + exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"] + }, + emojis: { get: ["GET /emojis"] }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"] + }, + interactions: { + getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], + getRestrictionsForYourPublicRepos: [ + "GET /user/interaction-limits", + {}, + { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] } + ], + removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], + removeRestrictionsForRepo: [ + "DELETE /repos/{owner}/{repo}/interaction-limits" + ], + removeRestrictionsForYourPublicRepos: [ + "DELETE /user/interaction-limits", + {}, + { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] } + ], + setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], + setRestrictionsForYourPublicRepos: [ + "PUT /user/interaction-limits", + {}, + { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] } + ] + }, + issues: { + addAssignees: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees" + ], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + checkUserCanBeAssignedToIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}" + ], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments" + ], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}" + ], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: [ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}" + ], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline" + ], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: [ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels" + ], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels" + ], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels" + ], + removeAssignees: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees" + ], + removeLabel: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" + ], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: [ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}" + ] + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"] + }, + markdown: { + render: ["POST /markdown"], + renderRaw: [ + "POST /markdown/raw", + { headers: { "content-type": "text/plain; charset=utf-8" } } + ] + }, + meta: { + get: ["GET /meta"], + getAllVersions: ["GET /versions"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"] + }, + migrations: { + cancelImport: [ + "DELETE /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import" + } + ], + deleteArchiveForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/archive" + ], + deleteArchiveForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/archive" + ], + downloadArchiveForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}/archive" + ], + getArchiveForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/archive" + ], + getCommitAuthors: [ + "GET /repos/{owner}/{repo}/import/authors", + {}, + { + deprecated: "octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors" + } + ], + getImportStatus: [ + "GET /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status" + } + ], + getLargeFiles: [ + "GET /repos/{owner}/{repo}/import/large_files", + {}, + { + deprecated: "octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files" + } + ], + getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], + getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], + listForAuthenticatedUser: ["GET /user/migrations"], + listForOrg: ["GET /orgs/{org}/migrations"], + listReposForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/repositories" + ], + listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], + listReposForUser: [ + "GET /user/migrations/{migration_id}/repositories", + {}, + { renamed: ["migrations", "listReposForAuthenticatedUser"] } + ], + mapCommitAuthor: [ + "PATCH /repos/{owner}/{repo}/import/authors/{author_id}", + {}, + { + deprecated: "octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author" + } + ], + setLfsPreference: [ + "PATCH /repos/{owner}/{repo}/import/lfs", + {}, + { + deprecated: "octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference" + } + ], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: [ + "PUT /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import" + } + ], + unlockRepoForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" + ], + unlockRepoForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" + ], + updateImport: [ + "PATCH /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import" + } + ] + }, + oidc: { + getOidcCustomSubTemplateForOrg: [ + "GET /orgs/{org}/actions/oidc/customization/sub" + ], + updateOidcCustomSubTemplateForOrg: [ + "PUT /orgs/{org}/actions/oidc/customization/sub" + ] + }, + orgs: { + addSecurityManagerTeam: [ + "PUT /orgs/{org}/security-managers/teams/{team_slug}" + ], + assignTeamToOrgRole: [ + "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" + ], + assignUserToOrgRole: [ + "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}" + ], + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: [ + "PUT /orgs/{org}/outside_collaborators/{username}" + ], + createCustomOrganizationRole: ["POST /orgs/{org}/organization-roles"], + createInvitation: ["POST /orgs/{org}/invitations"], + createOrUpdateCustomProperties: ["PATCH /orgs/{org}/properties/schema"], + createOrUpdateCustomPropertiesValuesForRepos: [ + "PATCH /orgs/{org}/properties/values" + ], + createOrUpdateCustomProperty: [ + "PUT /orgs/{org}/properties/schema/{custom_property_name}" + ], + createWebhook: ["POST /orgs/{org}/hooks"], + delete: ["DELETE /orgs/{org}"], + deleteCustomOrganizationRole: [ + "DELETE /orgs/{org}/organization-roles/{role_id}" + ], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + enableOrDisableSecurityProductOnAllOrgRepos: [ + "POST /orgs/{org}/{security_product}/{enablement}" + ], + get: ["GET /orgs/{org}"], + getAllCustomProperties: ["GET /orgs/{org}/properties/schema"], + getCustomProperty: [ + "GET /orgs/{org}/properties/schema/{custom_property_name}" + ], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], + getWebhookDelivery: [ + "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}" + ], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listCustomPropertiesValuesForRepos: ["GET /orgs/{org}/properties/values"], + listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"], + listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"], + listOrgRoles: ["GET /orgs/{org}/organization-roles"], + listOrganizationFineGrainedPermissions: [ + "GET /orgs/{org}/organization-fine-grained-permissions" + ], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPatGrantRepositories: [ + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories" + ], + listPatGrantRequestRepositories: [ + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories" + ], + listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"], + listPatGrants: ["GET /orgs/{org}/personal-access-tokens"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listSecurityManagerTeams: ["GET /orgs/{org}/security-managers"], + listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], + listWebhooks: ["GET /orgs/{org}/hooks"], + patchCustomOrganizationRole: [ + "PATCH /orgs/{org}/organization-roles/{role_id}" + ], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: [ + "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" + ], + removeCustomProperty: [ + "DELETE /orgs/{org}/properties/schema/{custom_property_name}" + ], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: [ + "DELETE /orgs/{org}/outside_collaborators/{username}" + ], + removePublicMembershipForAuthenticatedUser: [ + "DELETE /orgs/{org}/public_members/{username}" + ], + removeSecurityManagerTeam: [ + "DELETE /orgs/{org}/security-managers/teams/{team_slug}" + ], + reviewPatGrantRequest: [ + "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}" + ], + reviewPatGrantRequestsInBulk: [ + "POST /orgs/{org}/personal-access-token-requests" + ], + revokeAllOrgRolesTeam: [ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}" + ], + revokeAllOrgRolesUser: [ + "DELETE /orgs/{org}/organization-roles/users/{username}" + ], + revokeOrgRoleTeam: [ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" + ], + revokeOrgRoleUser: [ + "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}" + ], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: [ + "PUT /orgs/{org}/public_members/{username}" + ], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: [ + "PATCH /user/memberships/orgs/{org}" + ], + updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"], + updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], + updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] + }, + packages: { + deletePackageForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}" + ], + deletePackageForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}" + ], + deletePackageForUser: [ + "DELETE /users/{username}/packages/{package_type}/{package_name}" + ], + deletePackageVersionForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + deletePackageVersionForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + deletePackageVersionForUser: [ + "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getAllPackageVersionsForAPackageOwnedByAnOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + {}, + { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] } + ], + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions", + {}, + { + renamed: [ + "packages", + "getAllPackageVersionsForPackageOwnedByAuthenticatedUser" + ] + } + ], + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions" + ], + getAllPackageVersionsForPackageOwnedByOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" + ], + getAllPackageVersionsForPackageOwnedByUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions" + ], + getPackageForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}" + ], + getPackageForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}" + ], + getPackageForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}" + ], + getPackageVersionForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getPackageVersionForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getPackageVersionForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + listDockerMigrationConflictingPackagesForAuthenticatedUser: [ + "GET /user/docker/conflicts" + ], + listDockerMigrationConflictingPackagesForOrganization: [ + "GET /orgs/{org}/docker/conflicts" + ], + listDockerMigrationConflictingPackagesForUser: [ + "GET /users/{username}/docker/conflicts" + ], + listPackagesForAuthenticatedUser: ["GET /user/packages"], + listPackagesForOrganization: ["GET /orgs/{org}/packages"], + listPackagesForUser: ["GET /users/{username}/packages"], + restorePackageForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageForUser: [ + "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageVersionForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ], + restorePackageVersionForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ], + restorePackageVersionForUser: [ + "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ] + }, + projects: { + addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], + createCard: ["POST /projects/columns/{column_id}/cards"], + createColumn: ["POST /projects/{project_id}/columns"], + createForAuthenticatedUser: ["POST /user/projects"], + createForOrg: ["POST /orgs/{org}/projects"], + createForRepo: ["POST /repos/{owner}/{repo}/projects"], + delete: ["DELETE /projects/{project_id}"], + deleteCard: ["DELETE /projects/columns/cards/{card_id}"], + deleteColumn: ["DELETE /projects/columns/{column_id}"], + get: ["GET /projects/{project_id}"], + getCard: ["GET /projects/columns/cards/{card_id}"], + getColumn: ["GET /projects/columns/{column_id}"], + getPermissionForUser: [ + "GET /projects/{project_id}/collaborators/{username}/permission" + ], + listCards: ["GET /projects/columns/{column_id}/cards"], + listCollaborators: ["GET /projects/{project_id}/collaborators"], + listColumns: ["GET /projects/{project_id}/columns"], + listForOrg: ["GET /orgs/{org}/projects"], + listForRepo: ["GET /repos/{owner}/{repo}/projects"], + listForUser: ["GET /users/{username}/projects"], + moveCard: ["POST /projects/columns/cards/{card_id}/moves"], + moveColumn: ["POST /projects/columns/{column_id}/moves"], + removeCollaborator: [ + "DELETE /projects/{project_id}/collaborators/{username}" + ], + update: ["PATCH /projects/{project_id}"], + updateCard: ["PATCH /projects/columns/cards/{card_id}"], + updateColumn: ["PATCH /projects/columns/{column_id}"] + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies" + ], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments" + ], + deletePendingReview: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + deleteReviewComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}" + ], + dismissReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals" + ], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments" + ], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + listReviewComments: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments" + ], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + requestReviewers: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + submitReview: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events" + ], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch" + ], + updateReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + updateReviewComment: [ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}" + ] + }, + rateLimit: { get: ["GET /rate_limit"] }, + reactions: { + createForCommitComment: [ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions" + ], + createForIssue: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions" + ], + createForIssueComment: [ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" + ], + createForPullRequestReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" + ], + createForRelease: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/reactions" + ], + createForTeamDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" + ], + createForTeamDiscussionInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" + ], + deleteForCommitComment: [ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForIssue: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}" + ], + deleteForIssueComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForPullRequestComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForRelease: [ + "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}" + ], + deleteForTeamDiscussion: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}" + ], + deleteForTeamDiscussionComment: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}" + ], + listForCommitComment: [ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" + ], + listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], + listForIssueComment: [ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" + ], + listForPullRequestReviewComment: [ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" + ], + listForRelease: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions" + ], + listForTeamDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" + ], + listForTeamDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" + ] + }, + repos: { + acceptInvitation: [ + "PATCH /user/repository_invitations/{invitation_id}", + {}, + { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] } + ], + acceptInvitationForAuthenticatedUser: [ + "PATCH /user/repository_invitations/{invitation_id}" + ], + addAppAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + addTeamAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + addUserAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + cancelPagesDeployment: [ + "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel" + ], + checkAutomatedSecurityFixes: [ + "GET /repos/{owner}/{repo}/automated-security-fixes" + ], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkVulnerabilityAlerts: [ + "GET /repos/{owner}/{repo}/vulnerability-alerts" + ], + codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + compareCommitsWithBasehead: [ + "GET /repos/{owner}/{repo}/compare/{basehead}" + ], + createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], + createCommitComment: [ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments" + ], + createCommitSignatureProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentBranchPolicy: [ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" + ], + createDeploymentProtectionRule: [ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" + ], + createDeploymentStatus: [ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" + ], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateCustomPropertiesValues: [ + "PATCH /repos/{owner}/{repo}/properties/values" + ], + createOrUpdateEnvironment: [ + "PUT /repos/{owner}/{repo}/environments/{environment_name}" + ], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createOrgRuleset: ["POST /orgs/{org}/rulesets"], + createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"], + createPagesSite: ["POST /repos/{owner}/{repo}/pages"], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"], + createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], + createUsingTemplate: [ + "POST /repos/{template_owner}/{template_repo}/generate" + ], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: [ + "DELETE /user/repository_invitations/{invitation_id}", + {}, + { renamed: ["repos", "declineInvitationForAuthenticatedUser"] } + ], + declineInvitationForAuthenticatedUser: [ + "DELETE /user/repository_invitations/{invitation_id}" + ], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" + ], + deleteAdminBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + deleteAnEnvironment: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}" + ], + deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], + deleteBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection" + ], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: [ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}" + ], + deleteDeploymentBranchPolicy: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: [ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}" + ], + deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"], + deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], + deletePullRequestReviewProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: [ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}" + ], + deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + deleteTagProtection: [ + "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}" + ], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: [ + "DELETE /repos/{owner}/{repo}/automated-security-fixes" + ], + disableDeploymentProtectionRule: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" + ], + disablePrivateVulnerabilityReporting: [ + "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting" + ], + disableVulnerabilityAlerts: [ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts" + ], + downloadArchive: [ + "GET /repos/{owner}/{repo}/zipball/{ref}", + {}, + { renamed: ["repos", "downloadZipballArchive"] } + ], + downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], + downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], + enableAutomatedSecurityFixes: [ + "PUT /repos/{owner}/{repo}/automated-security-fixes" + ], + enablePrivateVulnerabilityReporting: [ + "PUT /repos/{owner}/{repo}/private-vulnerability-reporting" + ], + enableVulnerabilityAlerts: [ + "PUT /repos/{owner}/{repo}/vulnerability-alerts" + ], + generateReleaseNotes: [ + "POST /repos/{owner}/{repo}/releases/generate-notes" + ], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" + ], + getAdminBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + getAllDeploymentProtectionRules: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" + ], + getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], + getAllStatusCheckContexts: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" + ], + getAllTopics: ["GET /repos/{owner}/{repo}/topics"], + getAppsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" + ], + getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection" + ], + getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: [ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission" + ], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getCustomDeploymentProtectionRule: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" + ], + getCustomPropertiesValues: ["GET /repos/{owner}/{repo}/properties/values"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentBranchPolicy: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + getDeploymentStatus: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}" + ], + getEnvironment: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}" + ], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"], + getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"], + getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"], + getOrgRulesets: ["GET /orgs/{org}/rulesets"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getPagesDeployment: [ + "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}" + ], + getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getRepoRuleSuite: [ + "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}" + ], + getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"], + getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"], + getStatusChecksProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + getTeamsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" + ], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" + ], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + getWebhookConfigForRepo: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config" + ], + getWebhookDelivery: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}" + ], + listActivities: ["GET /repos/{owner}/{repo}/activity"], + listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head" + ], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments" + ], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: [ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses" + ], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listCustomDeploymentRuleIntegrations: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps" + ], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentBranchPolicies: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" + ], + listDeploymentStatuses: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" + ], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls" + ], + listReleaseAssets: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets" + ], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhookDeliveries: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries" + ], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: [ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" + ], + removeAppAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + removeCollaborator: [ + "DELETE /repos/{owner}/{repo}/collaborators/{username}" + ], + removeStatusCheckContexts: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + removeStatusCheckProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + removeTeamAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + removeUserAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], + replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + setAppAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + setStatusCheckContexts: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + setTeamAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + setUserAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection" + ], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateDeploymentBranchPolicy: [ + "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: [ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}" + ], + updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"], + updatePullRequestReviewProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: [ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}" + ], + updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + updateStatusCheckPotection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + {}, + { renamed: ["repos", "updateStatusCheckProtection"] } + ], + updateStatusCheckProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + updateWebhookConfigForRepo: [ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config" + ], + uploadReleaseAsset: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", + { baseUrl: "https://uploads.github.com" } + ] + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits"], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics"], + users: ["GET /search/users"] + }, + secretScanning: { + getAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ], + listAlertsForEnterprise: [ + "GET /enterprises/{enterprise}/secret-scanning/alerts" + ], + listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], + listLocationsForAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ] + }, + securityAdvisories: { + createFork: [ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks" + ], + createPrivateVulnerabilityReport: [ + "POST /repos/{owner}/{repo}/security-advisories/reports" + ], + createRepositoryAdvisory: [ + "POST /repos/{owner}/{repo}/security-advisories" + ], + createRepositoryAdvisoryCveRequest: [ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve" + ], + getGlobalAdvisory: ["GET /advisories/{ghsa_id}"], + getRepositoryAdvisory: [ + "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}" + ], + listGlobalAdvisories: ["GET /advisories"], + listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"], + listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"], + updateRepositoryAdvisory: [ + "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}" + ] + }, + teams: { + addOrUpdateMembershipForUserInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + addOrUpdateProjectPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + addOrUpdateRepoPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + checkPermissionsForProjectInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + checkPermissionsForRepoInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" + ], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + deleteDiscussionInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + getDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + getMembershipForUserInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" + ], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/invitations" + ], + listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + removeProjectInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + removeRepoInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + updateDiscussionCommentInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + updateDiscussionInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] + }, + users: { + addEmailForAuthenticated: [ + "POST /user/emails", + {}, + { renamed: ["users", "addEmailForAuthenticatedUser"] } + ], + addEmailForAuthenticatedUser: ["POST /user/emails"], + addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: [ + "POST /user/gpg_keys", + {}, + { renamed: ["users", "createGpgKeyForAuthenticatedUser"] } + ], + createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: [ + "POST /user/keys", + {}, + { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] } + ], + createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], + createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"], + deleteEmailForAuthenticated: [ + "DELETE /user/emails", + {}, + { renamed: ["users", "deleteEmailForAuthenticatedUser"] } + ], + deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: [ + "DELETE /user/gpg_keys/{gpg_key_id}", + {}, + { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] } + ], + deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: [ + "DELETE /user/keys/{key_id}", + {}, + { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] } + ], + deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], + deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"], + deleteSshSigningKeyForAuthenticatedUser: [ + "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}" + ], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: [ + "GET /user/gpg_keys/{gpg_key_id}", + {}, + { renamed: ["users", "getGpgKeyForAuthenticatedUser"] } + ], + getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: [ + "GET /user/keys/{key_id}", + {}, + { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] } + ], + getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], + getSshSigningKeyForAuthenticatedUser: [ + "GET /user/ssh_signing_keys/{ssh_signing_key_id}" + ], + list: ["GET /users"], + listBlockedByAuthenticated: [ + "GET /user/blocks", + {}, + { renamed: ["users", "listBlockedByAuthenticatedUser"] } + ], + listBlockedByAuthenticatedUser: ["GET /user/blocks"], + listEmailsForAuthenticated: [ + "GET /user/emails", + {}, + { renamed: ["users", "listEmailsForAuthenticatedUser"] } + ], + listEmailsForAuthenticatedUser: ["GET /user/emails"], + listFollowedByAuthenticated: [ + "GET /user/following", + {}, + { renamed: ["users", "listFollowedByAuthenticatedUser"] } + ], + listFollowedByAuthenticatedUser: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: [ + "GET /user/gpg_keys", + {}, + { renamed: ["users", "listGpgKeysForAuthenticatedUser"] } + ], + listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: [ + "GET /user/public_emails", + {}, + { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] } + ], + listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: [ + "GET /user/keys", + {}, + { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] } + ], + listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], + listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"], + listSocialAccountsForUser: ["GET /users/{username}/social_accounts"], + listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"], + listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"], + setPrimaryEmailVisibilityForAuthenticated: [ + "PATCH /user/email/visibility", + {}, + { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] } + ], + setPrimaryEmailVisibilityForAuthenticatedUser: [ + "PATCH /user/email/visibility" + ], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"] + } +}; +var endpoints_default = Endpoints; +export { + endpoints_default as default +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/method-types.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/method-types.js new file mode 100644 index 000000000..e69de29bb diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/parameters-and-response-types.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/parameters-and-response-types.js new file mode 100644 index 000000000..e69de29bb diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js new file mode 100644 index 000000000..97ef79759 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js @@ -0,0 +1,21 @@ +import { VERSION } from "./version.js"; +import { endpointsToMethods } from "./endpoints-to-methods.js"; +function restEndpointMethods(octokit) { + const api = endpointsToMethods(octokit); + return { + rest: api + }; +} +restEndpointMethods.VERSION = VERSION; +function legacyRestEndpointMethods(octokit) { + const api = endpointsToMethods(octokit); + return { + ...api, + rest: api + }; +} +legacyRestEndpointMethods.VERSION = VERSION; +export { + legacyRestEndpointMethods, + restEndpointMethods +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js new file mode 100644 index 000000000..24785d8ca --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js @@ -0,0 +1,4 @@ +const VERSION = "10.4.1"; +export { + VERSION +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/endpoints-to-methods.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/endpoints-to-methods.d.ts new file mode 100644 index 000000000..c46d15bf3 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/endpoints-to-methods.d.ts @@ -0,0 +1,3 @@ +import type { Octokit } from "@octokit/core"; +import type { RestEndpointMethods } from "./generated/method-types.js"; +export declare function endpointsToMethods(octokit: Octokit): RestEndpointMethods; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/endpoints.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/endpoints.d.ts new file mode 100644 index 000000000..c2f1e81ad --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/endpoints.d.ts @@ -0,0 +1,3 @@ +import type { EndpointsDefaultsAndDecorations } from "../types.js"; +declare const Endpoints: EndpointsDefaultsAndDecorations; +export default Endpoints; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types.d.ts new file mode 100644 index 000000000..697beb9cf --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types.d.ts @@ -0,0 +1,12336 @@ +import type { EndpointInterface, RequestInterface } from "@octokit/types"; +import type { RestEndpointMethodTypes } from "./parameters-and-response-types.js"; +export type RestEndpointMethods = { + actions: { + /** + * Adds custom labels to a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + addCustomLabelsToSelfHostedRunnerForOrg: { + (params?: RestEndpointMethodTypes["actions"]["addCustomLabelsToSelfHostedRunnerForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds custom labels to a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + addCustomLabelsToSelfHostedRunnerForRepo: { + (params?: RestEndpointMethodTypes["actions"]["addCustomLabelsToSelfHostedRunnerForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. For more information about setting the visibility, see [Create or + * update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + addSelectedRepoToOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["addSelectedRepoToOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a repository to an organization variable that is available to selected repositories. + * Organization variables that are available to selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + addSelectedRepoToOrgVariable: { + (params?: RestEndpointMethodTypes["actions"]["addSelectedRepoToOrgVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see ["Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + approveWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["approveWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Cancels a workflow run using its `id`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + cancelWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["cancelWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createEnvironmentVariable: { + (params?: RestEndpointMethodTypes["actions"]["createEnvironmentVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates an environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createOrUpdateEnvironmentSecret: { + (params?: RestEndpointMethodTypes["actions"]["createOrUpdateEnvironmentSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to + * use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + createOrUpdateOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["createOrUpdateOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createOrUpdateRepoSecret: { + (params?: RestEndpointMethodTypes["actions"]["createOrUpdateRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createOrgVariable: { + (params?: RestEndpointMethodTypes["actions"]["createOrgVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createRegistrationTokenForOrg: { + (params?: RestEndpointMethodTypes["actions"]["createRegistrationTokenForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createRegistrationTokenForRepo: { + (params?: RestEndpointMethodTypes["actions"]["createRegistrationTokenForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createRemoveTokenForOrg: { + (params?: RestEndpointMethodTypes["actions"]["createRemoveTokenForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a token that you can pass to the `config` script to remove a self-hosted runner from an repository. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createRemoveTokenForRepo: { + (params?: RestEndpointMethodTypes["actions"]["createRemoveTokenForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createRepoVariable: { + (params?: RestEndpointMethodTypes["actions"]["createRepoVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createWorkflowDispatch: { + (params?: RestEndpointMethodTypes["actions"]["createWorkflowDispatch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a GitHub Actions cache for a repository, using a cache ID. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteActionsCacheById: { + (params?: RestEndpointMethodTypes["actions"]["deleteActionsCacheById"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes one or more GitHub Actions caches for a repository, using a complete cache key. By default, all caches that match the provided key are deleted, but you can optionally provide a Git ref to restrict deletions to caches that match both the provided key and the Git ref. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteActionsCacheByKey: { + (params?: RestEndpointMethodTypes["actions"]["deleteActionsCacheByKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes an artifact for a workflow run. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteArtifact: { + (params?: RestEndpointMethodTypes["actions"]["deleteArtifact"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a secret in an environment using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteEnvironmentSecret: { + (params?: RestEndpointMethodTypes["actions"]["deleteEnvironmentSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes an environment variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteEnvironmentVariable: { + (params?: RestEndpointMethodTypes["actions"]["deleteEnvironmentVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a secret in an organization using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["deleteOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes an organization variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteOrgVariable: { + (params?: RestEndpointMethodTypes["actions"]["deleteOrgVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a secret in a repository using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteRepoSecret: { + (params?: RestEndpointMethodTypes["actions"]["deleteRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a repository variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteRepoVariable: { + (params?: RestEndpointMethodTypes["actions"]["deleteRepoVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteSelfHostedRunnerFromOrg: { + (params?: RestEndpointMethodTypes["actions"]["deleteSelfHostedRunnerFromOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteSelfHostedRunnerFromRepo: { + (params?: RestEndpointMethodTypes["actions"]["deleteSelfHostedRunnerFromRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a specific workflow run. + * + * Anyone with write access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["deleteWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes all logs for a workflow run. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteWorkflowRunLogs: { + (params?: RestEndpointMethodTypes["actions"]["deleteWorkflowRunLogs"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + disableSelectedRepositoryGithubActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["disableSelectedRepositoryGithubActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + disableWorkflow: { + (params?: RestEndpointMethodTypes["actions"]["disableWorkflow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + * the response header to find the URL for the download. The `:archive_format` must be `zip`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + downloadArtifact: { + (params?: RestEndpointMethodTypes["actions"]["downloadArtifact"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + * for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + downloadJobLogsForWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["downloadJobLogsForWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download an archive of log files for a specific workflow run attempt. This link expires after + * 1 minute. Look for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + downloadWorkflowRunAttemptLogs: { + (params?: RestEndpointMethodTypes["actions"]["downloadWorkflowRunAttemptLogs"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for + * `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + downloadWorkflowRunLogs: { + (params?: RestEndpointMethodTypes["actions"]["downloadWorkflowRunLogs"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + enableSelectedRepositoryGithubActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["enableSelectedRepositoryGithubActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + enableWorkflow: { + (params?: RestEndpointMethodTypes["actions"]["enableWorkflow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Cancels a workflow run and bypasses conditions that would otherwise cause a workflow execution to continue, such as an `always()` condition on a job. + * You should only use this endpoint to cancel a workflow run when the workflow run is not responding to [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel`](/rest/actions/workflow-runs#cancel-a-workflow-run). + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + forceCancelWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["forceCancelWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the organization. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + generateRunnerJitconfigForOrg: { + (params?: RestEndpointMethodTypes["actions"]["generateRunnerJitconfigForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the repository. + * + * OAuth tokens and personal access tokens (classic) need the`repo` scope to use this endpoint. + */ + generateRunnerJitconfigForRepo: { + (params?: RestEndpointMethodTypes["actions"]["generateRunnerJitconfigForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the GitHub Actions caches for a repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getActionsCacheList: { + (params?: RestEndpointMethodTypes["actions"]["getActionsCacheList"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets GitHub Actions cache usage for a repository. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getActionsCacheUsage: { + (params?: RestEndpointMethodTypes["actions"]["getActionsCacheUsage"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories and their GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + getActionsCacheUsageByRepoForOrg: { + (params?: RestEndpointMethodTypes["actions"]["getActionsCacheUsageByRepoForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the total GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + getActionsCacheUsageForOrg: { + (params?: RestEndpointMethodTypes["actions"]["getActionsCacheUsageForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + getAllowedActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["getAllowedActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getAllowedActionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["getAllowedActionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific artifact for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getArtifact: { + (params?: RestEndpointMethodTypes["actions"]["getArtifact"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the customization template for an OpenID Connect (OIDC) subject claim. + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. GitHub Apps must have the `organization_administration:read` permission to use this endpoint. + */ + getCustomOidcSubClaimForRepo: { + (params?: RestEndpointMethodTypes["actions"]["getCustomOidcSubClaimForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the public key for an environment, which you need to encrypt environment + * secrets. You need to encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getEnvironmentPublicKey: { + (params?: RestEndpointMethodTypes["actions"]["getEnvironmentPublicKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single environment secret without revealing its encrypted value. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getEnvironmentSecret: { + (params?: RestEndpointMethodTypes["actions"]["getEnvironmentSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific variable in an environment. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getEnvironmentVariable: { + (params?: RestEndpointMethodTypes["actions"]["getEnvironmentVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, + * as well as whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + getGithubActionsDefaultWorkflowPermissionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["getGithubActionsDefaultWorkflowPermissionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, + * as well as if GitHub Actions can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getGithubActionsDefaultWorkflowPermissionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["getGithubActionsDefaultWorkflowPermissionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + getGithubActionsPermissionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["getGithubActionsPermissionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getGithubActionsPermissionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["getGithubActionsPermissionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific job in a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getJobForWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["getJobForWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getOrgPublicKey: { + (params?: RestEndpointMethodTypes["actions"]["getOrgPublicKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single organization secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["getOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific variable in an organization. + * + * The authenticated user must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getOrgVariable: { + (params?: RestEndpointMethodTypes["actions"]["getOrgVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get all deployment environments for a workflow run that are waiting for protection rules to pass. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getPendingDeploymentsForRun: { + (params?: RestEndpointMethodTypes["actions"]["getPendingDeploymentsForRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + * @deprecated octokit.rest.actions.getRepoPermissions() has been renamed to octokit.rest.actions.getGithubActionsPermissionsRepository() (2020-11-10) + */ + getRepoPermissions: { + (params?: RestEndpointMethodTypes["actions"]["getRepoPermissions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getRepoPublicKey: { + (params?: RestEndpointMethodTypes["actions"]["getRepoPublicKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single repository secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getRepoSecret: { + (params?: RestEndpointMethodTypes["actions"]["getRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific variable in a repository. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getRepoVariable: { + (params?: RestEndpointMethodTypes["actions"]["getRepoVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + getReviewsForRun: { + (params?: RestEndpointMethodTypes["actions"]["getReviewsForRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + getSelfHostedRunnerForOrg: { + (params?: RestEndpointMethodTypes["actions"]["getSelfHostedRunnerForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getSelfHostedRunnerForRepo: { + (params?: RestEndpointMethodTypes["actions"]["getSelfHostedRunnerForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific workflow. You can replace `workflow_id` with the workflow + * file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + getWorkflow: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getWorkflowAccessToRepository: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflowAccessToRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + getWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific workflow run attempt. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + getWorkflowRunAttempt: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflowRunAttempt"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + getWorkflowRunUsage: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflowRunUsage"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + getWorkflowUsage: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflowUsage"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all artifacts for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + listArtifactsForRepo: { + (params?: RestEndpointMethodTypes["actions"]["listArtifactsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all secrets available in an environment without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + listEnvironmentSecrets: { + (params?: RestEndpointMethodTypes["actions"]["listEnvironmentSecrets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all environment variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + listEnvironmentVariables: { + (params?: RestEndpointMethodTypes["actions"]["listEnvironmentVariables"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists jobs for a workflow run. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + listJobsForWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["listJobsForWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists jobs for a specific workflow run attempt. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + listJobsForWorkflowRunAttempt: { + (params?: RestEndpointMethodTypes["actions"]["listJobsForWorkflowRunAttempt"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all labels for a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + listLabelsForSelfHostedRunnerForOrg: { + (params?: RestEndpointMethodTypes["actions"]["listLabelsForSelfHostedRunnerForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all labels for a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + listLabelsForSelfHostedRunnerForRepo: { + (params?: RestEndpointMethodTypes["actions"]["listLabelsForSelfHostedRunnerForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all secrets available in an organization without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + listOrgSecrets: { + (params?: RestEndpointMethodTypes["actions"]["listOrgSecrets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all organization variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + listOrgVariables: { + (params?: RestEndpointMethodTypes["actions"]["listOrgVariables"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all organization secrets shared with a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + listRepoOrganizationSecrets: { + (params?: RestEndpointMethodTypes["actions"]["listRepoOrganizationSecrets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all organization variables shared with a repository. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + listRepoOrganizationVariables: { + (params?: RestEndpointMethodTypes["actions"]["listRepoOrganizationVariables"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all secrets available in a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + listRepoSecrets: { + (params?: RestEndpointMethodTypes["actions"]["listRepoSecrets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all repository variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + listRepoVariables: { + (params?: RestEndpointMethodTypes["actions"]["listRepoVariables"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the workflows in a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + listRepoWorkflows: { + (params?: RestEndpointMethodTypes["actions"]["listRepoWorkflows"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + listRunnerApplicationsForOrg: { + (params?: RestEndpointMethodTypes["actions"]["listRunnerApplicationsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + listRunnerApplicationsForRepo: { + (params?: RestEndpointMethodTypes["actions"]["listRunnerApplicationsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + listSelectedReposForOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["listSelectedReposForOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all repositories that can access an organization variable + * that is available to selected repositories. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + listSelectedReposForOrgVariable: { + (params?: RestEndpointMethodTypes["actions"]["listSelectedReposForOrgVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + listSelectedRepositoriesEnabledGithubActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["listSelectedRepositoriesEnabledGithubActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all self-hosted runners configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + listSelfHostedRunnersForOrg: { + (params?: RestEndpointMethodTypes["actions"]["listSelfHostedRunnersForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all self-hosted runners configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + listSelfHostedRunnersForRepo: { + (params?: RestEndpointMethodTypes["actions"]["listSelfHostedRunnersForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists artifacts for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + listWorkflowRunArtifacts: { + (params?: RestEndpointMethodTypes["actions"]["listWorkflowRunArtifacts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + listWorkflowRuns: { + (params?: RestEndpointMethodTypes["actions"]["listWorkflowRuns"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + listWorkflowRunsForRepo: { + (params?: RestEndpointMethodTypes["actions"]["listWorkflowRunsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Re-run a job and its dependent jobs in a workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + reRunJobForWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["reRunJobForWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Re-runs your workflow run using its `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + reRunWorkflow: { + (params?: RestEndpointMethodTypes["actions"]["reRunWorkflow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + reRunWorkflowFailedJobs: { + (params?: RestEndpointMethodTypes["actions"]["reRunWorkflowFailedJobs"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Remove all custom labels from a self-hosted runner configured in an + * organization. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + removeAllCustomLabelsFromSelfHostedRunnerForOrg: { + (params?: RestEndpointMethodTypes["actions"]["removeAllCustomLabelsFromSelfHostedRunnerForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Remove all custom labels from a self-hosted runner configured in a + * repository. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + removeAllCustomLabelsFromSelfHostedRunnerForRepo: { + (params?: RestEndpointMethodTypes["actions"]["removeAllCustomLabelsFromSelfHostedRunnerForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Remove a custom label from a self-hosted runner configured + * in an organization. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + removeCustomLabelFromSelfHostedRunnerForOrg: { + (params?: RestEndpointMethodTypes["actions"]["removeCustomLabelFromSelfHostedRunnerForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Remove a custom label from a self-hosted runner configured + * in a repository. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + removeCustomLabelFromSelfHostedRunnerForRepo: { + (params?: RestEndpointMethodTypes["actions"]["removeCustomLabelFromSelfHostedRunnerForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + removeSelectedRepoFromOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["removeSelectedRepoFromOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a repository from an organization variable that is + * available to selected repositories. Organization variables that are available to + * selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + removeSelectedRepoFromOrgVariable: { + (params?: RestEndpointMethodTypes["actions"]["removeSelectedRepoFromOrgVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Approve or reject custom deployment protection rules provided by a GitHub App for a workflow run. For more information, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * **Note:** GitHub Apps can only review their own custom deployment protection rules. + * To approve or reject pending deployments that are waiting for review from a specific person or team, see [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + reviewCustomGatesForRun: { + (params?: RestEndpointMethodTypes["actions"]["reviewCustomGatesForRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Approve or reject pending deployments that are waiting on approval by a required reviewer. + * + * Required reviewers with read access to the repository contents and deployments can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + reviewPendingDeploymentsForRun: { + (params?: RestEndpointMethodTypes["actions"]["reviewPendingDeploymentsForRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + setAllowedActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["setAllowedActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + setAllowedActionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["setAllowedActionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + setCustomLabelsForSelfHostedRunnerForOrg: { + (params?: RestEndpointMethodTypes["actions"]["setCustomLabelsForSelfHostedRunnerForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + setCustomLabelsForSelfHostedRunnerForRepo: { + (params?: RestEndpointMethodTypes["actions"]["setCustomLabelsForSelfHostedRunnerForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the customization template and `opt-in` or `opt-out` flag for an OpenID Connect (OIDC) subject claim for a repository. + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + setCustomOidcSubClaimForRepo: { + (params?: RestEndpointMethodTypes["actions"]["setCustomOidcSubClaimForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, and sets if GitHub Actions + * can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + setGithubActionsDefaultWorkflowPermissionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["setGithubActionsDefaultWorkflowPermissionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, and sets if GitHub Actions + * can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + setGithubActionsDefaultWorkflowPermissionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["setGithubActionsDefaultWorkflowPermissionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + setGithubActionsPermissionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["setGithubActionsPermissionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + setGithubActionsPermissionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["setGithubActionsPermissionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + setSelectedReposForOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["setSelectedReposForOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Replaces all repositories for an organization variable that is available + * to selected repositories. Organization variables that are available to selected + * repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + setSelectedReposForOrgVariable: { + (params?: RestEndpointMethodTypes["actions"]["setSelectedReposForOrgVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + setSelectedRepositoriesEnabledGithubActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["setSelectedRepositoriesEnabledGithubActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + setWorkflowAccessToRepository: { + (params?: RestEndpointMethodTypes["actions"]["setWorkflowAccessToRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + updateEnvironmentVariable: { + (params?: RestEndpointMethodTypes["actions"]["updateEnvironmentVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + updateOrgVariable: { + (params?: RestEndpointMethodTypes["actions"]["updateOrgVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + updateRepoVariable: { + (params?: RestEndpointMethodTypes["actions"]["updateRepoVariable"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + activity: { + /** + * Whether the authenticated user has starred the repository. + */ + checkRepoIsStarredByAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["checkRepoIsStarredByAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/activity/watching#set-a-repository-subscription). + */ + deleteRepoSubscription: { + (params?: RestEndpointMethodTypes["activity"]["deleteRepoSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/activity/notifications#set-a-thread-subscription) endpoint and set `ignore` to `true`. + */ + deleteThreadSubscription: { + (params?: RestEndpointMethodTypes["activity"]["deleteThreadSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user: + * + * * **Timeline**: The GitHub global public timeline + * * **User**: The public timeline for any user, using `uri_template`. For more information, see "[Hypermedia](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + * * **Current user public**: The public timeline for the authenticated user + * * **Current user**: The private timeline for the authenticated user + * * **Current user actor**: The private timeline for activity created by the authenticated user + * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + * + * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + */ + getFeeds: { + (params?: RestEndpointMethodTypes["activity"]["getFeeds"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about whether the authenticated user is subscribed to the repository. + */ + getRepoSubscription: { + (params?: RestEndpointMethodTypes["activity"]["getRepoSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about a notification thread. + */ + getThread: { + (params?: RestEndpointMethodTypes["activity"]["getThread"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/activity/watching#get-a-repository-subscription). + * + * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + */ + getThreadSubscriptionForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["getThreadSubscriptionForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. + */ + listEventsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listEventsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all notifications for the current user, sorted by most recently updated. + */ + listNotificationsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listNotificationsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This is the user's organization dashboard. You must be authenticated as the user to view this. + */ + listOrgEventsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listOrgEventsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. + */ + listPublicEvents: { + (params?: RestEndpointMethodTypes["activity"]["listPublicEvents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listPublicEventsForRepoNetwork: { + (params?: RestEndpointMethodTypes["activity"]["listPublicEventsForRepoNetwork"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listPublicEventsForUser: { + (params?: RestEndpointMethodTypes["activity"]["listPublicEventsForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listPublicOrgEvents: { + (params?: RestEndpointMethodTypes["activity"]["listPublicOrgEvents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. + */ + listReceivedEventsForUser: { + (params?: RestEndpointMethodTypes["activity"]["listReceivedEventsForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listReceivedPublicEventsForUser: { + (params?: RestEndpointMethodTypes["activity"]["listReceivedPublicEventsForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + */ + listRepoEvents: { + (params?: RestEndpointMethodTypes["activity"]["listRepoEvents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all notifications for the current user in the specified repository. + */ + listRepoNotificationsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listRepoNotificationsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories the authenticated user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + listReposStarredByAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listReposStarredByAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories a user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + listReposStarredByUser: { + (params?: RestEndpointMethodTypes["activity"]["listReposStarredByUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories a user is watching. + */ + listReposWatchedByUser: { + (params?: RestEndpointMethodTypes["activity"]["listReposWatchedByUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people that have starred the repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + listStargazersForRepo: { + (params?: RestEndpointMethodTypes["activity"]["listStargazersForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories the authenticated user is watching. + */ + listWatchedReposForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listWatchedReposForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people watching the specified repository. + */ + listWatchersForRepo: { + (params?: RestEndpointMethodTypes["activity"]["listWatchersForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Marks all notifications as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + markNotificationsAsRead: { + (params?: RestEndpointMethodTypes["activity"]["markNotificationsAsRead"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Marks all notifications in a repository as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + markRepoNotificationsAsRead: { + (params?: RestEndpointMethodTypes["activity"]["markRepoNotificationsAsRead"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Marks a thread as "done." Marking a thread as "done" is equivalent to marking a notification in your notification inbox on GitHub as done: https://github.com/notifications. + */ + markThreadAsDone: { + (params?: RestEndpointMethodTypes["activity"]["markThreadAsDone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Marks a thread as "read." Marking a thread as "read" is equivalent to clicking a notification in your notification inbox on GitHub: https://github.com/notifications. + */ + markThreadAsRead: { + (params?: RestEndpointMethodTypes["activity"]["markThreadAsRead"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/activity/watching#delete-a-repository-subscription) completely. + */ + setRepoSubscription: { + (params?: RestEndpointMethodTypes["activity"]["setRepoSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**. + * + * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. + * + * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription) endpoint. + */ + setThreadSubscription: { + (params?: RestEndpointMethodTypes["activity"]["setThreadSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + starRepoForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["starRepoForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Unstar a repository that the authenticated user has previously starred. + */ + unstarRepoForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["unstarRepoForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + apps: { + /** + * Add a single repository to an installation. The authenticated user must have admin access to the repository. + * @deprecated octokit.rest.apps.addRepoToInstallation() has been renamed to octokit.rest.apps.addRepoToInstallationForAuthenticatedUser() (2021-10-05) + */ + addRepoToInstallation: { + (params?: RestEndpointMethodTypes["apps"]["addRepoToInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Add a single repository to an installation. The authenticated user must have admin access to the repository. + */ + addRepoToInstallationForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["apps"]["addRepoToInstallationForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth applications and GitHub applications with OAuth authorizations can use this API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. + */ + checkToken: { + (params?: RestEndpointMethodTypes["apps"]["checkToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. + */ + createFromManifest: { + (params?: RestEndpointMethodTypes["apps"]["createFromManifest"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. + * + * Optionally, you can use the `repositories` or `repository_ids` body parameters to specify individual repositories that the installation access token can access. If you don't use `repositories` or `repository_ids` to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner. + * + * Optionally, use the `permissions` body parameter to specify the permissions that the installation access token should have. If `permissions` is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted. + * + * When using the repository or permission parameters to reduce the access of the token, the complexity of the token is increased due to both the number of permissions in the request and the number of repositories the token will have access to. If the complexity is too large, the token will fail to be issued. If this occurs, the error message will indicate the maximum number of repositories that should be requested. For the average application requesting 8 permissions, this limit is around 5000 repositories. With fewer permissions requested, more repositories are supported. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + createInstallationAccessToken: { + (params?: RestEndpointMethodTypes["apps"]["createInstallationAccessToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth and GitHub application owners can revoke a grant for their application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * Deleting an application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + deleteAuthorization: { + (params?: RestEndpointMethodTypes["apps"]["deleteAuthorization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/rest/apps/apps#suspend-an-app-installation)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + deleteInstallation: { + (params?: RestEndpointMethodTypes["apps"]["deleteInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth or GitHub application owners can revoke a single token for an OAuth application or a GitHub application with an OAuth authorization. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. + */ + deleteToken: { + (params?: RestEndpointMethodTypes["apps"]["deleteToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/apps/apps#list-installations-for-the-authenticated-app)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getAuthenticated: { + (params?: RestEndpointMethodTypes["apps"]["getAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + */ + getBySlug: { + (params?: RestEndpointMethodTypes["apps"]["getBySlug"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables an authenticated GitHub App to find an installation's information using the installation id. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getInstallation: { + (params?: RestEndpointMethodTypes["apps"]["getInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getOrgInstallation: { + (params?: RestEndpointMethodTypes["apps"]["getOrgInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getRepoInstallation: { + (params?: RestEndpointMethodTypes["apps"]["getRepoInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + getSubscriptionPlanForAccount: { + (params?: RestEndpointMethodTypes["apps"]["getSubscriptionPlanForAccount"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + getSubscriptionPlanForAccountStubbed: { + (params?: RestEndpointMethodTypes["apps"]["getSubscriptionPlanForAccountStubbed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getUserInstallation: { + (params?: RestEndpointMethodTypes["apps"]["getUserInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getWebhookConfigForApp: { + (params?: RestEndpointMethodTypes["apps"]["getWebhookConfigForApp"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getWebhookDelivery: { + (params?: RestEndpointMethodTypes["apps"]["getWebhookDelivery"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listAccountsForPlan: { + (params?: RestEndpointMethodTypes["apps"]["listAccountsForPlan"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listAccountsForPlanStubbed: { + (params?: RestEndpointMethodTypes["apps"]["listAccountsForPlanStubbed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + listInstallationReposForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["apps"]["listInstallationReposForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all the pending installation requests for the authenticated GitHub App. + */ + listInstallationRequestsForAuthenticatedApp: { + (params?: RestEndpointMethodTypes["apps"]["listInstallationRequestsForAuthenticatedApp"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You must use a [JWT](https://docs.github.com/enterprise-server@3.9/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * The permissions the installation has are included under the `permissions` key. + */ + listInstallations: { + (params?: RestEndpointMethodTypes["apps"]["listInstallations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You can find the permissions for the installation under the `permissions` key. + */ + listInstallationsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["apps"]["listInstallationsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listPlans: { + (params?: RestEndpointMethodTypes["apps"]["listPlans"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listPlansStubbed: { + (params?: RestEndpointMethodTypes["apps"]["listPlansStubbed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List repositories that an app installation can access. + */ + listReposAccessibleToInstallation: { + (params?: RestEndpointMethodTypes["apps"]["listReposAccessibleToInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the active subscriptions for the authenticated user. + */ + listSubscriptionsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["apps"]["listSubscriptionsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the active subscriptions for the authenticated user. + */ + listSubscriptionsForAuthenticatedUserStubbed: { + (params?: RestEndpointMethodTypes["apps"]["listSubscriptionsForAuthenticatedUserStubbed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a list of webhook deliveries for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + listWebhookDeliveries: { + (params?: RestEndpointMethodTypes["apps"]["listWebhookDeliveries"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Redeliver a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + redeliverWebhookDelivery: { + (params?: RestEndpointMethodTypes["apps"]["redeliverWebhookDelivery"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Remove a single repository from an installation. The authenticated user must have admin access to the repository. The installation must have the `repository_selection` of `selected`. + * @deprecated octokit.rest.apps.removeRepoFromInstallation() has been renamed to octokit.rest.apps.removeRepoFromInstallationForAuthenticatedUser() (2021-10-05) + */ + removeRepoFromInstallation: { + (params?: RestEndpointMethodTypes["apps"]["removeRepoFromInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Remove a single repository from an installation. The authenticated user must have admin access to the repository. The installation must have the `repository_selection` of `selected`. + */ + removeRepoFromInstallationForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["apps"]["removeRepoFromInstallationForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth applications and GitHub applications with OAuth authorizations can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + resetToken: { + (params?: RestEndpointMethodTypes["apps"]["resetToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Revokes the installation token you're using to authenticate as an installation and access this endpoint. + * + * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app)" endpoint. + */ + revokeInstallationAccessToken: { + (params?: RestEndpointMethodTypes["apps"]["revokeInstallationAccessToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Use a non-scoped user access token to create a repository-scoped and/or permission-scoped user access token. You can specify + * which repositories the token can access and which permissions are granted to the + * token. + * + * Invalid tokens will return `404 NOT FOUND`. + * + * You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) + * when accessing this endpoint, using the `client_id` and `client_secret` of the GitHub App + * as the username and password. + */ + scopeToken: { + (params?: RestEndpointMethodTypes["apps"]["scopeToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + suspendInstallation: { + (params?: RestEndpointMethodTypes["apps"]["suspendInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a GitHub App installation suspension. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + unsuspendInstallation: { + (params?: RestEndpointMethodTypes["apps"]["unsuspendInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + updateWebhookConfigForApp: { + (params?: RestEndpointMethodTypes["apps"]["updateWebhookConfigForApp"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + billing: { + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + getGithubActionsBillingOrg: { + (params?: RestEndpointMethodTypes["billing"]["getGithubActionsBillingOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + getGithubActionsBillingUser: { + (params?: RestEndpointMethodTypes["billing"]["getGithubActionsBillingUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + getGithubPackagesBillingOrg: { + (params?: RestEndpointMethodTypes["billing"]["getGithubPackagesBillingOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + getGithubPackagesBillingUser: { + (params?: RestEndpointMethodTypes["billing"]["getGithubPackagesBillingUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + getSharedStorageBillingOrg: { + (params?: RestEndpointMethodTypes["billing"]["getSharedStorageBillingOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + getSharedStorageBillingUser: { + (params?: RestEndpointMethodTypes["billing"]["getSharedStorageBillingUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + checks: { + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + * + * In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. + */ + create: { + (params?: RestEndpointMethodTypes["checks"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a check suite manually. By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/checks/runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites)". + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + createSuite: { + (params?: RestEndpointMethodTypes["checks"]["createSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single check run using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: { + (params?: RestEndpointMethodTypes["checks"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single check suite using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + getSuite: { + (params?: RestEndpointMethodTypes["checks"]["getSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists annotations for a check run using the annotation `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + listAnnotations: { + (params?: RestEndpointMethodTypes["checks"]["listAnnotations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * If there are more than 1000 check suites on a single git reference, this endpoint will limit check runs to the 1000 most recent check suites. To iterate over all possible check runs, use the [List check suites for a Git reference](https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference) endpoint and provide the `check_suite_id` parameter to the [List check runs in a check suite](https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite) endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + listForRef: { + (params?: RestEndpointMethodTypes["checks"]["listForRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists check runs for a check suite using its `id`. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + listForSuite: { + (params?: RestEndpointMethodTypes["checks"]["listForSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + listSuitesForRef: { + (params?: RestEndpointMethodTypes["checks"]["listSuitesForRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Triggers GitHub to rerequest an existing check run, without pushing new code to a repository. This endpoint will trigger the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) event with the action `rerequested`. When a check run is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * For more information about how to re-run GitHub Actions jobs, see "[Re-run a job from a workflow run](https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run)". + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + rerequestRun: { + (params?: RestEndpointMethodTypes["checks"]["rerequestRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + rerequestSuite: { + (params?: RestEndpointMethodTypes["checks"]["rerequestSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/checks/suites#create-a-check-suite). + * You must have admin permissions in the repository to set preferences for check suites. + */ + setSuitesPreferences: { + (params?: RestEndpointMethodTypes["checks"]["setSuitesPreferences"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a check run for a specific commit in a repository. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + update: { + (params?: RestEndpointMethodTypes["checks"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + codeScanning: { + /** + * Deletes a specified code scanning analysis from a repository. + * + * You can delete one analysis at a time. + * To delete a series of analyses, start with the most recent analysis and work backwards. + * Conceptually, the process is similar to the undo function in a text editor. + * + * When you list the analyses for a repository, + * one or more will be identified as deletable in the response: + * + * ``` + * "deletable": true + * ``` + * + * An analysis is deletable when it's the most recent in a set of analyses. + * Typically, a repository will have multiple sets of analyses + * for each enabled code scanning tool, + * where a set is determined by a unique combination of analysis values: + * + * * `ref` + * * `tool` + * * `category` + * + * If you attempt to delete an analysis that is not the most recent in a set, + * you'll get a 400 response with the message: + * + * ``` + * Analysis specified is not deletable. + * ``` + * + * The response from a successful `DELETE` operation provides you with + * two alternative URLs for deleting the next analysis in the set: + * `next_analysis_url` and `confirm_delete_url`. + * Use the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis + * in a set. This is a useful option if you want to preserve at least one analysis + * for the specified tool in your repository. + * Use the `confirm_delete_url` URL if you are content to remove all analyses for a tool. + * When you delete the last analysis in a set, the value of `next_analysis_url` and `confirm_delete_url` + * in the 200 response is `null`. + * + * As an example of the deletion process, + * let's imagine that you added a workflow that configured a particular code scanning tool + * to analyze the code in a repository. This tool has added 15 analyses: + * 10 on the default branch, and another 5 on a topic branch. + * You therefore have two separate sets of analyses for this tool. + * You've now decided that you want to remove all of the analyses for the tool. + * To do this you must make 15 separate deletion requests. + * To start, you must find an analysis that's identified as deletable. + * Each set of analyses always has one that's identified as deletable. + * Having found the deletable analysis for one of the two sets, + * delete this analysis and then continue deleting the next analysis in the set until they're all deleted. + * Then repeat the process for the second set. + * The procedure therefore consists of a nested loop: + * + * **Outer loop**: + * * List the analyses for the repository, filtered by tool. + * * Parse this list to find a deletable analysis. If found: + * + * **Inner loop**: + * * Delete the identified analysis. + * * Parse the response for the value of `confirm_delete_url` and, if found, use this in the next iteration. + * + * The above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + deleteAnalysis: { + (params?: RestEndpointMethodTypes["codeScanning"]["deleteAnalysis"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + getAlert: { + (params?: RestEndpointMethodTypes["codeScanning"]["getAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specified code scanning analysis for a repository. + * + * The default JSON response contains fields that describe the analysis. + * This includes the Git reference and commit SHA to which the analysis relates, + * the datetime of the analysis, the name of the code scanning tool, + * and the number of alerts. + * + * The `rules_count` field in the default response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/sarif+json`**: Instead of returning a summary of the analysis, this endpoint returns a subset of the analysis data that was uploaded. The data is formatted as [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). It also returns additional data such as the `github/alertNumber` and `github/alertUrl` properties. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + getAnalysis: { + (params?: RestEndpointMethodTypes["codeScanning"]["getAnalysis"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a CodeQL database for a language in a repository. + * + * By default this endpoint returns JSON metadata about the CodeQL database. To + * download the CodeQL database binary content, set the `Accept` header of the request + * to [`application/zip`](https://docs.github.com/rest/overview/media-types), and make sure + * your HTTP client is configured to follow redirects or use the `Location` header + * to make a second request to get the redirect URL. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + getCodeqlDatabase: { + (params?: RestEndpointMethodTypes["codeScanning"]["getCodeqlDatabase"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + getDefaultSetup: { + (params?: RestEndpointMethodTypes["codeScanning"]["getDefaultSetup"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see "[Get a code scanning analysis for a repository](/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository)." + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + getSarif: { + (params?: RestEndpointMethodTypes["codeScanning"]["getSarif"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all instances of the specified code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + listAlertInstances: { + (params?: RestEndpointMethodTypes["codeScanning"]["listAlertInstances"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists code scanning alerts for the default branch for all eligible repositories in an organization. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` or `repo`s cope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + listAlertsForOrg: { + (params?: RestEndpointMethodTypes["codeScanning"]["listAlertsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all open code scanning alerts for the default branch (usually `main` + * or `master`). You must use an access token with the `security_events` scope to use + * this endpoint with private repos, the `public_repo` scope also grants permission to read + * security events on public repos only. GitHub Apps must have the `security_events` read + * permission to use this endpoint. + * + * The response includes a `most_recent_instance` object. + * This provides details of the most recent instance of this alert + * for the default branch or for the specified Git reference + * (if you used `ref` in the request). + */ + listAlertsForRepo: { + (params?: RestEndpointMethodTypes["codeScanning"]["listAlertsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all instances of the specified code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + * @deprecated octokit.rest.codeScanning.listAlertsInstances() has been renamed to octokit.rest.codeScanning.listAlertInstances() (2021-04-30) + */ + listAlertsInstances: { + (params?: RestEndpointMethodTypes["codeScanning"]["listAlertsInstances"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the CodeQL databases that are available in a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + listCodeqlDatabases: { + (params?: RestEndpointMethodTypes["codeScanning"]["listCodeqlDatabases"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the details of all code scanning analyses for a repository, + * starting with the most recent. + * The response is paginated and you can use the `page` and `per_page` parameters + * to list the analyses you're interested in. + * By default 30 analyses are listed per page. + * + * The `rules_count` field in the response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * **Deprecation notice**: + * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + listRecentAnalyses: { + (params?: RestEndpointMethodTypes["codeScanning"]["listRecentAnalyses"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the status of a single code scanning alert. + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + updateAlert: { + (params?: RestEndpointMethodTypes["codeScanning"]["updateAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + updateDefaultSetup: { + (params?: RestEndpointMethodTypes["codeScanning"]["updateDefaultSetup"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. For troubleshooting information, see "[Troubleshooting SARIF uploads](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif)." + * + * There are two places where you can upload code scanning results. + * - If you upload to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)." + * - If you upload to a branch, for example `--ref refs/heads/my-branch`, then the results appear in the **Security** tab for your repository. For more information, see "[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)." + * + * You must compress the SARIF-formatted analysis data that you want to upload, using `gzip`, and then encode it as a Base64 format string. For example: + * + * ``` + * gzip -c analysis-data.sarif | base64 -w0 + * ``` + * + * SARIF upload supports a maximum number of entries per the following data objects, and an analysis will be rejected if any of these objects is above its maximum value. For some objects, there are additional values over which the entries will be ignored while keeping the most important entries whenever applicable. + * To get the most out of your analysis when it includes data above the supported limits, try to optimize the analysis configuration. For example, for the CodeQL tool, identify and remove the most noisy queries. For more information, see "[SARIF results exceed one or more limits](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif/results-exceed-limit)." + * + * + * | **SARIF data** | **Maximum values** | **Additional limits** | + * |----------------------------------|:------------------:|----------------------------------------------------------------------------------| + * | Runs per file | 20 | | + * | Results per run | 25,000 | Only the top 5,000 results will be included, prioritized by severity. | + * | Rules per run | 25,000 | | + * | Tool extensions per run | 100 | | + * | Thread Flow Locations per result | 10,000 | Only the top 1,000 Thread Flow Locations will be included, using prioritization. | + * | Location per result | 1,000 | Only 100 locations will be included. | + * | Tags per rule | 20 | Only 10 tags will be included. | + * + * + * The `202 Accepted` response includes an `id` value. + * You can use this ID to check the status of the upload by using it in the `/sarifs/{sarif_id}` endpoint. + * For more information, see "[Get information about a SARIF upload](/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + uploadSarif: { + (params?: RestEndpointMethodTypes["codeScanning"]["uploadSarif"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + codesOfConduct: { + /** + * Returns array of all GitHub's codes of conduct. + */ + getAllCodesOfConduct: { + (params?: RestEndpointMethodTypes["codesOfConduct"]["getAllCodesOfConduct"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns information about the specified GitHub code of conduct. + */ + getConductCode: { + (params?: RestEndpointMethodTypes["codesOfConduct"]["getConductCode"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + codespaces: { + /** + * Adds a repository to the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + addRepositoryForSecretForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["addRepositoryForSecretForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a repository to an organization development environment secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + addSelectedRepoToOrgSecret: { + (params?: RestEndpointMethodTypes["codespaces"]["addSelectedRepoToOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks whether the permissions defined by a given devcontainer configuration have been accepted by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + checkPermissionsForDevcontainer: { + (params?: RestEndpointMethodTypes["codespaces"]["checkPermissionsForDevcontainer"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the machine types a codespace can transition to use. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + codespaceMachinesForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["codespaceMachinesForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new codespace, owned by the authenticated user. + * + * This endpoint requires either a `repository_id` OR a `pull_request` but not both. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + createForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["createForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates an organization development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + createOrUpdateOrgSecret: { + (params?: RestEndpointMethodTypes["codespaces"]["createOrUpdateOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates a repository development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createOrUpdateRepoSecret: { + (params?: RestEndpointMethodTypes["codespaces"]["createOrUpdateRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates a development environment secret for a user's codespace with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + createOrUpdateSecretForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["createOrUpdateSecretForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a codespace owned by the authenticated user for the specified pull request. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + createWithPrForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["createWithPrForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a codespace owned by the authenticated user in the specified repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + createWithRepoForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["createWithRepoForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + deleteForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["deleteForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + deleteFromOrganization: { + (params?: RestEndpointMethodTypes["codespaces"]["deleteFromOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes an organization development environment secret using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + deleteOrgSecret: { + (params?: RestEndpointMethodTypes["codespaces"]["deleteOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a development environment secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteRepoSecret: { + (params?: RestEndpointMethodTypes["codespaces"]["deleteRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a development environment secret from a user's codespaces using the secret name. Deleting the secret will remove access from all codespaces that were allowed to access the secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + deleteSecretForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["deleteSecretForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Triggers an export of the specified codespace and returns a URL and ID where the status of the export can be monitored. + * + * If changes cannot be pushed to the codespace's repository, they will be pushed to a new or previously-existing fork instead. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + exportForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["exportForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the codespaces that a member of an organization has for repositories in that organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + getCodespacesForUserInOrg: { + (params?: RestEndpointMethodTypes["codespaces"]["getCodespacesForUserInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about an export of a codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + getExportDetailsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["getExportDetailsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + getForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["getForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a public key for an organization, which is required in order to encrypt secrets. You need to encrypt the value of a secret before you can create or update secrets. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + getOrgPublicKey: { + (params?: RestEndpointMethodTypes["codespaces"]["getOrgPublicKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets an organization development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + getOrgSecret: { + (params?: RestEndpointMethodTypes["codespaces"]["getOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + getPublicKeyForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["getPublicKeyForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getRepoPublicKey: { + (params?: RestEndpointMethodTypes["codespaces"]["getRepoPublicKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single repository development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getRepoSecret: { + (params?: RestEndpointMethodTypes["codespaces"]["getRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a development environment secret available to a user's codespaces without revealing its encrypted value. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + getSecretForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["getSecretForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the devcontainer.json files associated with a specified repository and the authenticated user. These files + * specify launchpoint configurations for codespaces created within the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + listDevcontainersInRepositoryForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["listDevcontainersInRepositoryForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the authenticated user's codespaces. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the codespaces associated to a specified organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + listInOrganization: { + (params?: RestEndpointMethodTypes["codespaces"]["listInOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the codespaces associated to a specified repository and the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + listInRepositoryForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["listInRepositoryForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all Codespaces development environment secrets available at the organization-level without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + listOrgSecrets: { + (params?: RestEndpointMethodTypes["codespaces"]["listOrgSecrets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all development environment secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + listRepoSecrets: { + (params?: RestEndpointMethodTypes["codespaces"]["listRepoSecrets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the repositories that have been granted the ability to use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + listRepositoriesForSecretForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["listRepositoriesForSecretForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all development environment secrets available for a user's codespaces without revealing their + * encrypted values. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + listSecretsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["listSecretsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + listSelectedReposForOrgSecret: { + (params?: RestEndpointMethodTypes["codespaces"]["listSelectedReposForOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the default attributes for codespaces created by the user with the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + preFlightWithRepoForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["preFlightWithRepoForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Publishes an unpublished codespace, creating a new repository and assigning it to the codespace. + * + * The codespace's token is granted write permissions to the repository, allowing the user to push their changes. + * + * This will fail for a codespace that is already published, meaning it has an associated repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + publishForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["publishForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a repository from the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + removeRepositoryForSecretForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["removeRepositoryForSecretForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a repository from an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + removeSelectedRepoFromOrgSecret: { + (params?: RestEndpointMethodTypes["codespaces"]["removeSelectedRepoFromOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the machine types available for a given repository based on its configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + repoMachinesForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["repoMachinesForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Select the repositories that will use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + setRepositoriesForSecretForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["setRepositoriesForSecretForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Replaces all repositories for an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + setSelectedReposForOrgSecret: { + (params?: RestEndpointMethodTypes["codespaces"]["setSelectedReposForOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Starts a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + startForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["startForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + stopForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["stopForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + stopInOrganization: { + (params?: RestEndpointMethodTypes["codespaces"]["stopInOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a codespace owned by the authenticated user. Currently only the codespace's machine type and recent folders can be modified using this endpoint. + * + * If you specify a new machine type it will be applied the next time your codespace is started. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + updateForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["codespaces"]["updateForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + copilot: { + /** + * **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for all users within each specified team. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + addCopilotSeatsForTeams: { + (params?: RestEndpointMethodTypes["copilot"]["addCopilotSeatsForTeams"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for each user specified. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + addCopilotSeatsForUsers: { + (params?: RestEndpointMethodTypes["copilot"]["addCopilotSeatsForUsers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for all members of each team specified. + * This will cause the members of the specified team(s) to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + cancelCopilotSeatAssignmentForTeams: { + (params?: RestEndpointMethodTypes["copilot"]["cancelCopilotSeatAssignmentForTeams"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for each user specified. + * This will cause the specified users to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + cancelCopilotSeatAssignmentForUsers: { + (params?: RestEndpointMethodTypes["copilot"]["cancelCopilotSeatAssignmentForUsers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: This endpoint is in beta and is subject to change. + * + * Gets information about an organization's Copilot subscription, including seat breakdown + * and code matching policies. To configure these settings, go to your organization's settings on GitHub.com. + * For more information, see "[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-copilot-business-in-your-organization)". + * + * Only organization owners can configure and view details about the organization's Copilot Business subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + getCopilotOrganizationDetails: { + (params?: RestEndpointMethodTypes["copilot"]["getCopilotOrganizationDetails"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: This endpoint is in beta and is subject to change. + * + * Gets the GitHub Copilot seat assignment details for a member of an organization who currently has access to GitHub Copilot. + * + * Organization owners can view GitHub Copilot seat assignment details for members in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + getCopilotSeatDetailsForUser: { + (params?: RestEndpointMethodTypes["copilot"]["getCopilotSeatDetailsForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: This endpoint is in beta and is subject to change. + * + * Lists all Copilot seat assignments for an organization that are currently being billed (either active or pending cancellation at the start of the next billing cycle). + * + * Only organization owners can configure and view details about the organization's Copilot Business or Enterprise subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + listCopilotSeats: { + (params?: RestEndpointMethodTypes["copilot"]["listCopilotSeats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + dependabot: { + /** + * Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. The visibility is set when you [Create or + * update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + addSelectedRepoToOrgSecret: { + (params?: RestEndpointMethodTypes["dependabot"]["addSelectedRepoToOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization + * permission to use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + createOrUpdateOrgSecret: { + (params?: RestEndpointMethodTypes["dependabot"]["createOrUpdateOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createOrUpdateRepoSecret: { + (params?: RestEndpointMethodTypes["dependabot"]["createOrUpdateRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a secret in an organization using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + deleteOrgSecret: { + (params?: RestEndpointMethodTypes["dependabot"]["deleteOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteRepoSecret: { + (params?: RestEndpointMethodTypes["dependabot"]["deleteRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + getAlert: { + (params?: RestEndpointMethodTypes["dependabot"]["getAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + getOrgPublicKey: { + (params?: RestEndpointMethodTypes["dependabot"]["getOrgPublicKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single organization secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + getOrgSecret: { + (params?: RestEndpointMethodTypes["dependabot"]["getOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. Anyone with read access + * to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the repository is private. + */ + getRepoPublicKey: { + (params?: RestEndpointMethodTypes["dependabot"]["getRepoPublicKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single repository secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getRepoSecret: { + (params?: RestEndpointMethodTypes["dependabot"]["getRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists Dependabot alerts for repositories that are owned by the specified enterprise. + * + * The authenticated user must be a member of the enterprise to use this endpoint. + * + * Alerts are only returned for organizations in the enterprise for which you are an organization owner or a security manager. For more information about security managers, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. + */ + listAlertsForEnterprise: { + (params?: RestEndpointMethodTypes["dependabot"]["listAlertsForEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists Dependabot alerts for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + listAlertsForOrg: { + (params?: RestEndpointMethodTypes["dependabot"]["listAlertsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + listAlertsForRepo: { + (params?: RestEndpointMethodTypes["dependabot"]["listAlertsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all secrets available in an organization without revealing their + * encrypted values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + listOrgSecrets: { + (params?: RestEndpointMethodTypes["dependabot"]["listOrgSecrets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + listRepoSecrets: { + (params?: RestEndpointMethodTypes["dependabot"]["listRepoSecrets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + listSelectedReposForOrgSecret: { + (params?: RestEndpointMethodTypes["dependabot"]["listSelectedReposForOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + removeSelectedRepoFromOrgSecret: { + (params?: RestEndpointMethodTypes["dependabot"]["removeSelectedRepoFromOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + setSelectedReposForOrgSecret: { + (params?: RestEndpointMethodTypes["dependabot"]["setSelectedReposForOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The authenticated user must have access to security alerts for the repository to use this endpoint. For more information, see "[Granting access to security alerts](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + updateAlert: { + (params?: RestEndpointMethodTypes["dependabot"]["updateAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + dependencyGraph: { + /** + * Create a new snapshot of a repository's dependencies. + * + * The authenticated user must have access to the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createRepositorySnapshot: { + (params?: RestEndpointMethodTypes["dependencyGraph"]["createRepositorySnapshot"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the diff of the dependency changes between two commits of a repository, based on the changes to the dependency manifests made in those commits. + */ + diffRange: { + (params?: RestEndpointMethodTypes["dependencyGraph"]["diffRange"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Exports the software bill of materials (SBOM) for a repository in SPDX JSON format. + */ + exportSbom: { + (params?: RestEndpointMethodTypes["dependencyGraph"]["exportSbom"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + emojis: { + /** + * Lists all the emojis available to use on GitHub. + */ + get: { + (params?: RestEndpointMethodTypes["emojis"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + gists: { + checkIsStarred: { + (params?: RestEndpointMethodTypes["gists"]["checkIsStarred"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Allows you to add a new gist with one or more files. + * + * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + */ + create: { + (params?: RestEndpointMethodTypes["gists"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + createComment: { + (params?: RestEndpointMethodTypes["gists"]["createComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + delete: { + (params?: RestEndpointMethodTypes["gists"]["delete"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteComment: { + (params?: RestEndpointMethodTypes["gists"]["deleteComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + fork: { + (params?: RestEndpointMethodTypes["gists"]["fork"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specified gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + get: { + (params?: RestEndpointMethodTypes["gists"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + getComment: { + (params?: RestEndpointMethodTypes["gists"]["getComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specified gist revision. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + getRevision: { + (params?: RestEndpointMethodTypes["gists"]["getRevision"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: + */ + list: { + (params?: RestEndpointMethodTypes["gists"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the comments on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + listComments: { + (params?: RestEndpointMethodTypes["gists"]["listComments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listCommits: { + (params?: RestEndpointMethodTypes["gists"]["listCommits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists public gists for the specified user: + */ + listForUser: { + (params?: RestEndpointMethodTypes["gists"]["listForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listForks: { + (params?: RestEndpointMethodTypes["gists"]["listForks"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List public gists sorted by most recently updated to least recently updated. + * + * Note: With [pagination](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + */ + listPublic: { + (params?: RestEndpointMethodTypes["gists"]["listPublic"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the authenticated user's starred gists: + */ + listStarred: { + (params?: RestEndpointMethodTypes["gists"]["listStarred"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + star: { + (params?: RestEndpointMethodTypes["gists"]["star"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + unstar: { + (params?: RestEndpointMethodTypes["gists"]["unstar"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Allows you to update a gist's description and to update, delete, or rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. + */ + update: { + (params?: RestEndpointMethodTypes["gists"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + updateComment: { + (params?: RestEndpointMethodTypes["gists"]["updateComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + git: { + createBlob: { + (params?: RestEndpointMethodTypes["git"]["createBlob"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + createCommit: { + (params?: RestEndpointMethodTypes["git"]["createCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. + */ + createRef: { + (params?: RestEndpointMethodTypes["git"]["createRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/git/refs#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/git/refs#create-a-reference) the tag reference - this call would be unnecessary. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + createTag: { + (params?: RestEndpointMethodTypes["git"]["createTag"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + * + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/git/commits#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/git/refs#update-a-reference)." + * + * Returns an error if you try to delete a file that does not exist. + */ + createTree: { + (params?: RestEndpointMethodTypes["git"]["createTree"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteRef: { + (params?: RestEndpointMethodTypes["git"]["deleteRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The `content` in the response will always be Base64 encoded. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw blob data. + * - **`application/vnd.github+json`**: Returns a JSON representation of the blob with `content` as a base64 encoded string. This is the default if no media type is specified. + * + * **Note** This endpoint supports blobs up to 100 megabytes in size. + */ + getBlob: { + (params?: RestEndpointMethodTypes["git"]["getBlob"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * To get the contents of a commit, see "[Get a commit](/rest/commits/commits#get-a-commit)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + getCommit: { + (params?: RestEndpointMethodTypes["git"]["getCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + */ + getRef: { + (params?: RestEndpointMethodTypes["git"]["getRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + getTag: { + (params?: RestEndpointMethodTypes["git"]["getTag"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a single tree using the SHA1 value or ref name for that tree. + * + * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. + * + * + * **Note**: The limit for the `tree` array is 100,000 entries with a maximum size of 7 MB when using the `recursive` parameter. + */ + getTree: { + (params?: RestEndpointMethodTypes["git"]["getTree"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + * + * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + */ + listMatchingRefs: { + (params?: RestEndpointMethodTypes["git"]["listMatchingRefs"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateRef: { + (params?: RestEndpointMethodTypes["git"]["updateRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + gitignore: { + /** + * List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user). + */ + getAllTemplates: { + (params?: RestEndpointMethodTypes["gitignore"]["getAllTemplates"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the content of a gitignore template. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw .gitignore contents. + */ + getTemplate: { + (params?: RestEndpointMethodTypes["gitignore"]["getTemplate"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + interactions: { + /** + * Shows which type of GitHub user can interact with your public repositories and when the restriction expires. + */ + getRestrictionsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["interactions"]["getRestrictionsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response. + */ + getRestrictionsForOrg: { + (params?: RestEndpointMethodTypes["interactions"]["getRestrictionsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + getRestrictionsForRepo: { + (params?: RestEndpointMethodTypes["interactions"]["getRestrictionsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows which type of GitHub user can interact with your public repositories and when the restriction expires. + * @deprecated octokit.rest.interactions.getRestrictionsForYourPublicRepos() has been renamed to octokit.rest.interactions.getRestrictionsForAuthenticatedUser() (2021-02-02) + */ + getRestrictionsForYourPublicRepos: { + (params?: RestEndpointMethodTypes["interactions"]["getRestrictionsForYourPublicRepos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes any interaction restrictions from your public repositories. + */ + removeRestrictionsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["interactions"]["removeRestrictionsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. + */ + removeRestrictionsForOrg: { + (params?: RestEndpointMethodTypes["interactions"]["removeRestrictionsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + removeRestrictionsForRepo: { + (params?: RestEndpointMethodTypes["interactions"]["removeRestrictionsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes any interaction restrictions from your public repositories. + * @deprecated octokit.rest.interactions.removeRestrictionsForYourPublicRepos() has been renamed to octokit.rest.interactions.removeRestrictionsForAuthenticatedUser() (2021-02-02) + */ + removeRestrictionsForYourPublicRepos: { + (params?: RestEndpointMethodTypes["interactions"]["removeRestrictionsForYourPublicRepos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. + */ + setRestrictionsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["interactions"]["setRestrictionsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. + */ + setRestrictionsForOrg: { + (params?: RestEndpointMethodTypes["interactions"]["setRestrictionsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + setRestrictionsForRepo: { + (params?: RestEndpointMethodTypes["interactions"]["setRestrictionsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. + * @deprecated octokit.rest.interactions.setRestrictionsForYourPublicRepos() has been renamed to octokit.rest.interactions.setRestrictionsForAuthenticatedUser() (2021-02-02) + */ + setRestrictionsForYourPublicRepos: { + (params?: RestEndpointMethodTypes["interactions"]["setRestrictionsForYourPublicRepos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + issues: { + /** + * Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. + */ + addAssignees: { + (params?: RestEndpointMethodTypes["issues"]["addAssignees"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds labels to an issue. If you provide an empty array of labels, all labels are removed from the issue. + */ + addLabels: { + (params?: RestEndpointMethodTypes["issues"]["addLabels"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks if a user has permission to be assigned to an issue in this repository. + * + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + checkUserCanBeAssigned: { + (params?: RestEndpointMethodTypes["issues"]["checkUserCanBeAssigned"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks if a user has permission to be assigned to a specific issue. + * + * If the `assignee` can be assigned to this issue, a `204` status code with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + checkUserCanBeAssignedToIssue: { + (params?: RestEndpointMethodTypes["issues"]["checkUserCanBeAssignedToIssue"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://docs.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + create: { + (params?: RestEndpointMethodTypes["issues"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can use the REST API to create comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + * Creating content too quickly using this endpoint may result in secondary rate limiting. + * For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + createComment: { + (params?: RestEndpointMethodTypes["issues"]["createComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a label for the specified repository with the given name and color. The name and color parameters are required. The color must be a valid [hexadecimal color code](http://www.color-hex.com/). + */ + createLabel: { + (params?: RestEndpointMethodTypes["issues"]["createLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a milestone. + */ + createMilestone: { + (params?: RestEndpointMethodTypes["issues"]["createMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can use the REST API to delete comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + */ + deleteComment: { + (params?: RestEndpointMethodTypes["issues"]["deleteComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a label using the given label name. + */ + deleteLabel: { + (params?: RestEndpointMethodTypes["issues"]["deleteLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a milestone using the given milestone number. + */ + deleteMilestone: { + (params?: RestEndpointMethodTypes["issues"]["deleteMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api#follow-redirects) if the issue was + * [transferred](https://docs.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API + * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read + * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe + * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: { + (params?: RestEndpointMethodTypes["issues"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can use the REST API to get comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + getComment: { + (params?: RestEndpointMethodTypes["issues"]["getComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single event by the event id. + */ + getEvent: { + (params?: RestEndpointMethodTypes["issues"]["getEvent"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a label using the given name. + */ + getLabel: { + (params?: RestEndpointMethodTypes["issues"]["getLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a milestone using the given milestone number. + */ + getMilestone: { + (params?: RestEndpointMethodTypes["issues"]["getMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List issues assigned to the authenticated user across all visible repositories including owned repositories, member + * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not + * necessarily assigned to you. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + list: { + (params?: RestEndpointMethodTypes["issues"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the [available assignees](https://docs.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. + */ + listAssignees: { + (params?: RestEndpointMethodTypes["issues"]["listAssignees"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can use the REST API to list comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * Issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + listComments: { + (params?: RestEndpointMethodTypes["issues"]["listComments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can use the REST API to list comments on issues and pull requests for a repository. Every pull request is an issue, but not every issue is a pull request. + * + * By default, issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + listCommentsForRepo: { + (params?: RestEndpointMethodTypes["issues"]["listCommentsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all events for an issue. + */ + listEvents: { + (params?: RestEndpointMethodTypes["issues"]["listEvents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists events for a repository. + */ + listEventsForRepo: { + (params?: RestEndpointMethodTypes["issues"]["listEventsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all timeline events for an issue. + */ + listEventsForTimeline: { + (params?: RestEndpointMethodTypes["issues"]["listEventsForTimeline"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List issues across owned and member repositories assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["issues"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List issues in an organization assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + listForOrg: { + (params?: RestEndpointMethodTypes["issues"]["listForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List issues in a repository. Only open issues will be listed. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + listForRepo: { + (params?: RestEndpointMethodTypes["issues"]["listForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists labels for issues in a milestone. + */ + listLabelsForMilestone: { + (params?: RestEndpointMethodTypes["issues"]["listLabelsForMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all labels for a repository. + */ + listLabelsForRepo: { + (params?: RestEndpointMethodTypes["issues"]["listLabelsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all labels for an issue. + */ + listLabelsOnIssue: { + (params?: RestEndpointMethodTypes["issues"]["listLabelsOnIssue"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists milestones for a repository. + */ + listMilestones: { + (params?: RestEndpointMethodTypes["issues"]["listMilestones"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access can lock an issue or pull request's conversation. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + lock: { + (params?: RestEndpointMethodTypes["issues"]["lock"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes all labels from an issue. + */ + removeAllLabels: { + (params?: RestEndpointMethodTypes["issues"]["removeAllLabels"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes one or more assignees from an issue. + */ + removeAssignees: { + (params?: RestEndpointMethodTypes["issues"]["removeAssignees"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. + */ + removeLabel: { + (params?: RestEndpointMethodTypes["issues"]["removeLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes any previous labels and sets the new labels for an issue. + */ + setLabels: { + (params?: RestEndpointMethodTypes["issues"]["setLabels"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access can unlock an issue's conversation. + */ + unlock: { + (params?: RestEndpointMethodTypes["issues"]["unlock"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Issue owners and users with push access can edit an issue. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + update: { + (params?: RestEndpointMethodTypes["issues"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can use the REST API to update comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + updateComment: { + (params?: RestEndpointMethodTypes["issues"]["updateComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a label using the given label name. + */ + updateLabel: { + (params?: RestEndpointMethodTypes["issues"]["updateLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateMilestone: { + (params?: RestEndpointMethodTypes["issues"]["updateMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + licenses: { + /** + * Gets information about a specific license. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + get: { + (params?: RestEndpointMethodTypes["licenses"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the most commonly used licenses on GitHub. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + getAllCommonlyUsed: { + (params?: RestEndpointMethodTypes["licenses"]["getAllCommonlyUsed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This method returns the contents of the repository's license file, if one is detected. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw contents of the license. + * - **`application/vnd.github.html+json`**: Returns the license contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + getForRepo: { + (params?: RestEndpointMethodTypes["licenses"]["getForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + markdown: { + render: { + (params?: RestEndpointMethodTypes["markdown"]["render"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. + */ + renderRaw: { + (params?: RestEndpointMethodTypes["markdown"]["renderRaw"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + meta: { + /** + * Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://docs.github.com/articles/about-github-s-ip-addresses/)." + * + * The API's response also includes a list of GitHub's domain names. + * + * The values shown in the documentation's response are example values. You must always query the API directly to get the latest values. + * + * **Note:** This endpoint returns both IPv4 and IPv6 addresses. However, not all features support IPv6. You should refer to the specific documentation for each feature to determine if IPv6 is supported. + */ + get: { + (params?: RestEndpointMethodTypes["meta"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get all supported GitHub API versions. + */ + getAllVersions: { + (params?: RestEndpointMethodTypes["meta"]["getAllVersions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the octocat as ASCII art + */ + getOctocat: { + (params?: RestEndpointMethodTypes["meta"]["getOctocat"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a random sentence from the Zen of GitHub + */ + getZen: { + (params?: RestEndpointMethodTypes["meta"]["getZen"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get Hypermedia links to resources accessible in GitHub's REST API + */ + root: { + (params?: RestEndpointMethodTypes["meta"]["root"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + migrations: { + /** + * Stop an import for a repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * @deprecated octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import + */ + cancelImport: { + (params?: RestEndpointMethodTypes["migrations"]["cancelImport"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/migrations/users#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/migrations/users#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. + */ + deleteArchiveForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["deleteArchiveForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a previous migration archive. Migration archives are automatically deleted after seven days. + */ + deleteArchiveForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["deleteArchiveForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Fetches the URL to a migration archive. + */ + downloadArchiveForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["downloadArchiveForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + * + * * attachments + * * bases + * * commit\_comments + * * issue\_comments + * * issue\_events + * * issues + * * milestones + * * organizations + * * projects + * * protected\_branches + * * pull\_request\_reviews + * * pull\_requests + * * releases + * * repositories + * * review\_comments + * * schema + * * users + * + * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + */ + getArchiveForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["getArchiveForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + * + * This endpoint and the [Map a commit author](https://docs.github.com/rest/migrations/source-imports#map-a-commit-author) endpoint allow you to provide correct Git author information. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * @deprecated octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors + */ + getCommitAuthors: { + (params?: RestEndpointMethodTypes["migrations"]["getCommitAuthors"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View the progress of an import. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * **Import status** + * + * This section includes details about the possible values of the `status` field of the Import Progress response. + * + * An import that does not have errors will progress through these steps: + * + * * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * * `complete` - the import is complete, and the repository is ready on GitHub. + * + * If there are problems, you will see one of these in the `status` field: + * + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/migrations/source-imports#cancel-an-import) and [retry](https://docs.github.com/rest/migrations/source-imports#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * + * **The project_choices field** + * + * When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + * + * **Git LFS related fields** + * + * This section includes details about Git LFS related fields that may be present in the Import Progress response. + * + * * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + * @deprecated octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status + */ + getImportStatus: { + (params?: RestEndpointMethodTypes["migrations"]["getImportStatus"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List files larger than 100MB found during the import + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * @deprecated octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files + */ + getLargeFiles: { + (params?: RestEndpointMethodTypes["migrations"]["getLargeFiles"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + * + * * `pending` - the migration hasn't started yet. + * * `exporting` - the migration is in progress. + * * `exported` - the migration finished successfully. + * * `failed` - the migration failed. + * + * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/migrations/users#download-a-user-migration-archive). + */ + getStatusForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["getStatusForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Fetches the status of a migration. + * + * The `state` of a migration can be one of the following values: + * + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + getStatusForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["getStatusForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all migrations a user has started. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the most recent migrations, including both exports (which can be started through the REST API) and imports (which cannot be started using the REST API). + * + * A list of `repositories` is only returned for export migrations. + */ + listForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["listForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all the repositories for this user migration. + */ + listReposForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["listReposForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all the repositories for this organization migration. + */ + listReposForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["listReposForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all the repositories for this user migration. + * @deprecated octokit.rest.migrations.listReposForUser() has been renamed to octokit.rest.migrations.listReposForAuthenticatedUser() (2021-10-05) + */ + listReposForUser: { + (params?: RestEndpointMethodTypes["migrations"]["listReposForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Update an author's identity for the import. Your application can continue updating authors any time before you push + * new commits to the repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * @deprecated octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author + */ + mapCommitAuthor: { + (params?: RestEndpointMethodTypes["migrations"]["mapCommitAuthor"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability + * is powered by [Git LFS](https://git-lfs.com). + * + * You can learn more about our LFS feature and working with large files [on our help + * site](https://docs.github.com/repositories/working-with-files/managing-large-files). + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * @deprecated octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference + */ + setLfsPreference: { + (params?: RestEndpointMethodTypes["migrations"]["setLfsPreference"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Initiates the generation of a user migration archive. + */ + startForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["startForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Initiates the generation of a migration archive. + */ + startForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["startForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Start a source import to a GitHub repository using GitHub Importer. + * Importing into a GitHub repository with GitHub Actions enabled is not supported and will + * return a status `422 Unprocessable Entity` response. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * @deprecated octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import + */ + startImport: { + (params?: RestEndpointMethodTypes["migrations"]["startImport"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/migrations/users#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/repos/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. + */ + unlockRepoForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["unlockRepoForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/repos/repos#delete-a-repository) when the migration is complete and you no longer need the source data. + */ + unlockRepoForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["unlockRepoForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API + * request. If no parameters are provided, the import will be restarted. + * + * Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will + * have the status `detection_found_multiple` and the Import Progress response will include a `project_choices` array. + * You can select the project to import by providing one of the objects in the `project_choices` array in the update request. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * @deprecated octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import + */ + updateImport: { + (params?: RestEndpointMethodTypes["migrations"]["updateImport"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + oidc: { + /** + * Gets the customization template for an OpenID Connect (OIDC) subject claim. + * You must authenticate using an access token with the `read:org` scope to use this endpoint. + * GitHub Apps must have the `organization_administration:write` permission to use this endpoint. + */ + getOidcCustomSubTemplateForOrg: { + (params?: RestEndpointMethodTypes["oidc"]["getOidcCustomSubTemplateForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates the customization template for an OpenID Connect (OIDC) subject claim. + * You must authenticate using an access token with the `write:org` scope to use this endpoint. + * GitHub Apps must have the `admin:org` permission to use this endpoint. + */ + updateOidcCustomSubTemplateForOrg: { + (params?: RestEndpointMethodTypes["oidc"]["updateOidcCustomSubTemplateForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + orgs: { + /** + * Adds a team as a security manager for an organization. For more information, see "[Managing security for an organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) for an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + addSecurityManagerTeam: { + (params?: RestEndpointMethodTypes["orgs"]["addSecurityManagerTeam"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Assigns an organization role to a team in an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + assignTeamToOrgRole: { + (params?: RestEndpointMethodTypes["orgs"]["assignTeamToOrgRole"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Assigns an organization role to a member of an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + assignUserToOrgRole: { + (params?: RestEndpointMethodTypes["orgs"]["assignUserToOrgRole"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Blocks the given user on behalf of the specified organization and returns a 204. If the organization cannot block the given user a 422 is returned. + */ + blockUser: { + (params?: RestEndpointMethodTypes["orgs"]["blockUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + */ + cancelInvitation: { + (params?: RestEndpointMethodTypes["orgs"]["cancelInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a 204 if the given user is blocked by the given organization. Returns a 404 if the organization is not blocking the user, or if the user account has been identified as spam by GitHub. + */ + checkBlockedUser: { + (params?: RestEndpointMethodTypes["orgs"]["checkBlockedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Check if a user is, publicly or privately, a member of the organization. + */ + checkMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["checkMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Check if the provided user is a public member of the organization. + */ + checkPublicMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["checkPublicMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://docs.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". Converting an organization member to an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + */ + convertMemberToOutsideCollaborator: { + (params?: RestEndpointMethodTypes["orgs"]["convertMemberToOutsideCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a custom organization role that can be assigned to users and teams, granting them specific permissions over the organization. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + createCustomOrganizationRole: { + (params?: RestEndpointMethodTypes["orgs"]["createCustomOrganizationRole"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + createInvitation: { + (params?: RestEndpointMethodTypes["orgs"]["createInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates new or updates existing custom properties defined for an organization in a batch. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + createOrUpdateCustomProperties: { + (params?: RestEndpointMethodTypes["orgs"]["createOrUpdateCustomProperties"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create new or update existing custom property values for repositories in a batch that belong to an organization. + * Each target repository will have its custom property values updated to match the values provided in the request. + * + * A maximum of 30 repositories can be updated in a single request. + * + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_values_editor` in the organization. + */ + createOrUpdateCustomPropertiesValuesForRepos: { + (params?: RestEndpointMethodTypes["orgs"]["createOrUpdateCustomPropertiesValuesForRepos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new or updates an existing custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + createOrUpdateCustomProperty: { + (params?: RestEndpointMethodTypes["orgs"]["createOrUpdateCustomProperty"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Here's how you can create a hook that posts payloads in JSON format: + */ + createWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["createWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes an organization and all its repositories. + * + * The organization login will be unavailable for 90 days after deletion. + * + * Please review the Terms of Service regarding account deletion before using this endpoint: + * + * https://docs.github.com/site-policy/github-terms/github-terms-of-service + */ + delete: { + (params?: RestEndpointMethodTypes["orgs"]["delete"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a custom organization role. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + deleteCustomOrganizationRole: { + (params?: RestEndpointMethodTypes["orgs"]["deleteCustomOrganizationRole"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["deleteWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables or disables the specified security feature for all eligible repositories in an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an organization owner or be member of a team with the security manager role to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + enableOrDisableSecurityProductOnAllOrgRepos: { + (params?: RestEndpointMethodTypes["orgs"]["enableOrDisableSecurityProductOnAllOrgRepos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about an organization. + * + * When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://docs.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * + * To see the full details about an organization, the authenticated user must be an organization owner. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to see the full details about an organization. + * + * To see information about an organization's GitHub plan, GitHub Apps need the `Organization plan` permission. + */ + get: { + (params?: RestEndpointMethodTypes["orgs"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets all custom properties defined for an organization. + * Organization members can read these properties. + */ + getAllCustomProperties: { + (params?: RestEndpointMethodTypes["orgs"]["getAllCustomProperties"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a custom property that is defined for an organization. + * Organization members can read these properties. + */ + getCustomProperty: { + (params?: RestEndpointMethodTypes["orgs"]["getCustomProperty"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If the authenticated user is an active or pending member of the organization, this endpoint will return the user's membership. If the authenticated user is not affiliated with the organization, a `404` is returned. This endpoint will return a `403` if the request is made by a GitHub App that is blocked by the organization. + */ + getMembershipForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["getMembershipForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status. + */ + getMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["getMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets an organization role that is available to this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + getOrgRole: { + (params?: RestEndpointMethodTypes["orgs"]["getOrgRole"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a webhook configured in an organization. To get only the webhook `config` properties, see "[Get a webhook configuration for an organization](/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization)." + */ + getWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["getWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/orgs/webhooks#get-an-organization-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org_hook` scope to use this endpoint. + */ + getWebhookConfigForOrg: { + (params?: RestEndpointMethodTypes["orgs"]["getWebhookConfigForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a delivery for a webhook configured in an organization. + */ + getWebhookDelivery: { + (params?: RestEndpointMethodTypes["orgs"]["getWebhookDelivery"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all organizations, in the order that they were created on GitHub. + * + * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of organizations. + */ + list: { + (params?: RestEndpointMethodTypes["orgs"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all GitHub Apps in an organization. The installation count includes + * all GitHub Apps installed on repositories in the organization. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:read` scope to use this endpoint. + */ + listAppInstallations: { + (params?: RestEndpointMethodTypes["orgs"]["listAppInstallations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the users blocked by an organization. + */ + listBlockedUsers: { + (params?: RestEndpointMethodTypes["orgs"]["listBlockedUsers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists organization repositories with all of their custom property values. + * Organization members can read these properties. + */ + listCustomPropertiesValuesForRepos: { + (params?: RestEndpointMethodTypes["orgs"]["listCustomPropertiesValuesForRepos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. + */ + listFailedInvitations: { + (params?: RestEndpointMethodTypes["orgs"]["listFailedInvitations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List organizations for the authenticated user. + * + * For OAuth app tokens and personal access tokens (classic), this endpoint only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope for OAuth app tokens and personal access tokens (classic). Requests with insufficient scope will receive a `403 Forbidden` response. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List [public organization memberships](https://docs.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user) API instead. + */ + listForUser: { + (params?: RestEndpointMethodTypes["orgs"]["listForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + */ + listInvitationTeams: { + (params?: RestEndpointMethodTypes["orgs"]["listInvitationTeams"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + */ + listMembers: { + (params?: RestEndpointMethodTypes["orgs"]["listMembers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all of the authenticated user's organization memberships. + */ + listMembershipsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["listMembershipsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the teams that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + listOrgRoleTeams: { + (params?: RestEndpointMethodTypes["orgs"]["listOrgRoleTeams"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists organization members that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + listOrgRoleUsers: { + (params?: RestEndpointMethodTypes["orgs"]["listOrgRoleUsers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the organization roles available in this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + listOrgRoles: { + (params?: RestEndpointMethodTypes["orgs"]["listOrgRoles"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the fine-grained permissions that can be used in custom organization roles for an organization. For more information, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To list the fine-grained permissions that can be used in custom repository roles for an organization, see "[List repository fine-grained permissions for an organization](https://docs.github.com/rest/orgs/organization-roles#list-repository-fine-grained-permissions-for-an-organization)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + listOrganizationFineGrainedPermissions: { + (params?: RestEndpointMethodTypes["orgs"]["listOrganizationFineGrainedPermissions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all users who are outside collaborators of an organization. + */ + listOutsideCollaborators: { + (params?: RestEndpointMethodTypes["orgs"]["listOutsideCollaborators"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the repositories a fine-grained personal access token has access to. + * + * Only GitHub Apps can use this endpoint. + */ + listPatGrantRepositories: { + (params?: RestEndpointMethodTypes["orgs"]["listPatGrantRepositories"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the repositories a fine-grained personal access token request is requesting access to. + * + * Only GitHub Apps can use this endpoint. + */ + listPatGrantRequestRepositories: { + (params?: RestEndpointMethodTypes["orgs"]["listPatGrantRequestRepositories"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists requests from organization members to access organization resources with a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + listPatGrantRequests: { + (params?: RestEndpointMethodTypes["orgs"]["listPatGrantRequests"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists approved fine-grained personal access tokens owned by organization members that can access organization resources. + * + * Only GitHub Apps can use this endpoint. + */ + listPatGrants: { + (params?: RestEndpointMethodTypes["orgs"]["listPatGrants"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, or `hiring_manager`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + listPendingInvitations: { + (params?: RestEndpointMethodTypes["orgs"]["listPendingInvitations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Members of an organization can choose to have their membership publicized or not. + */ + listPublicMembers: { + (params?: RestEndpointMethodTypes["orgs"]["listPublicMembers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists teams that are security managers for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + listSecurityManagerTeams: { + (params?: RestEndpointMethodTypes["orgs"]["listSecurityManagerTeams"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a list of webhook deliveries for a webhook configured in an organization. + */ + listWebhookDeliveries: { + (params?: RestEndpointMethodTypes["orgs"]["listWebhookDeliveries"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listWebhooks: { + (params?: RestEndpointMethodTypes["orgs"]["listWebhooks"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates an existing custom organization role. Permission changes will apply to all assignees. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + patchCustomOrganizationRole: { + (params?: RestEndpointMethodTypes["orgs"]["patchCustomOrganizationRole"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + pingWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["pingWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Redeliver a delivery for a webhook configured in an organization. + */ + redeliverWebhookDelivery: { + (params?: RestEndpointMethodTypes["orgs"]["redeliverWebhookDelivery"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + removeCustomProperty: { + (params?: RestEndpointMethodTypes["orgs"]["removeCustomProperty"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + */ + removeMember: { + (params?: RestEndpointMethodTypes["orgs"]["removeMember"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + */ + removeMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["removeMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removing a user from this list will remove them from all the organization's repositories. + */ + removeOutsideCollaborator: { + (params?: RestEndpointMethodTypes["orgs"]["removeOutsideCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes the public membership for the authenticated user from the specified organization, unless public visibility is enforced by default. + */ + removePublicMembershipForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["removePublicMembershipForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes the security manager role from a team for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) team from an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + removeSecurityManagerTeam: { + (params?: RestEndpointMethodTypes["orgs"]["removeSecurityManagerTeam"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Approves or denies a pending request to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + reviewPatGrantRequest: { + (params?: RestEndpointMethodTypes["orgs"]["reviewPatGrantRequest"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Approves or denies multiple pending requests to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + reviewPatGrantRequestsInBulk: { + (params?: RestEndpointMethodTypes["orgs"]["reviewPatGrantRequestsInBulk"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes all assigned organization roles from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + revokeAllOrgRolesTeam: { + (params?: RestEndpointMethodTypes["orgs"]["revokeAllOrgRolesTeam"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Revokes all assigned organization roles from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + revokeAllOrgRolesUser: { + (params?: RestEndpointMethodTypes["orgs"]["revokeAllOrgRolesUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes an organization role from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + revokeOrgRoleTeam: { + (params?: RestEndpointMethodTypes["orgs"]["revokeOrgRoleTeam"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Remove an organization role from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + revokeOrgRoleUser: { + (params?: RestEndpointMethodTypes["orgs"]["revokeOrgRoleUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + */ + setMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["setMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + setPublicMembershipForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["setPublicMembershipForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Unblocks the given user on behalf of the specified organization. + */ + unblockUser: { + (params?: RestEndpointMethodTypes["orgs"]["unblockUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * + * Updates the organization's profile and member privileges. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` or `repo` scope to use this endpoint. + */ + update: { + (params?: RestEndpointMethodTypes["orgs"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Converts the authenticated user to an active member of the organization, if that user has a pending invitation from the organization. + */ + updateMembershipForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["updateMembershipForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the access an organization member has to organization resources via a fine-grained personal access token. Limited to revoking the token's existing access. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + updatePatAccess: { + (params?: RestEndpointMethodTypes["orgs"]["updatePatAccess"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the access organization members have to organization resources via fine-grained personal access tokens. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + updatePatAccesses: { + (params?: RestEndpointMethodTypes["orgs"]["updatePatAccesses"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a webhook configured in an organization. When you update a webhook, the `secret` will be overwritten. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for an organization](/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization)." + */ + updateWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["updateWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/orgs/webhooks#update-an-organization-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org_hook` scope to use this endpoint. + */ + updateWebhookConfigForOrg: { + (params?: RestEndpointMethodTypes["orgs"]["updateWebhookConfigForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + packages: { + /** + * Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, `repo` scope is also required. For the list these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + deletePackageForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["deletePackageForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + deletePackageForOrg: { + (params?: RestEndpointMethodTypes["packages"]["deletePackageForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + deletePackageForUser: { + (params?: RestEndpointMethodTypes["packages"]["deletePackageForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + deletePackageVersionForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["deletePackageVersionForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + deletePackageVersionForOrg: { + (params?: RestEndpointMethodTypes["packages"]["deletePackageVersionForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + deletePackageVersionForUser: { + (params?: RestEndpointMethodTypes["packages"]["deletePackageVersionForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists package versions for a package owned by an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + * @deprecated octokit.rest.packages.getAllPackageVersionsForAPackageOwnedByAnOrg() has been renamed to octokit.rest.packages.getAllPackageVersionsForPackageOwnedByOrg() (2021-03-24) + */ + getAllPackageVersionsForAPackageOwnedByAnOrg: { + (params?: RestEndpointMethodTypes["packages"]["getAllPackageVersionsForAPackageOwnedByAnOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists package versions for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + * @deprecated octokit.rest.packages.getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser() has been renamed to octokit.rest.packages.getAllPackageVersionsForPackageOwnedByAuthenticatedUser() (2021-03-24) + */ + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists package versions for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists package versions for a package owned by an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + getAllPackageVersionsForPackageOwnedByOrg: { + (params?: RestEndpointMethodTypes["packages"]["getAllPackageVersionsForPackageOwnedByOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists package versions for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + getAllPackageVersionsForPackageOwnedByUser: { + (params?: RestEndpointMethodTypes["packages"]["getAllPackageVersionsForPackageOwnedByUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific package for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + getPackageForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["getPackageForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific package in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + getPackageForOrganization: { + (params?: RestEndpointMethodTypes["packages"]["getPackageForOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific package metadata for a public package owned by a user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + getPackageForUser: { + (params?: RestEndpointMethodTypes["packages"]["getPackageForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific package version for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + getPackageVersionForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["getPackageVersionForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific package version in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + getPackageVersionForOrganization: { + (params?: RestEndpointMethodTypes["packages"]["getPackageVersionForOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific package version for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + getPackageVersionForUser: { + (params?: RestEndpointMethodTypes["packages"]["getPackageVersionForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all packages that are owned by the authenticated user within the user's namespace, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + listDockerMigrationConflictingPackagesForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["listDockerMigrationConflictingPackagesForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all packages that are in a specific organization, are readable by the requesting user, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + listDockerMigrationConflictingPackagesForOrganization: { + (params?: RestEndpointMethodTypes["packages"]["listDockerMigrationConflictingPackagesForOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all packages that are in a specific user's namespace, that the requesting user has access to, and that encountered a conflict during Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + listDockerMigrationConflictingPackagesForUser: { + (params?: RestEndpointMethodTypes["packages"]["listDockerMigrationConflictingPackagesForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists packages owned by the authenticated user within the user's namespace. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + listPackagesForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["listPackagesForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists packages in an organization readable by the user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + listPackagesForOrganization: { + (params?: RestEndpointMethodTypes["packages"]["listPackagesForOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all packages in a user's namespace for which the requesting user has access. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + listPackagesForUser: { + (params?: RestEndpointMethodTypes["packages"]["listPackagesForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Restores a package owned by the authenticated user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + restorePackageForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["restorePackageForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Restores an entire package in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + restorePackageForOrg: { + (params?: RestEndpointMethodTypes["packages"]["restorePackageForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Restores an entire package for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + restorePackageForUser: { + (params?: RestEndpointMethodTypes["packages"]["restorePackageForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Restores a package version owned by the authenticated user. + * + * You can restore a deleted package version under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + restorePackageVersionForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["restorePackageVersionForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Restores a specific package version in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + restorePackageVersionForOrg: { + (params?: RestEndpointMethodTypes["packages"]["restorePackageVersionForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Restores a specific package version for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + restorePackageVersionForUser: { + (params?: RestEndpointMethodTypes["packages"]["restorePackageVersionForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + projects: { + /** + * Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. + */ + addCollaborator: { + (params?: RestEndpointMethodTypes["projects"]["addCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + createCard: { + (params?: RestEndpointMethodTypes["projects"]["createCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new project column. + */ + createColumn: { + (params?: RestEndpointMethodTypes["projects"]["createColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a user project board. Returns a `410 Gone` status if the user does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + createForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["projects"]["createForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates an organization project board. Returns a `410 Gone` status if projects are disabled in the organization or if the organization does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + createForOrg: { + (params?: RestEndpointMethodTypes["projects"]["createForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a repository project board. Returns a `410 Gone` status if projects are disabled in the repository or if the repository does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + createForRepo: { + (params?: RestEndpointMethodTypes["projects"]["createForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a project board. Returns a `404 Not Found` status if projects are disabled. + */ + delete: { + (params?: RestEndpointMethodTypes["projects"]["delete"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a project card + */ + deleteCard: { + (params?: RestEndpointMethodTypes["projects"]["deleteCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a project column. + */ + deleteColumn: { + (params?: RestEndpointMethodTypes["projects"]["deleteColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + get: { + (params?: RestEndpointMethodTypes["projects"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about a project card. + */ + getCard: { + (params?: RestEndpointMethodTypes["projects"]["getCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about a project column. + */ + getColumn: { + (params?: RestEndpointMethodTypes["projects"]["getColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. + */ + getPermissionForUser: { + (params?: RestEndpointMethodTypes["projects"]["getPermissionForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the project cards in a project. + */ + listCards: { + (params?: RestEndpointMethodTypes["projects"]["listCards"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. + */ + listCollaborators: { + (params?: RestEndpointMethodTypes["projects"]["listCollaborators"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the project columns in a project. + */ + listColumns: { + (params?: RestEndpointMethodTypes["projects"]["listColumns"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + listForOrg: { + (params?: RestEndpointMethodTypes["projects"]["listForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + listForRepo: { + (params?: RestEndpointMethodTypes["projects"]["listForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists projects for a user. + */ + listForUser: { + (params?: RestEndpointMethodTypes["projects"]["listForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + moveCard: { + (params?: RestEndpointMethodTypes["projects"]["moveCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + moveColumn: { + (params?: RestEndpointMethodTypes["projects"]["moveColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. + */ + removeCollaborator: { + (params?: RestEndpointMethodTypes["projects"]["removeCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + update: { + (params?: RestEndpointMethodTypes["projects"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateCard: { + (params?: RestEndpointMethodTypes["projects"]["updateCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateColumn: { + (params?: RestEndpointMethodTypes["projects"]["updateColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + pulls: { + /** + * Checks if a pull request has been merged into the base branch. The HTTP status of the response indicates whether or not the pull request has been merged; the response body is empty. + */ + checkIfMerged: { + (params?: RestEndpointMethodTypes["pulls"]["checkIfMerged"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + create: { + (params?: RestEndpointMethodTypes["pulls"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + createReplyForReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["createReplyForReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a review on a specified pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Pull request reviews created in the `PENDING` state are not submitted and therefore do not include the `submitted_at` property in the response. To create a pending review for a pull request, leave the `event` parameter blank. For more information about submitting a `PENDING` review, see "[Submit a review for a pull request](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request)." + * + * **Note:** To comment on a specific line in a file, you need to first determine the position of that line in the diff. To see a pull request diff, add the `application/vnd.github.v3.diff` media type to the `Accept` header of a call to the [Get a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) endpoint. + * + * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + createReview: { + (params?: RestEndpointMethodTypes["pulls"]["createReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a review comment on the diff of a specified pull request. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/issues/comments#create-an-issue-comment)." + * + * If your comment applies to more than one line in the pull request diff, you should use the parameters `line`, `side`, and optionally `start_line` and `start_side` in your request. + * + * The `position` parameter is deprecated. If you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + createReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["createReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a pull request review that has not been submitted. Submitted reviews cannot be deleted. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + deletePendingReview: { + (params?: RestEndpointMethodTypes["pulls"]["deletePendingReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a review comment. + */ + deleteReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["deleteReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Dismisses a specified review on a pull request. + * + * **Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/branches/branch-protection), + * you must be a repository administrator or be included in the list of people or teams + * who can dismiss pull request reviews. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + dismissReview: { + (params?: RestEndpointMethodTypes["pulls"]["dismissReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists details of a pull request by providing its number. + * + * When you get, [create](https://docs.github.com/rest/pulls/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/pulls/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + * + * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + * + * * If merged as a [merge commit](https://docs.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://docs.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://docs.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + get: { + (params?: RestEndpointMethodTypes["pulls"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Retrieves a pull request review by its ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + getReview: { + (params?: RestEndpointMethodTypes["pulls"]["getReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Provides details for a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + getReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["getReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists pull requests in a specified repository. + * + * Draft pull requests are available in public repositories with GitHub + * Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing + * plans, and in public and private repositories with GitHub Team and GitHub Enterprise + * Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + * in the GitHub Help documentation. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + * - **`application/vnd.github.patch`**: For more information, see "[git-format-patch](https://git-scm.com/docs/git-format-patch)" in the Git documentation. + */ + list: { + (params?: RestEndpointMethodTypes["pulls"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists comments for a specific pull request review. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + listCommentsForReview: { + (params?: RestEndpointMethodTypes["pulls"]["listCommentsForReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists a maximum of 250 commits for a pull request. To receive a complete + * commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/commits/commits#list-commits) + * endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + listCommits: { + (params?: RestEndpointMethodTypes["pulls"]["listCommits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the files in a specified pull request. + * + * **Note:** Responses include a maximum of 3000 files. The paginated response + * returns 30 files per page by default. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + listFiles: { + (params?: RestEndpointMethodTypes["pulls"]["listFiles"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the users or teams whose review is requested for a pull request. Once a requested reviewer submits a review, they are no longer considered a requested reviewer. Their review will instead be returned by the [List reviews for a pull request](https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request) operation. + */ + listRequestedReviewers: { + (params?: RestEndpointMethodTypes["pulls"]["listRequestedReviewers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all review comments for a specified pull request. By default, review comments + * are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + listReviewComments: { + (params?: RestEndpointMethodTypes["pulls"]["listReviewComments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists review comments for all pull requests in a repository. By default, + * review comments are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + listReviewCommentsForRepo: { + (params?: RestEndpointMethodTypes["pulls"]["listReviewCommentsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all reviews for a specified pull request. The list of reviews returns in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + listReviews: { + (params?: RestEndpointMethodTypes["pulls"]["listReviews"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Merges a pull request into the base branch. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + merge: { + (params?: RestEndpointMethodTypes["pulls"]["merge"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes review requests from a pull request for a given set of users and/or teams. + */ + removeRequestedReviewers: { + (params?: RestEndpointMethodTypes["pulls"]["removeRequestedReviewers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + requestReviewers: { + (params?: RestEndpointMethodTypes["pulls"]["requestReviewers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Submits a pending review for a pull request. For more information about creating a pending review for a pull request, see "[Create a review for a pull request](https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + submitReview: { + (params?: RestEndpointMethodTypes["pulls"]["submitReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + update: { + (params?: RestEndpointMethodTypes["pulls"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. + */ + updateBranch: { + (params?: RestEndpointMethodTypes["pulls"]["updateBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the contents of a specified review summary comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + updateReview: { + (params?: RestEndpointMethodTypes["pulls"]["updateReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Edits the content of a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + updateReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["updateReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + rateLimit: { + /** + * **Note:** Accessing this endpoint does not count against your REST API rate limit. + * + * Some categories of endpoints have custom rate limits that are separate from the rate limit governing the other REST API endpoints. For this reason, the API response categorizes your rate limit. Under `resources`, you'll see objects relating to different categories: + * * The `core` object provides your rate limit status for all non-search-related resources in the REST API. + * * The `search` object provides your rate limit status for the REST API for searching (excluding code searches). For more information, see "[Search](https://docs.github.com/rest/search/search)." + * * The `code_search` object provides your rate limit status for the REST API for searching code. For more information, see "[Search code](https://docs.github.com/rest/search/search#search-code)." + * * The `graphql` object provides your rate limit status for the GraphQL API. For more information, see "[Resource limitations](https://docs.github.com/graphql/overview/resource-limitations#rate-limit)." + * * The `integration_manifest` object provides your rate limit status for the `POST /app-manifests/{code}/conversions` operation. For more information, see "[Creating a GitHub App from a manifest](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app-from-a-manifest#3-you-exchange-the-temporary-code-to-retrieve-the-app-configuration)." + * * The `dependency_snapshots` object provides your rate limit status for submitting snapshots to the dependency graph. For more information, see "[Dependency graph](https://docs.github.com/rest/dependency-graph)." + * * The `code_scanning_upload` object provides your rate limit status for uploading SARIF results to code scanning. For more information, see "[Uploading a SARIF file to GitHub](https://docs.github.com/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github)." + * * The `actions_runner_registration` object provides your rate limit status for registering self-hosted runners in GitHub Actions. For more information, see "[Self-hosted runners](https://docs.github.com/rest/actions/self-hosted-runners)." + * * The `source_import` object is no longer in use for any API endpoints, and it will be removed in the next API version. For more information about API versions, see "[API Versions](https://docs.github.com/rest/overview/api-versions)." + * + * **Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + */ + get: { + (params?: RestEndpointMethodTypes["rateLimit"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + reactions: { + /** + * Create a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). A response with an HTTP `200` status means that you already added the reaction type to this commit comment. + */ + createForCommitComment: { + (params?: RestEndpointMethodTypes["reactions"]["createForCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). A response with an HTTP `200` status means that you already added the reaction type to this issue. + */ + createForIssue: { + (params?: RestEndpointMethodTypes["reactions"]["createForIssue"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). A response with an HTTP `200` status means that you already added the reaction type to this issue comment. + */ + createForIssueComment: { + (params?: RestEndpointMethodTypes["reactions"]["createForIssueComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment. + */ + createForPullRequestReviewComment: { + (params?: RestEndpointMethodTypes["reactions"]["createForPullRequestReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). A response with a `Status: 200 OK` means that you already added the reaction type to this release. + */ + createForRelease: { + (params?: RestEndpointMethodTypes["reactions"]["createForRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + createForTeamDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["reactions"]["createForTeamDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + createForTeamDiscussionInOrg: { + (params?: RestEndpointMethodTypes["reactions"]["createForTeamDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + deleteForCommitComment: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + * + * Delete a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + deleteForIssue: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForIssue"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + deleteForIssueComment: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForIssueComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + * + * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + deleteForPullRequestComment: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForPullRequestComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id`. + * + * Delete a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + deleteForRelease: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + deleteForTeamDiscussion: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForTeamDiscussion"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + deleteForTeamDiscussionComment: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForTeamDiscussionComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + listForCommitComment: { + (params?: RestEndpointMethodTypes["reactions"]["listForCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + listForIssue: { + (params?: RestEndpointMethodTypes["reactions"]["listForIssue"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + listForIssueComment: { + (params?: RestEndpointMethodTypes["reactions"]["listForIssueComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + listForPullRequestReviewComment: { + (params?: RestEndpointMethodTypes["reactions"]["listForPullRequestReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + listForRelease: { + (params?: RestEndpointMethodTypes["reactions"]["listForRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + listForTeamDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["reactions"]["listForTeamDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + listForTeamDiscussionInOrg: { + (params?: RestEndpointMethodTypes["reactions"]["listForTeamDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + repos: { + /** + * @deprecated octokit.rest.repos.acceptInvitation() has been renamed to octokit.rest.repos.acceptInvitationForAuthenticatedUser() (2021-10-05) + */ + acceptInvitation: { + (params?: RestEndpointMethodTypes["repos"]["acceptInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + acceptInvitationForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["repos"]["acceptInvitationForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified apps push access for this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + addAppAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["addAppAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Adding an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + * + * For more information on permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with: + * + * ``` + * Cannot assign {member} permission of {role name} + * ``` + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [API](https://docs.github.com/rest/collaborators/invitations). + * + * **Updating an existing collaborator's permission level** + * + * The endpoint can also be used to change the permissions of an existing collaborator without first removing and re-adding the collaborator. To change the permissions, use the same endpoint and pass a different `permission` parameter. The response will be a `204`, with no other indication that the permission level changed. + * + * **Rate limits** + * + * You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + */ + addCollaborator: { + (params?: RestEndpointMethodTypes["repos"]["addCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + addStatusCheckContexts: { + (params?: RestEndpointMethodTypes["repos"]["addStatusCheckContexts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified teams push access for this branch. You can also give push access to child teams. + */ + addTeamAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["addTeamAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified people push access for this branch. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + addUserAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["addUserAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Cancels a GitHub Pages deployment. + * + * The authenticated user must have write permissions for the GitHub Pages site. + */ + cancelPagesDeployment: { + (params?: RestEndpointMethodTypes["repos"]["cancelPagesDeployment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows whether automated security fixes are enabled, disabled or paused for a repository. The authenticated user must have admin read access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + checkAutomatedSecurityFixes: { + (params?: RestEndpointMethodTypes["repos"]["checkAutomatedSecurityFixes"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + checkCollaborator: { + (params?: RestEndpointMethodTypes["repos"]["checkCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin read access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + checkVulnerabilityAlerts: { + (params?: RestEndpointMethodTypes["repos"]["checkVulnerabilityAlerts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List any syntax errors that are detected in the CODEOWNERS + * file. + * + * For more information about the correct CODEOWNERS syntax, + * see "[About code owners](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)." + */ + codeownersErrors: { + (params?: RestEndpointMethodTypes["repos"]["codeownersErrors"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Deprecated**: Use `repos.compareCommitsWithBasehead()` (`GET /repos/{owner}/{repo}/compare/{basehead}`) instead. Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + * + * When calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + compareCommits: { + (params?: RestEndpointMethodTypes["repos"]["compareCommits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Compares two commits against one another. You can compare branches in the same repository, or you can compare branches that exist in different repositories within the same repository network, including fork branches. For more information about how to view a repository's network, see "[Understanding connections between repositories](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository/understanding-connections-between-repositories)." + * + * This endpoint is equivalent to running the `git log BASE..HEAD` command, but it returns commits in a different order. The `git log BASE..HEAD` command returns commits in reverse chronological order, whereas the API returns commits in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. + * + * The API response includes details about the files that were changed between the two commits. This includes the status of the change (if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * When calling this endpoint without any paging parameter (`per_page` or `page`), the returned list is limited to 250 commits, and the last commit in the list is the most recent of the entire comparison. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, use a query parameter (`per_page` or `page`) to paginate the results. When using pagination: + * + * - The list of changed files is only shown on the first page of results, but it includes all changed files for the entire comparison. + * - The results are returned in chronological order, but the last commit in the returned list may not be the most recent one in the entire set if there are more pages of results. + * + * For more information on working with pagination, see "[Using pagination in the REST API](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The `verification` object includes the following fields: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + compareCommitsWithBasehead: { + (params?: RestEndpointMethodTypes["repos"]["compareCommitsWithBasehead"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with admin access to the repository can create an autolink. + */ + createAutolink: { + (params?: RestEndpointMethodTypes["repos"]["createAutolink"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a comment for a commit using its `:commit_sha`. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + createCommitComment: { + (params?: RestEndpointMethodTypes["repos"]["createCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + */ + createCommitSignatureProtection: { + (params?: RestEndpointMethodTypes["repos"]["createCommitSignatureProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access in a repository can create commit statuses for a given SHA. + * + * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + */ + createCommitStatus: { + (params?: RestEndpointMethodTypes["repos"]["createCommitStatus"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can create a read-only deploy key. + */ + createDeployKey: { + (params?: RestEndpointMethodTypes["repos"]["createDeployKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deployments offer a few configurable parameters with certain defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + * before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + * makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + * return a failure response. + * + * By default, [commit statuses](https://docs.github.com/rest/commits/statuses) for every submitted context must be in a `success` + * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + * not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + * field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + * application with debugging enabled. + * + * Merged branch response: + * + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + * a deployment. This auto-merge happens when: + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful + * response. + * + * Merge conflict response: + * + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * Failed commit status checks: + * + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + createDeployment: { + (params?: RestEndpointMethodTypes["repos"]["createDeployment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createDeploymentBranchPolicy: { + (params?: RestEndpointMethodTypes["repos"]["createDeploymentBranchPolicy"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enable a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createDeploymentProtectionRule: { + (params?: RestEndpointMethodTypes["repos"]["createDeploymentProtectionRule"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with `push` access can create deployment statuses for a given deployment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo_deployment` scope to use this endpoint. + */ + createDeploymentStatus: { + (params?: RestEndpointMethodTypes["repos"]["createDeploymentStatus"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createDispatchEvent: { + (params?: RestEndpointMethodTypes["repos"]["createDispatchEvent"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new repository for the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + createForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["repos"]["createForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a fork for the authenticated user. + * + * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * + * **Note**: Although this endpoint works with GitHub Apps, the GitHub App must be installed on the destination account with access to all repositories and on the source account with access to the source repository. + */ + createFork: { + (params?: RestEndpointMethodTypes["repos"]["createFork"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new repository in the specified organization. The authenticated user must be a member of the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + createInOrg: { + (params?: RestEndpointMethodTypes["repos"]["createInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create new or update existing custom property values for a repository. + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * Repository admins and other users with the repository-level "edit custom property values" fine-grained permission can use this endpoint. + */ + createOrUpdateCustomPropertiesValues: { + (params?: RestEndpointMethodTypes["repos"]["createOrUpdateCustomPropertiesValues"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "[Environments](/actions/reference/environments#environment-protection-rules)." + * + * **Note:** To create or update name patterns that branches must match in order to deploy to this environment, see "[Deployment branch policies](/rest/deployments/branch-policies)." + * + * **Note:** To create or update secrets for an environment, see "[GitHub Actions secrets](/rest/actions/secrets)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createOrUpdateEnvironment: { + (params?: RestEndpointMethodTypes["repos"]["createOrUpdateEnvironment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new file or replaces an existing file in a repository. + * + * **Note:** If you use this endpoint and the "[Delete a file](https://docs.github.com/rest/repos/contents/#delete-a-file)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The `workflow` scope is also required in order to modify files in the `.github/workflows` directory. + */ + createOrUpdateFileContents: { + (params?: RestEndpointMethodTypes["repos"]["createOrUpdateFileContents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a repository ruleset for an organization. + */ + createOrgRuleset: { + (params?: RestEndpointMethodTypes["repos"]["createOrgRuleset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a GitHub Pages deployment for a repository. + * + * The authenticated user must have write permission to the repository. + */ + createPagesDeployment: { + (params?: RestEndpointMethodTypes["repos"]["createPagesDeployment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + createPagesSite: { + (params?: RestEndpointMethodTypes["repos"]["createPagesSite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access to the repository can create a release. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + createRelease: { + (params?: RestEndpointMethodTypes["repos"]["createRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a ruleset for a repository. + */ + createRepoRuleset: { + (params?: RestEndpointMethodTypes["repos"]["createRepoRuleset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This creates a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + createTagProtection: { + (params?: RestEndpointMethodTypes["repos"]["createTagProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. If the repository is not public, the authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + createUsingTemplate: { + (params?: RestEndpointMethodTypes["repos"]["createUsingTemplate"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + * share the same `config` as long as those webhooks do not have any `events` that overlap. + */ + createWebhook: { + (params?: RestEndpointMethodTypes["repos"]["createWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * @deprecated octokit.rest.repos.declineInvitation() has been renamed to octokit.rest.repos.declineInvitationForAuthenticatedUser() (2021-10-05) + */ + declineInvitation: { + (params?: RestEndpointMethodTypes["repos"]["declineInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + declineInvitationForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["repos"]["declineInvitationForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deleting a repository requires admin access. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned + * repositories, you will get a `403 Forbidden` response. + * + * OAuth app tokens and personal access tokens (classic) need the `delete_repo` scope to use this endpoint. + */ + delete: { + (params?: RestEndpointMethodTypes["repos"]["delete"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Disables the ability to restrict who can push to this branch. + */ + deleteAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["deleteAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + deleteAdminBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["deleteAdminBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteAnEnvironment: { + (params?: RestEndpointMethodTypes["repos"]["deleteAnEnvironment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This deletes a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + deleteAutolink: { + (params?: RestEndpointMethodTypes["repos"]["deleteAutolink"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + deleteBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["deleteBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteCommitComment: { + (params?: RestEndpointMethodTypes["repos"]["deleteCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + */ + deleteCommitSignatureProtection: { + (params?: RestEndpointMethodTypes["repos"]["deleteCommitSignatureProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. + */ + deleteDeployKey: { + (params?: RestEndpointMethodTypes["repos"]["deleteDeployKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If the repository only has one deployment, you can delete the deployment regardless of its status. If the repository has more than one deployment, you can only delete inactive deployments. This ensures that repositories with multiple deployments will always have an active deployment. + * + * To set a deployment as inactive, you must: + * + * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * * Mark the active deployment as inactive by adding any non-successful deployment status. + * + * For more information, see "[Create a deployment](https://docs.github.com/rest/deployments/deployments/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/deployments/statuses#create-a-deployment-status)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + deleteDeployment: { + (params?: RestEndpointMethodTypes["repos"]["deleteDeployment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deleteDeploymentBranchPolicy: { + (params?: RestEndpointMethodTypes["repos"]["deleteDeploymentBranchPolicy"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + * + * **Note:** If you use this endpoint and the "[Create or update file contents](https://docs.github.com/rest/repos/contents/#create-or-update-file-contents)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + */ + deleteFile: { + (params?: RestEndpointMethodTypes["repos"]["deleteFile"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteInvitation: { + (params?: RestEndpointMethodTypes["repos"]["deleteInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Delete a ruleset for an organization. + */ + deleteOrgRuleset: { + (params?: RestEndpointMethodTypes["repos"]["deleteOrgRuleset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + deletePagesSite: { + (params?: RestEndpointMethodTypes["repos"]["deletePagesSite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + deletePullRequestReviewProtection: { + (params?: RestEndpointMethodTypes["repos"]["deletePullRequestReviewProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access to the repository can delete a release. + */ + deleteRelease: { + (params?: RestEndpointMethodTypes["repos"]["deleteRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteReleaseAsset: { + (params?: RestEndpointMethodTypes["repos"]["deleteReleaseAsset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Delete a ruleset for a repository. + */ + deleteRepoRuleset: { + (params?: RestEndpointMethodTypes["repos"]["deleteRepoRuleset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This deletes a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + deleteTagProtection: { + (params?: RestEndpointMethodTypes["repos"]["deleteTagProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteWebhook: { + (params?: RestEndpointMethodTypes["repos"]["deleteWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + disableAutomatedSecurityFixes: { + (params?: RestEndpointMethodTypes["repos"]["disableAutomatedSecurityFixes"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Disables a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + disableDeploymentProtectionRule: { + (params?: RestEndpointMethodTypes["repos"]["disableDeploymentProtectionRule"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Disables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)". + */ + disablePrivateVulnerabilityReporting: { + (params?: RestEndpointMethodTypes["repos"]["disablePrivateVulnerabilityReporting"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Disables dependency alerts and the dependency graph for a repository. + * The authenticated user must have admin access to the repository. For more information, + * see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + disableVulnerabilityAlerts: { + (params?: RestEndpointMethodTypes["repos"]["disableVulnerabilityAlerts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * + * **Note**: For private repositories, these links are temporary and expire after five minutes. If the repository is empty, you will receive a 404 when you follow the redirect. + * @deprecated octokit.rest.repos.downloadArchive() has been renamed to octokit.rest.repos.downloadZipballArchive() (2020-09-17) + */ + downloadArchive: { + (params?: RestEndpointMethodTypes["repos"]["downloadArchive"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + downloadTarballArchive: { + (params?: RestEndpointMethodTypes["repos"]["downloadTarballArchive"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * + * **Note**: For private repositories, these links are temporary and expire after five minutes. If the repository is empty, you will receive a 404 when you follow the redirect. + */ + downloadZipballArchive: { + (params?: RestEndpointMethodTypes["repos"]["downloadZipballArchive"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + enableAutomatedSecurityFixes: { + (params?: RestEndpointMethodTypes["repos"]["enableAutomatedSecurityFixes"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)." + */ + enablePrivateVulnerabilityReporting: { + (params?: RestEndpointMethodTypes["repos"]["enablePrivateVulnerabilityReporting"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + enableVulnerabilityAlerts: { + (params?: RestEndpointMethodTypes["repos"]["enableVulnerabilityAlerts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Generate a name and body describing a [release](https://docs.github.com/rest/releases/releases#get-a-release). The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release. + */ + generateReleaseNotes: { + (params?: RestEndpointMethodTypes["repos"]["generateReleaseNotes"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + get: { + (params?: RestEndpointMethodTypes["repos"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists who has access to this protected branch. + * + * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + */ + getAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["getAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getAdminBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["getAdminBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets all custom deployment protection rules that are enabled for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + getAllDeploymentProtectionRules: { + (params?: RestEndpointMethodTypes["repos"]["getAllDeploymentProtectionRules"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the environments for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + getAllEnvironments: { + (params?: RestEndpointMethodTypes["repos"]["getAllEnvironments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getAllStatusCheckContexts: { + (params?: RestEndpointMethodTypes["repos"]["getAllStatusCheckContexts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getAllTopics: { + (params?: RestEndpointMethodTypes["repos"]["getAllTopics"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + getAppsWithAccessToProtectedBranch: { + (params?: RestEndpointMethodTypes["repos"]["getAppsWithAccessToProtectedBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This returns a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + getAutolink: { + (params?: RestEndpointMethodTypes["repos"]["getAutolink"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getBranch: { + (params?: RestEndpointMethodTypes["repos"]["getBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["getBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns all active rules that apply to the specified branch. The branch does not need to exist; rules that would apply + * to a branch with that name will be returned. All active rules that apply will be returned, regardless of the level + * at which they are configured (e.g. repository or organization). Rules in rulesets with "evaluate" or "disabled" + * enforcement statuses are not returned. + */ + getBranchRules: { + (params?: RestEndpointMethodTypes["repos"]["getBranchRules"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + getClones: { + (params?: RestEndpointMethodTypes["repos"]["getClones"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. + * + * **Note:** This endpoint can only be used for repositories with fewer than 10,000 commits. If the repository contains + * 10,000 or more commits, a 422 status code will be returned. + */ + getCodeFrequencyStats: { + (params?: RestEndpointMethodTypes["repos"]["getCodeFrequencyStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks the repository permission of a collaborator. The possible repository + * permissions are `admin`, `write`, `read`, and `none`. + * + * *Note*: The `permission` attribute provides the legacy base roles of `admin`, `write`, `read`, and `none`, where the + * `maintain` role is mapped to `write` and the `triage` role is mapped to `read`. To determine the role assigned to the + * collaborator, see the `role_name` attribute, which will provide the full role name, including custom roles. The + * `permissions` hash can also be used to determine which base level of access the collaborator has to the repository. + */ + getCollaboratorPermissionLevel: { + (params?: RestEndpointMethodTypes["repos"]["getCollaboratorPermissionLevel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + */ + getCombinedStatusForRef: { + (params?: RestEndpointMethodTypes["repos"]["getCombinedStatusForRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * **Note:** If there are more than 300 files in the commit diff and the default JSON media type is requested, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." Pagination query parameters are not supported for these media types. + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.sha`**: Returns the commit's SHA-1 hash. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + getCommit: { + (params?: RestEndpointMethodTypes["repos"]["getCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. + */ + getCommitActivityStats: { + (params?: RestEndpointMethodTypes["repos"]["getCommitActivityStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + getCommitComment: { + (params?: RestEndpointMethodTypes["repos"]["getCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://docs.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * + * **Note**: You must enable branch protection to require signed commits. + */ + getCommitSignatureProtection: { + (params?: RestEndpointMethodTypes["repos"]["getCommitSignatureProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns all community profile metrics for a repository. The repository cannot be a fork. + * + * The returned metrics include an overall health score, the repository description, the presence of documentation, the + * detected code of conduct, the detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + * README, and CONTRIBUTING files. + * + * The `health_percentage` score is defined as a percentage of how many of + * the recommended community health files are present. For more information, see + * "[About community profiles for public repositories](https://docs.github.com/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories)." + * + * `content_reports_enabled` is only returned for organization-owned repositories. + */ + getCommunityProfileMetrics: { + (params?: RestEndpointMethodTypes["repos"]["getCommunityProfileMetrics"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks. + * - **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * - **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects. + * + * If the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + * + * If the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself. + * + * If the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + * + * **Notes**: + * + * - To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree). + * - This API has an upper limit of 1,000 files for a directory. If you need to retrieve + * more files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree). + * - Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. + * - If the requested file's size is: + * - 1 MB or smaller: All features of this endpoint are supported. + * - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty + * string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * - Greater than 100 MB: This endpoint is not supported. + */ + getContent: { + (params?: RestEndpointMethodTypes["repos"]["getContent"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: + * + * * `w` - Start of the week, given as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + * + * **Note:** This endpoint will return `0` values for all addition and deletion counts in repositories with 10,000 or more commits. + */ + getContributorsStats: { + (params?: RestEndpointMethodTypes["repos"]["getContributorsStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets an enabled custom deployment protection rule for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see [`GET /apps/{app_slug}`](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + getCustomDeploymentProtectionRule: { + (params?: RestEndpointMethodTypes["repos"]["getCustomDeploymentProtectionRule"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets all custom property values that are set for a repository. + * Users with read access to the repository can use this endpoint. + */ + getCustomPropertiesValues: { + (params?: RestEndpointMethodTypes["repos"]["getCustomPropertiesValues"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getDeployKey: { + (params?: RestEndpointMethodTypes["repos"]["getDeployKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getDeployment: { + (params?: RestEndpointMethodTypes["repos"]["getDeployment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a deployment branch or tag policy for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + getDeploymentBranchPolicy: { + (params?: RestEndpointMethodTypes["repos"]["getDeploymentBranchPolicy"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with pull access can view a deployment status for a deployment: + */ + getDeploymentStatus: { + (params?: RestEndpointMethodTypes["repos"]["getDeploymentStatus"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** To get information about name patterns that branches must match in order to deploy to this environment, see "[Get a deployment branch policy](/rest/deployments/branch-policies#get-a-deployment-branch-policy)." + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + getEnvironment: { + (params?: RestEndpointMethodTypes["repos"]["getEnvironment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about the single most recent build of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getLatestPagesBuild: { + (params?: RestEndpointMethodTypes["repos"]["getLatestPagesBuild"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View the latest published full release for the repository. + * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + */ + getLatestRelease: { + (params?: RestEndpointMethodTypes["repos"]["getLatestRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about a suite of rule evaluations from within an organization. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + getOrgRuleSuite: { + (params?: RestEndpointMethodTypes["repos"]["getOrgRuleSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists suites of rule evaluations at the organization level. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + getOrgRuleSuites: { + (params?: RestEndpointMethodTypes["repos"]["getOrgRuleSuites"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a repository ruleset for an organization. + */ + getOrgRuleset: { + (params?: RestEndpointMethodTypes["repos"]["getOrgRuleset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get all the repository rulesets for an organization. + */ + getOrgRulesets: { + (params?: RestEndpointMethodTypes["repos"]["getOrgRulesets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getPages: { + (params?: RestEndpointMethodTypes["repos"]["getPages"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about a GitHub Pages build. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getPagesBuild: { + (params?: RestEndpointMethodTypes["repos"]["getPagesBuild"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the current status of a GitHub Pages deployment. + * + * The authenticated user must have read permission for the GitHub Pages site. + */ + getPagesDeployment: { + (params?: RestEndpointMethodTypes["repos"]["getPagesDeployment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages. + * + * The first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response. + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getPagesHealthCheck: { + (params?: RestEndpointMethodTypes["repos"]["getPagesHealthCheck"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + * + * The array order is oldest week (index 0) to most recent week. + * + * The most recent week is seven days ago at UTC midnight to today at UTC midnight. + */ + getParticipationStats: { + (params?: RestEndpointMethodTypes["repos"]["getParticipationStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getPullRequestReviewProtection: { + (params?: RestEndpointMethodTypes["repos"]["getPullRequestReviewProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Each array contains the day number, hour number, and number of commits: + * + * * `0-6`: Sunday - Saturday + * * `0-23`: Hour of day + * * Number of commits + * + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + getPunchCardStats: { + (params?: RestEndpointMethodTypes["repos"]["getPunchCardStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the preferred README for a repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + getReadme: { + (params?: RestEndpointMethodTypes["repos"]["getReadme"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the README from a repository directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + getReadmeInDirectory: { + (params?: RestEndpointMethodTypes["repos"]["getReadmeInDirectory"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a public release with the specified release ID. + * + * **Note:** This returns an `upload_url` key corresponding to the endpoint + * for uploading release assets. This key is a hypermedia resource. For more information, see + * "[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + */ + getRelease: { + (params?: RestEndpointMethodTypes["repos"]["getRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. + */ + getReleaseAsset: { + (params?: RestEndpointMethodTypes["repos"]["getReleaseAsset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a published release with the specified tag. + */ + getReleaseByTag: { + (params?: RestEndpointMethodTypes["repos"]["getReleaseByTag"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about a suite of rule evaluations from within a repository. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + getRepoRuleSuite: { + (params?: RestEndpointMethodTypes["repos"]["getRepoRuleSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists suites of rule evaluations at the repository level. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + getRepoRuleSuites: { + (params?: RestEndpointMethodTypes["repos"]["getRepoRuleSuites"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a ruleset for a repository. + */ + getRepoRuleset: { + (params?: RestEndpointMethodTypes["repos"]["getRepoRuleset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get all the rulesets for a repository. + */ + getRepoRulesets: { + (params?: RestEndpointMethodTypes["repos"]["getRepoRulesets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getStatusChecksProtection: { + (params?: RestEndpointMethodTypes["repos"]["getStatusChecksProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. The list includes child teams. + */ + getTeamsWithAccessToProtectedBranch: { + (params?: RestEndpointMethodTypes["repos"]["getTeamsWithAccessToProtectedBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the top 10 popular contents over the last 14 days. + */ + getTopPaths: { + (params?: RestEndpointMethodTypes["repos"]["getTopPaths"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the top 10 referrers over the last 14 days. + */ + getTopReferrers: { + (params?: RestEndpointMethodTypes["repos"]["getTopReferrers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + */ + getUsersWithAccessToProtectedBranch: { + (params?: RestEndpointMethodTypes["repos"]["getUsersWithAccessToProtectedBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + getViews: { + (params?: RestEndpointMethodTypes["repos"]["getViews"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository)." + */ + getWebhook: { + (params?: RestEndpointMethodTypes["repos"]["getWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/webhooks/repos#get-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:repo_hook` or `repo` scope to use this endpoint. + */ + getWebhookConfigForRepo: { + (params?: RestEndpointMethodTypes["repos"]["getWebhookConfigForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a delivery for a webhook configured in a repository. + */ + getWebhookDelivery: { + (params?: RestEndpointMethodTypes["repos"]["getWebhookDelivery"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists a detailed history of changes to a repository, such as pushes, merges, force pushes, and branch changes, and associates these changes with commits and users. + * + * For more information about viewing repository activity, + * see "[Viewing activity and data for your repository](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository)." + */ + listActivities: { + (params?: RestEndpointMethodTypes["repos"]["listActivities"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets all autolinks that are configured for a repository. + * + * Information about autolinks are only available to repository administrators. + */ + listAutolinks: { + (params?: RestEndpointMethodTypes["repos"]["listAutolinks"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listBranches: { + (params?: RestEndpointMethodTypes["repos"]["listBranches"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + */ + listBranchesForHeadCommit: { + (params?: RestEndpointMethodTypes["repos"]["listBranchesForHeadCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * Organization members with write, maintain, or admin privileges on the organization-owned repository can use this endpoint. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + listCollaborators: { + (params?: RestEndpointMethodTypes["repos"]["listCollaborators"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the comments for a specified commit. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + listCommentsForCommit: { + (params?: RestEndpointMethodTypes["repos"]["listCommentsForCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the commit comments for a specified repository. Comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + listCommitCommentsForRepo: { + (params?: RestEndpointMethodTypes["repos"]["listCommitCommentsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + */ + listCommitStatusesForRef: { + (params?: RestEndpointMethodTypes["repos"]["listCommitStatusesForRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + listCommits: { + (params?: RestEndpointMethodTypes["repos"]["listCommits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + */ + listContributors: { + (params?: RestEndpointMethodTypes["repos"]["listContributors"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets all custom deployment protection rule integrations that are available for an environment. Anyone with read access to the repository can use this endpoint. + * + * For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see "[GET an app](https://docs.github.com/rest/apps/apps#get-an-app)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + listCustomDeploymentRuleIntegrations: { + (params?: RestEndpointMethodTypes["repos"]["listCustomDeploymentRuleIntegrations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listDeployKeys: { + (params?: RestEndpointMethodTypes["repos"]["listDeployKeys"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the deployment branch policies for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + listDeploymentBranchPolicies: { + (params?: RestEndpointMethodTypes["repos"]["listDeploymentBranchPolicies"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with pull access can view deployment statuses for a deployment: + */ + listDeploymentStatuses: { + (params?: RestEndpointMethodTypes["repos"]["listDeploymentStatuses"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Simple filtering of deployments is available via query parameters: + */ + listDeployments: { + (params?: RestEndpointMethodTypes["repos"]["listDeployments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["repos"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories for the specified organization. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + listForOrg: { + (params?: RestEndpointMethodTypes["repos"]["listForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists public repositories for the specified user. + */ + listForUser: { + (params?: RestEndpointMethodTypes["repos"]["listForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listForks: { + (params?: RestEndpointMethodTypes["repos"]["listForks"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. + */ + listInvitations: { + (params?: RestEndpointMethodTypes["repos"]["listInvitations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * When authenticating as a user, this endpoint will list all currently open repository invitations for that user. + */ + listInvitationsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["repos"]["listInvitationsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. + */ + listLanguages: { + (params?: RestEndpointMethodTypes["repos"]["listLanguages"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists builts of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + listPagesBuilds: { + (params?: RestEndpointMethodTypes["repos"]["listPagesBuilds"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all public repositories in the order that they were created. + * + * Note: + * - For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise. + * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of repositories. + */ + listPublic: { + (params?: RestEndpointMethodTypes["repos"]["listPublic"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, will only return open pull requests associated with the commit. + * + * To list the open or merged pull requests associated with a branch, you can set the `commit_sha` parameter to the branch name. + */ + listPullRequestsAssociatedWithCommit: { + (params?: RestEndpointMethodTypes["repos"]["listPullRequestsAssociatedWithCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listReleaseAssets: { + (params?: RestEndpointMethodTypes["repos"]["listReleaseAssets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/repos/repos#list-repository-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + */ + listReleases: { + (params?: RestEndpointMethodTypes["repos"]["listReleases"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This returns the tag protection states of a repository. + * + * This information is only available to repository administrators. + */ + listTagProtection: { + (params?: RestEndpointMethodTypes["repos"]["listTagProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listTags: { + (params?: RestEndpointMethodTypes["repos"]["listTags"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the teams that have access to the specified repository and that are also visible to the authenticated user. + * + * For a public repository, a team is listed only if that team added the public repository explicitly. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to use this endpoint with a public repository, and `repo` scope to use this endpoint with a private repository. + */ + listTeams: { + (params?: RestEndpointMethodTypes["repos"]["listTeams"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a list of webhook deliveries for a webhook configured in a repository. + */ + listWebhookDeliveries: { + (params?: RestEndpointMethodTypes["repos"]["listWebhookDeliveries"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists webhooks for a repository. `last response` may return null if there have not been any deliveries within 30 days. + */ + listWebhooks: { + (params?: RestEndpointMethodTypes["repos"]["listWebhooks"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + merge: { + (params?: RestEndpointMethodTypes["repos"]["merge"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sync a branch of a forked repository to keep it up-to-date with the upstream repository. + */ + mergeUpstream: { + (params?: RestEndpointMethodTypes["repos"]["mergeUpstream"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + pingWebhook: { + (params?: RestEndpointMethodTypes["repos"]["pingWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Redeliver a webhook delivery for a webhook configured in a repository. + */ + redeliverWebhookDelivery: { + (params?: RestEndpointMethodTypes["repos"]["redeliverWebhookDelivery"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of an app to push to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + removeAppAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["removeAppAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a collaborator from a repository. + * + * To use this endpoint, the authenticated user must either be an administrator of the repository or target themselves for removal. + * + * This endpoint also: + * - Cancels any outstanding invitations + * - Unasigns the user from any issues + * - Removes access to organization projects if the user is not an organization member and is not a collaborator on any other organization repositories. + * - Unstars the repository + * - Updates access permissions to packages + * + * Removing a user as a collaborator has the following effects on forks: + * - If the user had access to a fork through their membership to this repository, the user will also be removed from the fork. + * - If the user had their own fork of the repository, the fork will be deleted. + * - If the user still has read access to the repository, open pull requests by this user from a fork will be denied. + * + * **Note**: A user can still have access to the repository through organization permissions like base repository permissions. + * + * Although the API responds immediately, the additional permission updates might take some extra time to complete in the background. + * + * For more information on fork permissions, see "[About permissions and visibility of forks](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks)". + */ + removeCollaborator: { + (params?: RestEndpointMethodTypes["repos"]["removeCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + removeStatusCheckContexts: { + (params?: RestEndpointMethodTypes["repos"]["removeStatusCheckContexts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + removeStatusCheckProtection: { + (params?: RestEndpointMethodTypes["repos"]["removeStatusCheckProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + */ + removeTeamAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["removeTeamAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a user to push to this branch. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + removeUserAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["removeUserAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Renames a branch in a repository. + * + * **Note:** Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)". + * + * The authenticated user must have push access to the branch. If the branch is the default branch, the authenticated user must also have admin or owner permissions. + * + * In order to rename the default branch, fine-grained access tokens also need the `administration:write` repository permission. + */ + renameBranch: { + (params?: RestEndpointMethodTypes["repos"]["renameBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + replaceAllTopics: { + (params?: RestEndpointMethodTypes["repos"]["replaceAllTopics"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + */ + requestPagesBuild: { + (params?: RestEndpointMethodTypes["repos"]["requestPagesBuild"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + setAdminBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["setAdminBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + setAppAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["setAppAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + setStatusCheckContexts: { + (params?: RestEndpointMethodTypes["repos"]["setStatusCheckContexts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + */ + setTeamAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["setTeamAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + setUserAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["setUserAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * + * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + */ + testPushWebhook: { + (params?: RestEndpointMethodTypes["repos"]["testPushWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://docs.github.com/articles/about-repository-transfers/). + */ + transfer: { + (params?: RestEndpointMethodTypes["repos"]["transfer"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/repos/repos#replace-all-repository-topics) endpoint. + */ + update: { + (params?: RestEndpointMethodTypes["repos"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * + * **Note**: The list of users, apps, and teams in total is limited to 100 items. + */ + updateBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["updateBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the contents of a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + updateCommitComment: { + (params?: RestEndpointMethodTypes["repos"]["updateCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + updateDeploymentBranchPolicy: { + (params?: RestEndpointMethodTypes["repos"]["updateDeploymentBranchPolicy"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + updateInformationAboutPagesSite: { + (params?: RestEndpointMethodTypes["repos"]["updateInformationAboutPagesSite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateInvitation: { + (params?: RestEndpointMethodTypes["repos"]["updateInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Update a ruleset for an organization. + */ + updateOrgRuleset: { + (params?: RestEndpointMethodTypes["repos"]["updateOrgRuleset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + */ + updatePullRequestReviewProtection: { + (params?: RestEndpointMethodTypes["repos"]["updatePullRequestReviewProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access to the repository can edit a release. + */ + updateRelease: { + (params?: RestEndpointMethodTypes["repos"]["updateRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access to the repository can edit a release asset. + */ + updateReleaseAsset: { + (params?: RestEndpointMethodTypes["repos"]["updateReleaseAsset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Update a ruleset for a repository. + */ + updateRepoRuleset: { + (params?: RestEndpointMethodTypes["repos"]["updateRepoRuleset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + * @deprecated octokit.rest.repos.updateStatusCheckPotection() has been renamed to octokit.rest.repos.updateStatusCheckProtection() (2020-09-17) + */ + updateStatusCheckPotection: { + (params?: RestEndpointMethodTypes["repos"]["updateStatusCheckPotection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + */ + updateStatusCheckProtection: { + (params?: RestEndpointMethodTypes["repos"]["updateStatusCheckProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/webhooks/repo-config#update-a-webhook-configuration-for-a-repository)." + */ + updateWebhook: { + (params?: RestEndpointMethodTypes["repos"]["updateWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/webhooks/repos#update-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:repo_hook` or `repo` scope to use this endpoint. + */ + updateWebhookConfigForRepo: { + (params?: RestEndpointMethodTypes["repos"]["updateWebhookConfigForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint makes use of a [Hypermedia relation](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in + * the response of the [Create a release endpoint](https://docs.github.com/rest/releases/releases#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, + * you'll still need to pass your authentication to be able to upload an asset. + * + * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. + * + * **Notes:** + * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List release assets](https://docs.github.com/rest/releases/assets#list-release-assets)" + * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * * To find the `release_id` query the [`GET /repos/{owner}/{repo}/releases/latest` endpoint](https://docs.github.com/rest/releases/releases#get-the-latest-release). + * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. + */ + uploadReleaseAsset: { + (params?: RestEndpointMethodTypes["repos"]["uploadReleaseAsset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + search: { + /** + * Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: + * + * `q=addClass+in:file+language:js+repo:jquery/jquery` + * + * This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. + * + * Considerations for code search: + * + * Due to the complexity of searching code, there are a few restrictions on how searches are performed: + * + * * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * * Only files smaller than 384 KB are searchable. + * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing + * language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + * + * This endpoint requires you to authenticate and limits you to 10 requests per minute. + */ + code: { + (params?: RestEndpointMethodTypes["search"]["code"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find commits via various criteria on the default branch (usually `main`). This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match + * metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + * + * `q=repo:octocat/Spoon-Knife+css` + */ + commits: { + (params?: RestEndpointMethodTypes["search"]["commits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted + * search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * `q=windows+label:bug+language:python+state:open&sort=created&order=asc` + * + * This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. + * + * **Note:** For requests made by GitHub Apps with a user access token, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + */ + issuesAndPullRequests: { + (params?: RestEndpointMethodTypes["search"]["issuesAndPullRequests"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + * + * `q=bug+defect+enhancement&repository_id=64778136` + * + * The labels that best match the query appear first in the search results. + */ + labels: { + (params?: RestEndpointMethodTypes["search"]["labels"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: + * + * `q=tetris+language:assembly&sort=stars&order=desc` + * + * This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. + */ + repos: { + (params?: RestEndpointMethodTypes["search"]["repos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). See "[Searching topics](https://docs.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: + * + * `q=ruby+is:featured` + * + * This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + */ + topics: { + (params?: RestEndpointMethodTypes["search"]["topics"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for users, you can get text match metadata for the issue **login**, public **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you're looking for a list of popular users, you might try this query: + * + * `q=tom+repos:%3E42+followers:%3E1000` + * + * This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. + * + * This endpoint does not accept authentication and will only include publicly visible users. As an alternative, you can use the GraphQL API. The GraphQL API requires authentication and will return private users, including Enterprise Managed Users (EMUs), that you are authorized to view. For more information, see "[GraphQL Queries](https://docs.github.com/graphql/reference/queries#search)." + */ + users: { + (params?: RestEndpointMethodTypes["search"]["users"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + secretScanning: { + /** + * Gets a single secret scanning alert detected in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + getAlert: { + (params?: RestEndpointMethodTypes["secretScanning"]["getAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists secret scanning alerts for eligible repositories in an enterprise, from newest to oldest. + * + * Alerts are only returned for organizations in the enterprise for which the authenticated user is an organization owner or a [security manager](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization). + * + * The authenticated user must be a member of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope or `security_events` scope to use this endpoint. + */ + listAlertsForEnterprise: { + (params?: RestEndpointMethodTypes["secretScanning"]["listAlertsForEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + listAlertsForOrg: { + (params?: RestEndpointMethodTypes["secretScanning"]["listAlertsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists secret scanning alerts for an eligible repository, from newest to oldest. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + listAlertsForRepo: { + (params?: RestEndpointMethodTypes["secretScanning"]["listAlertsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all locations for a given secret scanning alert for an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + listLocationsForAlert: { + (params?: RestEndpointMethodTypes["secretScanning"]["listLocationsForAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the status of a secret scanning alert in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + updateAlert: { + (params?: RestEndpointMethodTypes["secretScanning"]["updateAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + securityAdvisories: { + /** + * Create a temporary private fork to collaborate on fixing a security vulnerability in your repository. + * + * **Note**: Forking a repository happens asynchronously. You may have to wait up to 5 minutes before you can access the fork. + */ + createFork: { + (params?: RestEndpointMethodTypes["securityAdvisories"]["createFork"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Report a security vulnerability to the maintainers of the repository. + * See "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)" for more information about private vulnerability reporting. + */ + createPrivateVulnerabilityReport: { + (params?: RestEndpointMethodTypes["securityAdvisories"]["createPrivateVulnerabilityReport"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new repository security advisory. + * + * In order to create a draft repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + createRepositoryAdvisory: { + (params?: RestEndpointMethodTypes["securityAdvisories"]["createRepositoryAdvisory"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If you want a CVE identification number for the security vulnerability in your project, and don't already have one, you can request a CVE identification number from GitHub. For more information see "[Requesting a CVE identification number](https://docs.github.com/code-security/security-advisories/repository-security-advisories/publishing-a-repository-security-advisory#requesting-a-cve-identification-number-optional)." + * + * You may request a CVE for public repositories, but cannot do so for private repositories. + * + * In order to request a CVE for a repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + createRepositoryAdvisoryCveRequest: { + (params?: RestEndpointMethodTypes["securityAdvisories"]["createRepositoryAdvisoryCveRequest"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a global security advisory using its GitHub Security Advisory (GHSA) identifier. + */ + getGlobalAdvisory: { + (params?: RestEndpointMethodTypes["securityAdvisories"]["getGlobalAdvisory"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * Anyone can access any published security advisory on a public repository. + * + * The authenticated user can access an unpublished security advisory from a repository if they are a security manager or administrator of that repository, or if they are a + * collaborator on the security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + getRepositoryAdvisory: { + (params?: RestEndpointMethodTypes["securityAdvisories"]["getRepositoryAdvisory"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all global security advisories that match the specified parameters. If no other parameters are defined, the request will return only GitHub-reviewed advisories that are not malware. + * + * By default, all responses will exclude advisories for malware, because malware are not standard vulnerabilities. To list advisories for malware, you must include the `type` parameter in your request, with the value `malware`. For more information about the different types of security advisories, see "[About the GitHub Advisory database](https://docs.github.com/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database#about-types-of-security-advisories)." + */ + listGlobalAdvisories: { + (params?: RestEndpointMethodTypes["securityAdvisories"]["listGlobalAdvisories"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repository security advisories for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + listOrgRepositoryAdvisories: { + (params?: RestEndpointMethodTypes["securityAdvisories"]["listOrgRepositoryAdvisories"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists security advisories in a repository. + * + * The authenticated user can access unpublished security advisories from a repository if they are a security manager or administrator of that repository, or if they are a collaborator on any security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + listRepositoryAdvisories: { + (params?: RestEndpointMethodTypes["securityAdvisories"]["listRepositoryAdvisories"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Update a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * In order to update any security advisory, the authenticated user must be a security manager or administrator of that repository, + * or a collaborator on the repository security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + updateRepositoryAdvisory: { + (params?: RestEndpointMethodTypes["securityAdvisories"]["updateRepositoryAdvisory"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + teams: { + /** + * Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + addOrUpdateMembershipForUserInOrg: { + (params?: RestEndpointMethodTypes["teams"]["addOrUpdateMembershipForUserInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + addOrUpdateProjectPermissionsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["addOrUpdateProjectPermissionsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + * + * For more information about the permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + */ + addOrUpdateRepoPermissionsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["addOrUpdateRepoPermissionsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + checkPermissionsForProjectInOrg: { + (params?: RestEndpointMethodTypes["teams"]["checkPermissionsForProjectInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header. + * + * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. + * + * If the repository is private, you must have at least `read` permission for that repository, and your token must have the `repo` or `admin:org` scope. Otherwise, you will receive a `404 Not Found` response status. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + checkPermissionsForRepoInOrg: { + (params?: RestEndpointMethodTypes["teams"]["checkPermissionsForRepoInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://docs.github.com/articles/setting-team-creation-permissions-in-your-organization)." + * + * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/about-teams)". + */ + create: { + (params?: RestEndpointMethodTypes["teams"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new comment on a team discussion. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + createDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["teams"]["createDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new discussion post on a team's page. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + createDiscussionInOrg: { + (params?: RestEndpointMethodTypes["teams"]["createDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + deleteDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["teams"]["deleteDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Delete a discussion from a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + deleteDiscussionInOrg: { + (params?: RestEndpointMethodTypes["teams"]["deleteDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + */ + deleteInOrg: { + (params?: RestEndpointMethodTypes["teams"]["deleteInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a team using the team's `slug`. To create the `slug`, GitHub replaces special characters in the `name` string, changes all words to lowercase, and replaces spaces with a `-` separator. For example, `"My TEam Näme"` would become `my-team-name`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + */ + getByName: { + (params?: RestEndpointMethodTypes["teams"]["getByName"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a specific comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + getDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["teams"]["getDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a specific discussion on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + getDiscussionInOrg: { + (params?: RestEndpointMethodTypes["teams"]["getDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + */ + getMembershipForUserInOrg: { + (params?: RestEndpointMethodTypes["teams"]["getMembershipForUserInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all teams in an organization that are visible to the authenticated user. + */ + list: { + (params?: RestEndpointMethodTypes["teams"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the child teams of the team specified by `{team_slug}`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. + */ + listChildInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listChildInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all comments on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + listDiscussionCommentsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listDiscussionCommentsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all discussions on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + listDiscussionsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listDiscussionsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all of the teams across all of the organizations to which the authenticated + * user belongs. + * + * OAuth app tokens and personal access tokens (classic) need the `user`, `repo`, or `read:org` scope to use this endpoint. + * + * When using a fine-grained personal access token, the resource owner of the token must be a single organization, and the response will only include the teams from that organization. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["teams"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Team members will include the members of child teams. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + listMembersInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listMembersInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + */ + listPendingInvitationsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listPendingInvitationsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the organization projects for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. + */ + listProjectsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listProjectsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists a team's repositories visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. + */ + listReposInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listReposInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + removeMembershipForUserInOrg: { + (params?: RestEndpointMethodTypes["teams"]["removeMembershipForUserInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + removeProjectInOrg: { + (params?: RestEndpointMethodTypes["teams"]["removeProjectInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + removeRepoInOrg: { + (params?: RestEndpointMethodTypes["teams"]["removeRepoInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Edits the body text of a discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + updateDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["teams"]["updateDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + updateDiscussionInOrg: { + (params?: RestEndpointMethodTypes["teams"]["updateDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + */ + updateInOrg: { + (params?: RestEndpointMethodTypes["teams"]["updateInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + users: { + /** + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + * @deprecated octokit.rest.users.addEmailForAuthenticated() has been renamed to octokit.rest.users.addEmailForAuthenticatedUser() (2021-10-05) + */ + addEmailForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["addEmailForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + addEmailForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["addEmailForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Add one or more social accounts to the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + addSocialAccountForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["addSocialAccountForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Blocks the given user and returns a 204. If the authenticated user cannot block the given user a 422 is returned. + */ + block: { + (params?: RestEndpointMethodTypes["users"]["block"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a 204 if the given user is blocked by the authenticated user. Returns a 404 if the given user is not blocked by the authenticated user, or if the given user account has been identified as spam by GitHub. + */ + checkBlocked: { + (params?: RestEndpointMethodTypes["users"]["checkBlocked"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + checkFollowingForUser: { + (params?: RestEndpointMethodTypes["users"]["checkFollowingForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + checkPersonIsFollowedByAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["checkPersonIsFollowedByAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a GPG key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + * @deprecated octokit.rest.users.createGpgKeyForAuthenticated() has been renamed to octokit.rest.users.createGpgKeyForAuthenticatedUser() (2021-10-05) + */ + createGpgKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["createGpgKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a GPG key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + createGpgKeyForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["createGpgKeyForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a public SSH key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + * @deprecated octokit.rest.users.createPublicSshKeyForAuthenticated() has been renamed to octokit.rest.users.createPublicSshKeyForAuthenticatedUser() (2021-10-05) + */ + createPublicSshKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["createPublicSshKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a public SSH key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + createPublicSshKeyForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["createPublicSshKeyForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates an SSH signing key for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:ssh_signing_key` scope to use this endpoint. + */ + createSshSigningKeyForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["createSshSigningKeyForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + * @deprecated octokit.rest.users.deleteEmailForAuthenticated() has been renamed to octokit.rest.users.deleteEmailForAuthenticatedUser() (2021-10-05) + */ + deleteEmailForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["deleteEmailForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + deleteEmailForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["deleteEmailForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a GPG key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:gpg_key` scope to use this endpoint. + * @deprecated octokit.rest.users.deleteGpgKeyForAuthenticated() has been renamed to octokit.rest.users.deleteGpgKeyForAuthenticatedUser() (2021-10-05) + */ + deleteGpgKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["deleteGpgKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a GPG key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:gpg_key` scope to use this endpoint. + */ + deleteGpgKeyForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["deleteGpgKeyForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a public SSH key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:public_key` scope to use this endpoint. + * @deprecated octokit.rest.users.deletePublicSshKeyForAuthenticated() has been renamed to octokit.rest.users.deletePublicSshKeyForAuthenticatedUser() (2021-10-05) + */ + deletePublicSshKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["deletePublicSshKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a public SSH key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:public_key` scope to use this endpoint. + */ + deletePublicSshKeyForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["deletePublicSshKeyForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes one or more social accounts from the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + deleteSocialAccountForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["deleteSocialAccountForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes an SSH signing key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:ssh_signing_key` scope to use this endpoint. + */ + deleteSshSigningKeyForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["deleteSshSigningKeyForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + follow: { + (params?: RestEndpointMethodTypes["users"]["follow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information. + */ + getAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["getAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Provides publicly available information about someone with a GitHub account. + * + * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#authentication). + * + * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://docs.github.com/rest/users/emails)". + */ + getByUsername: { + (params?: RestEndpointMethodTypes["users"]["getByUsername"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Provides hovercard information. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + * + * The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository via cURL, it would look like this: + * + * ```shell + * curl -u username:token + * https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192 + * ``` + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + getContextForUser: { + (params?: RestEndpointMethodTypes["users"]["getContextForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View extended details for a single GPG key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + * @deprecated octokit.rest.users.getGpgKeyForAuthenticated() has been renamed to octokit.rest.users.getGpgKeyForAuthenticatedUser() (2021-10-05) + */ + getGpgKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["getGpgKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View extended details for a single GPG key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + getGpgKeyForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["getGpgKeyForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View extended details for a single public SSH key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + * @deprecated octokit.rest.users.getPublicSshKeyForAuthenticated() has been renamed to octokit.rest.users.getPublicSshKeyForAuthenticatedUser() (2021-10-05) + */ + getPublicSshKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["getPublicSshKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View extended details for a single public SSH key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + getPublicSshKeyForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["getPublicSshKeyForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets extended details for an SSH signing key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + getSshSigningKeyForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["getSshSigningKeyForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of users. + */ + list: { + (params?: RestEndpointMethodTypes["users"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the users you've blocked on your personal account. + * @deprecated octokit.rest.users.listBlockedByAuthenticated() has been renamed to octokit.rest.users.listBlockedByAuthenticatedUser() (2021-10-05) + */ + listBlockedByAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listBlockedByAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the users you've blocked on your personal account. + */ + listBlockedByAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["listBlockedByAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all of your email addresses, and specifies which one is visible + * to the public. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + * @deprecated octokit.rest.users.listEmailsForAuthenticated() has been renamed to octokit.rest.users.listEmailsForAuthenticatedUser() (2021-10-05) + */ + listEmailsForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listEmailsForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all of your email addresses, and specifies which one is visible + * to the public. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + listEmailsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["listEmailsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people who the authenticated user follows. + * @deprecated octokit.rest.users.listFollowedByAuthenticated() has been renamed to octokit.rest.users.listFollowedByAuthenticatedUser() (2021-10-05) + */ + listFollowedByAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listFollowedByAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people who the authenticated user follows. + */ + listFollowedByAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["listFollowedByAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people following the authenticated user. + */ + listFollowersForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["listFollowersForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people following the specified user. + */ + listFollowersForUser: { + (params?: RestEndpointMethodTypes["users"]["listFollowersForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people who the specified user follows. + */ + listFollowingForUser: { + (params?: RestEndpointMethodTypes["users"]["listFollowingForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the current user's GPG keys. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + * @deprecated octokit.rest.users.listGpgKeysForAuthenticated() has been renamed to octokit.rest.users.listGpgKeysForAuthenticatedUser() (2021-10-05) + */ + listGpgKeysForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listGpgKeysForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the current user's GPG keys. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + listGpgKeysForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["listGpgKeysForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the GPG keys for a user. This information is accessible by anyone. + */ + listGpgKeysForUser: { + (params?: RestEndpointMethodTypes["users"]["listGpgKeysForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists your publicly visible email address, which you can set with the + * [Set primary email visibility for the authenticated user](https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user) + * endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + * @deprecated octokit.rest.users.listPublicEmailsForAuthenticated() has been renamed to octokit.rest.users.listPublicEmailsForAuthenticatedUser() (2021-10-05) + */ + listPublicEmailsForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listPublicEmailsForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists your publicly visible email address, which you can set with the + * [Set primary email visibility for the authenticated user](https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user) + * endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + listPublicEmailsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["listPublicEmailsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the _verified_ public SSH keys for a user. This is accessible by anyone. + */ + listPublicKeysForUser: { + (params?: RestEndpointMethodTypes["users"]["listPublicKeysForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the public SSH keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + * @deprecated octokit.rest.users.listPublicSshKeysForAuthenticated() has been renamed to octokit.rest.users.listPublicSshKeysForAuthenticatedUser() (2021-10-05) + */ + listPublicSshKeysForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listPublicSshKeysForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the public SSH keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + listPublicSshKeysForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["listPublicSshKeysForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all of your social accounts. + */ + listSocialAccountsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["listSocialAccountsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists social media accounts for a user. This endpoint is accessible by anyone. + */ + listSocialAccountsForUser: { + (params?: RestEndpointMethodTypes["users"]["listSocialAccountsForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the SSH signing keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + listSshSigningKeysForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["listSshSigningKeysForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the SSH signing keys for a user. This operation is accessible by anyone. + */ + listSshSigningKeysForUser: { + (params?: RestEndpointMethodTypes["users"]["listSshSigningKeysForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the visibility for your primary email addresses. + * @deprecated octokit.rest.users.setPrimaryEmailVisibilityForAuthenticated() has been renamed to octokit.rest.users.setPrimaryEmailVisibilityForAuthenticatedUser() (2021-10-05) + */ + setPrimaryEmailVisibilityForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["setPrimaryEmailVisibilityForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the visibility for your primary email addresses. + */ + setPrimaryEmailVisibilityForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["setPrimaryEmailVisibilityForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Unblocks the given user and returns a 204. + */ + unblock: { + (params?: RestEndpointMethodTypes["users"]["unblock"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + unfollow: { + (params?: RestEndpointMethodTypes["users"]["unfollow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API. + */ + updateAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["updateAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types.d.ts new file mode 100644 index 000000000..27e608f43 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types.d.ts @@ -0,0 +1,3739 @@ +import type { Endpoints, RequestParameters } from "@octokit/types"; +export type RestEndpointMethodTypes = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/actions/runners/{runner_id}/labels"]["parameters"]; + response: Endpoints["POST /orgs/{org}/actions/runners/{runner_id}/labels"]["response"]; + }; + addCustomLabelsToSelfHostedRunnerForRepo: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"]["response"]; + }; + addSelectedRepoToOrgSecret: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"]["response"]; + }; + addSelectedRepoToOrgVariable: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"]["response"]; + }; + approveWorkflowRun: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"]["response"]; + }; + cancelWorkflowRun: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"]["response"]; + }; + createEnvironmentVariable: { + parameters: RequestParameters & Endpoints["POST /repositories/{repository_id}/environments/{environment_name}/variables"]["parameters"]; + response: Endpoints["POST /repositories/{repository_id}/environments/{environment_name}/variables"]["response"]; + }; + createOrUpdateEnvironmentSecret: { + parameters: RequestParameters & Endpoints["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"]["parameters"]; + response: Endpoints["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"]["response"]; + }; + createOrUpdateOrgSecret: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/actions/secrets/{secret_name}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/actions/secrets/{secret_name}"]["response"]; + }; + createOrUpdateRepoSecret: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"]["response"]; + }; + createOrgVariable: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/actions/variables"]["parameters"]; + response: Endpoints["POST /orgs/{org}/actions/variables"]["response"]; + }; + createRegistrationTokenForOrg: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/actions/runners/registration-token"]["parameters"]; + response: Endpoints["POST /orgs/{org}/actions/runners/registration-token"]["response"]; + }; + createRegistrationTokenForRepo: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/runners/registration-token"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runners/registration-token"]["response"]; + }; + createRemoveTokenForOrg: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/actions/runners/remove-token"]["parameters"]; + response: Endpoints["POST /orgs/{org}/actions/runners/remove-token"]["response"]; + }; + createRemoveTokenForRepo: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/runners/remove-token"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runners/remove-token"]["response"]; + }; + createRepoVariable: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/variables"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/variables"]["response"]; + }; + createWorkflowDispatch: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"]["response"]; + }; + deleteActionsCacheById: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"]["response"]; + }; + deleteActionsCacheByKey: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"]["response"]; + }; + deleteArtifact: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"]["response"]; + }; + deleteEnvironmentSecret: { + parameters: RequestParameters & Endpoints["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"]["parameters"]; + response: Endpoints["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"]["response"]; + }; + deleteEnvironmentVariable: { + parameters: RequestParameters & Endpoints["DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}"]["parameters"]; + response: Endpoints["DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}"]["response"]; + }; + deleteOrgSecret: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/actions/secrets/{secret_name}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/actions/secrets/{secret_name}"]["response"]; + }; + deleteOrgVariable: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/actions/variables/{name}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/actions/variables/{name}"]["response"]; + }; + deleteRepoSecret: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"]["response"]; + }; + deleteRepoVariable: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/actions/variables/{name}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/variables/{name}"]["response"]; + }; + deleteSelfHostedRunnerFromOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/actions/runners/{runner_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/actions/runners/{runner_id}"]["response"]; + }; + deleteSelfHostedRunnerFromRepo: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"]["response"]; + }; + deleteWorkflowRun: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"]["response"]; + }; + deleteWorkflowRunLogs: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"]["response"]; + }; + disableSelectedRepositoryGithubActionsOrganization: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"]["response"]; + }; + disableWorkflow: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"]["response"]; + }; + downloadArtifact: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"]["response"]; + }; + downloadJobLogsForWorkflowRun: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"]["response"]; + }; + downloadWorkflowRunAttemptLogs: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"]["response"]; + }; + downloadWorkflowRunLogs: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"]["response"]; + }; + enableSelectedRepositoryGithubActionsOrganization: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"]["response"]; + }; + enableWorkflow: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"]["response"]; + }; + forceCancelWorkflowRun: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"]["response"]; + }; + generateRunnerJitconfigForOrg: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/actions/runners/generate-jitconfig"]["parameters"]; + response: Endpoints["POST /orgs/{org}/actions/runners/generate-jitconfig"]["response"]; + }; + generateRunnerJitconfigForRepo: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"]["response"]; + }; + getActionsCacheList: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/caches"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/caches"]["response"]; + }; + getActionsCacheUsage: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/cache/usage"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/cache/usage"]["response"]; + }; + getActionsCacheUsageByRepoForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/cache/usage-by-repository"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/cache/usage-by-repository"]["response"]; + }; + getActionsCacheUsageForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/cache/usage"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/cache/usage"]["response"]; + }; + getAllowedActionsOrganization: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/permissions/selected-actions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/permissions/selected-actions"]["response"]; + }; + getAllowedActionsRepository: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"]["response"]; + }; + getArtifact: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"]["response"]; + }; + getCustomOidcSubClaimForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"]["response"]; + }; + getEnvironmentPublicKey: { + parameters: RequestParameters & Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"]["parameters"]; + response: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"]["response"]; + }; + getEnvironmentSecret: { + parameters: RequestParameters & Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"]["parameters"]; + response: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"]["response"]; + }; + getEnvironmentVariable: { + parameters: RequestParameters & Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}"]["parameters"]; + response: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}"]["response"]; + }; + getGithubActionsDefaultWorkflowPermissionsOrganization: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/permissions/workflow"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/permissions/workflow"]["response"]; + }; + getGithubActionsDefaultWorkflowPermissionsRepository: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/permissions/workflow"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/permissions/workflow"]["response"]; + }; + getGithubActionsPermissionsOrganization: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/permissions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/permissions"]["response"]; + }; + getGithubActionsPermissionsRepository: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/permissions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/permissions"]["response"]; + }; + getJobForWorkflowRun: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"]["response"]; + }; + getOrgPublicKey: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/secrets/public-key"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/secrets/public-key"]["response"]; + }; + getOrgSecret: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}"]["response"]; + }; + getOrgVariable: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/variables/{name}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/variables/{name}"]["response"]; + }; + getPendingDeploymentsForRun: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"]["response"]; + }; + getRepoPermissions: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/permissions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/permissions"]["response"]; + }; + getRepoPublicKey: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/secrets/public-key"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/secrets/public-key"]["response"]; + }; + getRepoSecret: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"]["response"]; + }; + getRepoVariable: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/variables/{name}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/variables/{name}"]["response"]; + }; + getReviewsForRun: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"]["response"]; + }; + getSelfHostedRunnerForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/runners/{runner_id}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runners/{runner_id}"]["response"]; + }; + getSelfHostedRunnerForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"]["response"]; + }; + getWorkflow: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"]["response"]; + }; + getWorkflowAccessToRepository: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/permissions/access"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/permissions/access"]["response"]; + }; + getWorkflowRun: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}"]["response"]; + }; + getWorkflowRunAttempt: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"]["response"]; + }; + getWorkflowRunUsage: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"]["response"]; + }; + getWorkflowUsage: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"]["response"]; + }; + listArtifactsForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/artifacts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts"]["response"]; + }; + listEnvironmentSecrets: { + parameters: RequestParameters & Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets"]["parameters"]; + response: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets"]["response"]; + }; + listEnvironmentVariables: { + parameters: RequestParameters & Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/variables"]["parameters"]; + response: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/variables"]["response"]; + }; + listJobsForWorkflowRun: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"]["response"]; + }; + listJobsForWorkflowRunAttempt: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"]["response"]; + }; + listLabelsForSelfHostedRunnerForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/runners/{runner_id}/labels"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runners/{runner_id}/labels"]["response"]; + }; + listLabelsForSelfHostedRunnerForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"]["response"]; + }; + listOrgSecrets: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/secrets"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/secrets"]["response"]; + }; + listOrgVariables: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/variables"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/variables"]["response"]; + }; + listRepoOrganizationSecrets: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/organization-secrets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/organization-secrets"]["response"]; + }; + listRepoOrganizationVariables: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/organization-variables"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/organization-variables"]["response"]; + }; + listRepoSecrets: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/secrets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/secrets"]["response"]; + }; + listRepoVariables: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/variables"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/variables"]["response"]; + }; + listRepoWorkflows: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/workflows"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows"]["response"]; + }; + listRunnerApplicationsForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/runners/downloads"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runners/downloads"]["response"]; + }; + listRunnerApplicationsForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runners/downloads"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners/downloads"]["response"]; + }; + listSelectedReposForOrgSecret: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"]["response"]; + }; + listSelectedReposForOrgVariable: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/variables/{name}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/variables/{name}/repositories"]["response"]; + }; + listSelectedRepositoriesEnabledGithubActionsOrganization: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/permissions/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/permissions/repositories"]["response"]; + }; + listSelfHostedRunnersForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/runners"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runners"]["response"]; + }; + listSelfHostedRunnersForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runners"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners"]["response"]; + }; + listWorkflowRunArtifacts: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"]["response"]; + }; + listWorkflowRuns: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"]["response"]; + }; + listWorkflowRunsForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/actions/runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs"]["response"]; + }; + reRunJobForWorkflowRun: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"]["response"]; + }; + reRunWorkflow: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"]["response"]; + }; + reRunWorkflowFailedJobs: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"]["response"]; + }; + removeAllCustomLabelsFromSelfHostedRunnerForOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"]["response"]; + }; + removeAllCustomLabelsFromSelfHostedRunnerForRepo: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"]["response"]; + }; + removeCustomLabelFromSelfHostedRunnerForOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"]["response"]; + }; + removeCustomLabelFromSelfHostedRunnerForRepo: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"]["response"]; + }; + removeSelectedRepoFromOrgSecret: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"]["response"]; + }; + removeSelectedRepoFromOrgVariable: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"]["response"]; + }; + reviewCustomGatesForRun: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"]["response"]; + }; + reviewPendingDeploymentsForRun: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"]["response"]; + }; + setAllowedActionsOrganization: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/actions/permissions/selected-actions"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/actions/permissions/selected-actions"]["response"]; + }; + setAllowedActionsRepository: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"]["response"]; + }; + setCustomLabelsForSelfHostedRunnerForOrg: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/actions/runners/{runner_id}/labels"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/actions/runners/{runner_id}/labels"]["response"]; + }; + setCustomLabelsForSelfHostedRunnerForRepo: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"]["response"]; + }; + setCustomOidcSubClaimForRepo: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"]["response"]; + }; + setGithubActionsDefaultWorkflowPermissionsOrganization: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/actions/permissions/workflow"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/actions/permissions/workflow"]["response"]; + }; + setGithubActionsDefaultWorkflowPermissionsRepository: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/actions/permissions/workflow"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/permissions/workflow"]["response"]; + }; + setGithubActionsPermissionsOrganization: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/actions/permissions"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/actions/permissions"]["response"]; + }; + setGithubActionsPermissionsRepository: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/actions/permissions"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/permissions"]["response"]; + }; + setSelectedReposForOrgSecret: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"]["response"]; + }; + setSelectedReposForOrgVariable: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/actions/variables/{name}/repositories"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/actions/variables/{name}/repositories"]["response"]; + }; + setSelectedRepositoriesEnabledGithubActionsOrganization: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/actions/permissions/repositories"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/actions/permissions/repositories"]["response"]; + }; + setWorkflowAccessToRepository: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/actions/permissions/access"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/permissions/access"]["response"]; + }; + updateEnvironmentVariable: { + parameters: RequestParameters & Endpoints["PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}"]["parameters"]; + response: Endpoints["PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}"]["response"]; + }; + updateOrgVariable: { + parameters: RequestParameters & Endpoints["PATCH /orgs/{org}/actions/variables/{name}"]["parameters"]; + response: Endpoints["PATCH /orgs/{org}/actions/variables/{name}"]["response"]; + }; + updateRepoVariable: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]["response"]; + }; + }; + activity: { + checkRepoIsStarredByAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/starred/{owner}/{repo}"]["parameters"]; + response: Endpoints["GET /user/starred/{owner}/{repo}"]["response"]; + }; + deleteRepoSubscription: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/subscription"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/subscription"]["response"]; + }; + deleteThreadSubscription: { + parameters: RequestParameters & Endpoints["DELETE /notifications/threads/{thread_id}/subscription"]["parameters"]; + response: Endpoints["DELETE /notifications/threads/{thread_id}/subscription"]["response"]; + }; + getFeeds: { + parameters: RequestParameters & Endpoints["GET /feeds"]["parameters"]; + response: Endpoints["GET /feeds"]["response"]; + }; + getRepoSubscription: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/subscription"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/subscription"]["response"]; + }; + getThread: { + parameters: RequestParameters & Endpoints["GET /notifications/threads/{thread_id}"]["parameters"]; + response: Endpoints["GET /notifications/threads/{thread_id}"]["response"]; + }; + getThreadSubscriptionForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /notifications/threads/{thread_id}/subscription"]["parameters"]; + response: Endpoints["GET /notifications/threads/{thread_id}/subscription"]["response"]; + }; + listEventsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/events"]["parameters"]; + response: Endpoints["GET /users/{username}/events"]["response"]; + }; + listNotificationsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /notifications"]["parameters"]; + response: Endpoints["GET /notifications"]["response"]; + }; + listOrgEventsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/events/orgs/{org}"]["parameters"]; + response: Endpoints["GET /users/{username}/events/orgs/{org}"]["response"]; + }; + listPublicEvents: { + parameters: RequestParameters & Endpoints["GET /events"]["parameters"]; + response: Endpoints["GET /events"]["response"]; + }; + listPublicEventsForRepoNetwork: { + parameters: RequestParameters & Endpoints["GET /networks/{owner}/{repo}/events"]["parameters"]; + response: Endpoints["GET /networks/{owner}/{repo}/events"]["response"]; + }; + listPublicEventsForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/events/public"]["parameters"]; + response: Endpoints["GET /users/{username}/events/public"]["response"]; + }; + listPublicOrgEvents: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/events"]["parameters"]; + response: Endpoints["GET /orgs/{org}/events"]["response"]; + }; + listReceivedEventsForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/received_events"]["parameters"]; + response: Endpoints["GET /users/{username}/received_events"]["response"]; + }; + listReceivedPublicEventsForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/received_events/public"]["parameters"]; + response: Endpoints["GET /users/{username}/received_events/public"]["response"]; + }; + listRepoEvents: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/events"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/events"]["response"]; + }; + listRepoNotificationsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/notifications"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/notifications"]["response"]; + }; + listReposStarredByAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/starred"]["parameters"]; + response: Endpoints["GET /user/starred"]["response"]; + }; + listReposStarredByUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/starred"]["parameters"]; + response: Endpoints["GET /users/{username}/starred"]["response"]; + }; + listReposWatchedByUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/subscriptions"]["parameters"]; + response: Endpoints["GET /users/{username}/subscriptions"]["response"]; + }; + listStargazersForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/stargazers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/stargazers"]["response"]; + }; + listWatchedReposForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/subscriptions"]["parameters"]; + response: Endpoints["GET /user/subscriptions"]["response"]; + }; + listWatchersForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/subscribers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/subscribers"]["response"]; + }; + markNotificationsAsRead: { + parameters: RequestParameters & Endpoints["PUT /notifications"]["parameters"]; + response: Endpoints["PUT /notifications"]["response"]; + }; + markRepoNotificationsAsRead: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/notifications"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/notifications"]["response"]; + }; + markThreadAsDone: { + parameters: RequestParameters & Endpoints["DELETE /notifications/threads/{thread_id}"]["parameters"]; + response: Endpoints["DELETE /notifications/threads/{thread_id}"]["response"]; + }; + markThreadAsRead: { + parameters: RequestParameters & Endpoints["PATCH /notifications/threads/{thread_id}"]["parameters"]; + response: Endpoints["PATCH /notifications/threads/{thread_id}"]["response"]; + }; + setRepoSubscription: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/subscription"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/subscription"]["response"]; + }; + setThreadSubscription: { + parameters: RequestParameters & Endpoints["PUT /notifications/threads/{thread_id}/subscription"]["parameters"]; + response: Endpoints["PUT /notifications/threads/{thread_id}/subscription"]["response"]; + }; + starRepoForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["PUT /user/starred/{owner}/{repo}"]["parameters"]; + response: Endpoints["PUT /user/starred/{owner}/{repo}"]["response"]; + }; + unstarRepoForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/starred/{owner}/{repo}"]["parameters"]; + response: Endpoints["DELETE /user/starred/{owner}/{repo}"]["response"]; + }; + }; + apps: { + addRepoToInstallation: { + parameters: RequestParameters & Endpoints["PUT /user/installations/{installation_id}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["PUT /user/installations/{installation_id}/repositories/{repository_id}"]["response"]; + }; + addRepoToInstallationForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["PUT /user/installations/{installation_id}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["PUT /user/installations/{installation_id}/repositories/{repository_id}"]["response"]; + }; + checkToken: { + parameters: RequestParameters & Endpoints["POST /applications/{client_id}/token"]["parameters"]; + response: Endpoints["POST /applications/{client_id}/token"]["response"]; + }; + createFromManifest: { + parameters: RequestParameters & Endpoints["POST /app-manifests/{code}/conversions"]["parameters"]; + response: Endpoints["POST /app-manifests/{code}/conversions"]["response"]; + }; + createInstallationAccessToken: { + parameters: RequestParameters & Endpoints["POST /app/installations/{installation_id}/access_tokens"]["parameters"]; + response: Endpoints["POST /app/installations/{installation_id}/access_tokens"]["response"]; + }; + deleteAuthorization: { + parameters: RequestParameters & Endpoints["DELETE /applications/{client_id}/grant"]["parameters"]; + response: Endpoints["DELETE /applications/{client_id}/grant"]["response"]; + }; + deleteInstallation: { + parameters: RequestParameters & Endpoints["DELETE /app/installations/{installation_id}"]["parameters"]; + response: Endpoints["DELETE /app/installations/{installation_id}"]["response"]; + }; + deleteToken: { + parameters: RequestParameters & Endpoints["DELETE /applications/{client_id}/token"]["parameters"]; + response: Endpoints["DELETE /applications/{client_id}/token"]["response"]; + }; + getAuthenticated: { + parameters: RequestParameters & Endpoints["GET /app"]["parameters"]; + response: Endpoints["GET /app"]["response"]; + }; + getBySlug: { + parameters: RequestParameters & Endpoints["GET /apps/{app_slug}"]["parameters"]; + response: Endpoints["GET /apps/{app_slug}"]["response"]; + }; + getInstallation: { + parameters: RequestParameters & Endpoints["GET /app/installations/{installation_id}"]["parameters"]; + response: Endpoints["GET /app/installations/{installation_id}"]["response"]; + }; + getOrgInstallation: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/installation"]["parameters"]; + response: Endpoints["GET /orgs/{org}/installation"]["response"]; + }; + getRepoInstallation: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/installation"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/installation"]["response"]; + }; + getSubscriptionPlanForAccount: { + parameters: RequestParameters & Endpoints["GET /marketplace_listing/accounts/{account_id}"]["parameters"]; + response: Endpoints["GET /marketplace_listing/accounts/{account_id}"]["response"]; + }; + getSubscriptionPlanForAccountStubbed: { + parameters: RequestParameters & Endpoints["GET /marketplace_listing/stubbed/accounts/{account_id}"]["parameters"]; + response: Endpoints["GET /marketplace_listing/stubbed/accounts/{account_id}"]["response"]; + }; + getUserInstallation: { + parameters: RequestParameters & Endpoints["GET /users/{username}/installation"]["parameters"]; + response: Endpoints["GET /users/{username}/installation"]["response"]; + }; + getWebhookConfigForApp: { + parameters: RequestParameters & Endpoints["GET /app/hook/config"]["parameters"]; + response: Endpoints["GET /app/hook/config"]["response"]; + }; + getWebhookDelivery: { + parameters: RequestParameters & Endpoints["GET /app/hook/deliveries/{delivery_id}"]["parameters"]; + response: Endpoints["GET /app/hook/deliveries/{delivery_id}"]["response"]; + }; + listAccountsForPlan: { + parameters: RequestParameters & Endpoints["GET /marketplace_listing/plans/{plan_id}/accounts"]["parameters"]; + response: Endpoints["GET /marketplace_listing/plans/{plan_id}/accounts"]["response"]; + }; + listAccountsForPlanStubbed: { + parameters: RequestParameters & Endpoints["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"]["parameters"]; + response: Endpoints["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"]["response"]; + }; + listInstallationReposForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/installations/{installation_id}/repositories"]["parameters"]; + response: Endpoints["GET /user/installations/{installation_id}/repositories"]["response"]; + }; + listInstallationRequestsForAuthenticatedApp: { + parameters: RequestParameters & Endpoints["GET /app/installation-requests"]["parameters"]; + response: Endpoints["GET /app/installation-requests"]["response"]; + }; + listInstallations: { + parameters: RequestParameters & Endpoints["GET /app/installations"]["parameters"]; + response: Endpoints["GET /app/installations"]["response"]; + }; + listInstallationsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/installations"]["parameters"]; + response: Endpoints["GET /user/installations"]["response"]; + }; + listPlans: { + parameters: RequestParameters & Endpoints["GET /marketplace_listing/plans"]["parameters"]; + response: Endpoints["GET /marketplace_listing/plans"]["response"]; + }; + listPlansStubbed: { + parameters: RequestParameters & Endpoints["GET /marketplace_listing/stubbed/plans"]["parameters"]; + response: Endpoints["GET /marketplace_listing/stubbed/plans"]["response"]; + }; + listReposAccessibleToInstallation: { + parameters: RequestParameters & Endpoints["GET /installation/repositories"]["parameters"]; + response: Endpoints["GET /installation/repositories"]["response"]; + }; + listSubscriptionsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/marketplace_purchases"]["parameters"]; + response: Endpoints["GET /user/marketplace_purchases"]["response"]; + }; + listSubscriptionsForAuthenticatedUserStubbed: { + parameters: RequestParameters & Endpoints["GET /user/marketplace_purchases/stubbed"]["parameters"]; + response: Endpoints["GET /user/marketplace_purchases/stubbed"]["response"]; + }; + listWebhookDeliveries: { + parameters: RequestParameters & Endpoints["GET /app/hook/deliveries"]["parameters"]; + response: Endpoints["GET /app/hook/deliveries"]["response"]; + }; + redeliverWebhookDelivery: { + parameters: RequestParameters & Endpoints["POST /app/hook/deliveries/{delivery_id}/attempts"]["parameters"]; + response: Endpoints["POST /app/hook/deliveries/{delivery_id}/attempts"]["response"]; + }; + removeRepoFromInstallation: { + parameters: RequestParameters & Endpoints["DELETE /user/installations/{installation_id}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["DELETE /user/installations/{installation_id}/repositories/{repository_id}"]["response"]; + }; + removeRepoFromInstallationForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/installations/{installation_id}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["DELETE /user/installations/{installation_id}/repositories/{repository_id}"]["response"]; + }; + resetToken: { + parameters: RequestParameters & Endpoints["PATCH /applications/{client_id}/token"]["parameters"]; + response: Endpoints["PATCH /applications/{client_id}/token"]["response"]; + }; + revokeInstallationAccessToken: { + parameters: RequestParameters & Endpoints["DELETE /installation/token"]["parameters"]; + response: Endpoints["DELETE /installation/token"]["response"]; + }; + scopeToken: { + parameters: RequestParameters & Endpoints["POST /applications/{client_id}/token/scoped"]["parameters"]; + response: Endpoints["POST /applications/{client_id}/token/scoped"]["response"]; + }; + suspendInstallation: { + parameters: RequestParameters & Endpoints["PUT /app/installations/{installation_id}/suspended"]["parameters"]; + response: Endpoints["PUT /app/installations/{installation_id}/suspended"]["response"]; + }; + unsuspendInstallation: { + parameters: RequestParameters & Endpoints["DELETE /app/installations/{installation_id}/suspended"]["parameters"]; + response: Endpoints["DELETE /app/installations/{installation_id}/suspended"]["response"]; + }; + updateWebhookConfigForApp: { + parameters: RequestParameters & Endpoints["PATCH /app/hook/config"]["parameters"]; + response: Endpoints["PATCH /app/hook/config"]["response"]; + }; + }; + billing: { + getGithubActionsBillingOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/settings/billing/actions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/settings/billing/actions"]["response"]; + }; + getGithubActionsBillingUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/settings/billing/actions"]["parameters"]; + response: Endpoints["GET /users/{username}/settings/billing/actions"]["response"]; + }; + getGithubPackagesBillingOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/settings/billing/packages"]["parameters"]; + response: Endpoints["GET /orgs/{org}/settings/billing/packages"]["response"]; + }; + getGithubPackagesBillingUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/settings/billing/packages"]["parameters"]; + response: Endpoints["GET /users/{username}/settings/billing/packages"]["response"]; + }; + getSharedStorageBillingOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/settings/billing/shared-storage"]["parameters"]; + response: Endpoints["GET /orgs/{org}/settings/billing/shared-storage"]["response"]; + }; + getSharedStorageBillingUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/settings/billing/shared-storage"]["parameters"]; + response: Endpoints["GET /users/{username}/settings/billing/shared-storage"]["response"]; + }; + }; + checks: { + create: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/check-runs"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/check-runs"]["response"]; + }; + createSuite: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/check-suites"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/check-suites"]["response"]; + }; + get: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"]["response"]; + }; + getSuite: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"]["response"]; + }; + listAnnotations: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"]["response"]; + }; + listForRef: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"]["response"]; + }; + listForSuite: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"]["response"]; + }; + listSuitesForRef: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"]["response"]; + }; + rerequestRun: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"]["response"]; + }; + rerequestSuite: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"]["response"]; + }; + setSuitesPreferences: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/check-suites/preferences"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/check-suites/preferences"]["response"]; + }; + update: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]["response"]; + }; + }; + codeScanning: { + deleteAnalysis: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"]["response"]; + }; + getAlert: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"]["response"]; + }; + getAnalysis: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"]["response"]; + }; + getCodeqlDatabase: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"]["response"]; + }; + getDefaultSetup: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/code-scanning/default-setup"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/default-setup"]["response"]; + }; + getSarif: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"]["response"]; + }; + listAlertInstances: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"]["response"]; + }; + listAlertsForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/code-scanning/alerts"]["parameters"]; + response: Endpoints["GET /orgs/{org}/code-scanning/alerts"]["response"]; + }; + listAlertsForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts"]["response"]; + }; + listAlertsInstances: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"]["response"]; + }; + listCodeqlDatabases: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"]["response"]; + }; + listRecentAnalyses: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/code-scanning/analyses"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/analyses"]["response"]; + }; + updateAlert: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"]["response"]; + }; + updateDefaultSetup: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"]["response"]; + }; + uploadSarif: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/code-scanning/sarifs"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/code-scanning/sarifs"]["response"]; + }; + }; + codesOfConduct: { + getAllCodesOfConduct: { + parameters: RequestParameters & Endpoints["GET /codes_of_conduct"]["parameters"]; + response: Endpoints["GET /codes_of_conduct"]["response"]; + }; + getConductCode: { + parameters: RequestParameters & Endpoints["GET /codes_of_conduct/{key}"]["parameters"]; + response: Endpoints["GET /codes_of_conduct/{key}"]["response"]; + }; + }; + codespaces: { + addRepositoryForSecretForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"]["response"]; + }; + addSelectedRepoToOrgSecret: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"]["response"]; + }; + checkPermissionsForDevcontainer: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/codespaces/permissions_check"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces/permissions_check"]["response"]; + }; + codespaceMachinesForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/codespaces/{codespace_name}/machines"]["parameters"]; + response: Endpoints["GET /user/codespaces/{codespace_name}/machines"]["response"]; + }; + createForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/codespaces"]["parameters"]; + response: Endpoints["POST /user/codespaces"]["response"]; + }; + createOrUpdateOrgSecret: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/codespaces/secrets/{secret_name}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/codespaces/secrets/{secret_name}"]["response"]; + }; + createOrUpdateRepoSecret: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"]["response"]; + }; + createOrUpdateSecretForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["PUT /user/codespaces/secrets/{secret_name}"]["parameters"]; + response: Endpoints["PUT /user/codespaces/secrets/{secret_name}"]["response"]; + }; + createWithPrForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"]["response"]; + }; + createWithRepoForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/codespaces"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/codespaces"]["response"]; + }; + deleteForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/codespaces/{codespace_name}"]["parameters"]; + response: Endpoints["DELETE /user/codespaces/{codespace_name}"]["response"]; + }; + deleteFromOrganization: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"]["response"]; + }; + deleteOrgSecret: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"]["response"]; + }; + deleteRepoSecret: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"]["response"]; + }; + deleteSecretForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/codespaces/secrets/{secret_name}"]["parameters"]; + response: Endpoints["DELETE /user/codespaces/secrets/{secret_name}"]["response"]; + }; + exportForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/codespaces/{codespace_name}/exports"]["parameters"]; + response: Endpoints["POST /user/codespaces/{codespace_name}/exports"]["response"]; + }; + getCodespacesForUserInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/members/{username}/codespaces"]["parameters"]; + response: Endpoints["GET /orgs/{org}/members/{username}/codespaces"]["response"]; + }; + getExportDetailsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/codespaces/{codespace_name}/exports/{export_id}"]["parameters"]; + response: Endpoints["GET /user/codespaces/{codespace_name}/exports/{export_id}"]["response"]; + }; + getForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/codespaces/{codespace_name}"]["parameters"]; + response: Endpoints["GET /user/codespaces/{codespace_name}"]["response"]; + }; + getOrgPublicKey: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/codespaces/secrets/public-key"]["parameters"]; + response: Endpoints["GET /orgs/{org}/codespaces/secrets/public-key"]["response"]; + }; + getOrgSecret: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/codespaces/secrets/{secret_name}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/codespaces/secrets/{secret_name}"]["response"]; + }; + getPublicKeyForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/codespaces/secrets/public-key"]["parameters"]; + response: Endpoints["GET /user/codespaces/secrets/public-key"]["response"]; + }; + getRepoPublicKey: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"]["response"]; + }; + getRepoSecret: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"]["response"]; + }; + getSecretForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/codespaces/secrets/{secret_name}"]["parameters"]; + response: Endpoints["GET /user/codespaces/secrets/{secret_name}"]["response"]; + }; + listDevcontainersInRepositoryForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/codespaces/devcontainers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces/devcontainers"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/codespaces"]["parameters"]; + response: Endpoints["GET /user/codespaces"]["response"]; + }; + listInOrganization: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/codespaces"]["parameters"]; + response: Endpoints["GET /orgs/{org}/codespaces"]["response"]; + }; + listInRepositoryForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/codespaces"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces"]["response"]; + }; + listOrgSecrets: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/codespaces/secrets"]["parameters"]; + response: Endpoints["GET /orgs/{org}/codespaces/secrets"]["response"]; + }; + listRepoSecrets: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/codespaces/secrets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces/secrets"]["response"]; + }; + listRepositoriesForSecretForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/codespaces/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["GET /user/codespaces/secrets/{secret_name}/repositories"]["response"]; + }; + listSecretsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/codespaces/secrets"]["parameters"]; + response: Endpoints["GET /user/codespaces/secrets"]["response"]; + }; + listSelectedReposForOrgSecret: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"]["response"]; + }; + preFlightWithRepoForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/codespaces/new"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces/new"]["response"]; + }; + publishForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/codespaces/{codespace_name}/publish"]["parameters"]; + response: Endpoints["POST /user/codespaces/{codespace_name}/publish"]["response"]; + }; + removeRepositoryForSecretForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"]["response"]; + }; + removeSelectedRepoFromOrgSecret: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"]["response"]; + }; + repoMachinesForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/codespaces/machines"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces/machines"]["response"]; + }; + setRepositoriesForSecretForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["PUT /user/codespaces/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["PUT /user/codespaces/secrets/{secret_name}/repositories"]["response"]; + }; + setSelectedReposForOrgSecret: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"]["response"]; + }; + startForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/codespaces/{codespace_name}/start"]["parameters"]; + response: Endpoints["POST /user/codespaces/{codespace_name}/start"]["response"]; + }; + stopForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/codespaces/{codespace_name}/stop"]["parameters"]; + response: Endpoints["POST /user/codespaces/{codespace_name}/stop"]["response"]; + }; + stopInOrganization: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"]["parameters"]; + response: Endpoints["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"]["response"]; + }; + updateForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["PATCH /user/codespaces/{codespace_name}"]["parameters"]; + response: Endpoints["PATCH /user/codespaces/{codespace_name}"]["response"]; + }; + }; + copilot: { + addCopilotSeatsForTeams: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/copilot/billing/selected_teams"]["parameters"]; + response: Endpoints["POST /orgs/{org}/copilot/billing/selected_teams"]["response"]; + }; + addCopilotSeatsForUsers: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/copilot/billing/selected_users"]["parameters"]; + response: Endpoints["POST /orgs/{org}/copilot/billing/selected_users"]["response"]; + }; + cancelCopilotSeatAssignmentForTeams: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/copilot/billing/selected_teams"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/copilot/billing/selected_teams"]["response"]; + }; + cancelCopilotSeatAssignmentForUsers: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/copilot/billing/selected_users"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/copilot/billing/selected_users"]["response"]; + }; + getCopilotOrganizationDetails: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/copilot/billing"]["parameters"]; + response: Endpoints["GET /orgs/{org}/copilot/billing"]["response"]; + }; + getCopilotSeatDetailsForUser: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/members/{username}/copilot"]["parameters"]; + response: Endpoints["GET /orgs/{org}/members/{username}/copilot"]["response"]; + }; + listCopilotSeats: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/copilot/billing/seats"]["parameters"]; + response: Endpoints["GET /orgs/{org}/copilot/billing/seats"]["response"]; + }; + }; + dependabot: { + addSelectedRepoToOrgSecret: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"]["response"]; + }; + createOrUpdateOrgSecret: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/dependabot/secrets/{secret_name}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/dependabot/secrets/{secret_name}"]["response"]; + }; + createOrUpdateRepoSecret: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"]["response"]; + }; + deleteOrgSecret: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"]["response"]; + }; + deleteRepoSecret: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"]["response"]; + }; + getAlert: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]["response"]; + }; + getOrgPublicKey: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/dependabot/secrets/public-key"]["parameters"]; + response: Endpoints["GET /orgs/{org}/dependabot/secrets/public-key"]["response"]; + }; + getOrgSecret: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/dependabot/secrets/{secret_name}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/dependabot/secrets/{secret_name}"]["response"]; + }; + getRepoPublicKey: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"]["response"]; + }; + getRepoSecret: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"]["response"]; + }; + listAlertsForEnterprise: { + parameters: RequestParameters & Endpoints["GET /enterprises/{enterprise}/dependabot/alerts"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/dependabot/alerts"]["response"]; + }; + listAlertsForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/dependabot/alerts"]["parameters"]; + response: Endpoints["GET /orgs/{org}/dependabot/alerts"]["response"]; + }; + listAlertsForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/dependabot/alerts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/dependabot/alerts"]["response"]; + }; + listOrgSecrets: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/dependabot/secrets"]["parameters"]; + response: Endpoints["GET /orgs/{org}/dependabot/secrets"]["response"]; + }; + listRepoSecrets: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/dependabot/secrets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/dependabot/secrets"]["response"]; + }; + listSelectedReposForOrgSecret: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"]["response"]; + }; + removeSelectedRepoFromOrgSecret: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"]["response"]; + }; + setSelectedReposForOrgSecret: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"]["response"]; + }; + updateAlert: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]["response"]; + }; + }; + dependencyGraph: { + createRepositorySnapshot: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/dependency-graph/snapshots"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/dependency-graph/snapshots"]["response"]; + }; + diffRange: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"]["response"]; + }; + exportSbom: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/dependency-graph/sbom"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/dependency-graph/sbom"]["response"]; + }; + }; + emojis: { + get: { + parameters: RequestParameters & Endpoints["GET /emojis"]["parameters"]; + response: Endpoints["GET /emojis"]["response"]; + }; + }; + gists: { + checkIsStarred: { + parameters: RequestParameters & Endpoints["GET /gists/{gist_id}/star"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/star"]["response"]; + }; + create: { + parameters: RequestParameters & Endpoints["POST /gists"]["parameters"]; + response: Endpoints["POST /gists"]["response"]; + }; + createComment: { + parameters: RequestParameters & Endpoints["POST /gists/{gist_id}/comments"]["parameters"]; + response: Endpoints["POST /gists/{gist_id}/comments"]["response"]; + }; + delete: { + parameters: RequestParameters & Endpoints["DELETE /gists/{gist_id}"]["parameters"]; + response: Endpoints["DELETE /gists/{gist_id}"]["response"]; + }; + deleteComment: { + parameters: RequestParameters & Endpoints["DELETE /gists/{gist_id}/comments/{comment_id}"]["parameters"]; + response: Endpoints["DELETE /gists/{gist_id}/comments/{comment_id}"]["response"]; + }; + fork: { + parameters: RequestParameters & Endpoints["POST /gists/{gist_id}/forks"]["parameters"]; + response: Endpoints["POST /gists/{gist_id}/forks"]["response"]; + }; + get: { + parameters: RequestParameters & Endpoints["GET /gists/{gist_id}"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}"]["response"]; + }; + getComment: { + parameters: RequestParameters & Endpoints["GET /gists/{gist_id}/comments/{comment_id}"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/comments/{comment_id}"]["response"]; + }; + getRevision: { + parameters: RequestParameters & Endpoints["GET /gists/{gist_id}/{sha}"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/{sha}"]["response"]; + }; + list: { + parameters: RequestParameters & Endpoints["GET /gists"]["parameters"]; + response: Endpoints["GET /gists"]["response"]; + }; + listComments: { + parameters: RequestParameters & Endpoints["GET /gists/{gist_id}/comments"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/comments"]["response"]; + }; + listCommits: { + parameters: RequestParameters & Endpoints["GET /gists/{gist_id}/commits"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/commits"]["response"]; + }; + listForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/gists"]["parameters"]; + response: Endpoints["GET /users/{username}/gists"]["response"]; + }; + listForks: { + parameters: RequestParameters & Endpoints["GET /gists/{gist_id}/forks"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/forks"]["response"]; + }; + listPublic: { + parameters: RequestParameters & Endpoints["GET /gists/public"]["parameters"]; + response: Endpoints["GET /gists/public"]["response"]; + }; + listStarred: { + parameters: RequestParameters & Endpoints["GET /gists/starred"]["parameters"]; + response: Endpoints["GET /gists/starred"]["response"]; + }; + star: { + parameters: RequestParameters & Endpoints["PUT /gists/{gist_id}/star"]["parameters"]; + response: Endpoints["PUT /gists/{gist_id}/star"]["response"]; + }; + unstar: { + parameters: RequestParameters & Endpoints["DELETE /gists/{gist_id}/star"]["parameters"]; + response: Endpoints["DELETE /gists/{gist_id}/star"]["response"]; + }; + update: { + parameters: RequestParameters & Endpoints["PATCH /gists/{gist_id}"]["parameters"]; + response: Endpoints["PATCH /gists/{gist_id}"]["response"]; + }; + updateComment: { + parameters: RequestParameters & Endpoints["PATCH /gists/{gist_id}/comments/{comment_id}"]["parameters"]; + response: Endpoints["PATCH /gists/{gist_id}/comments/{comment_id}"]["response"]; + }; + }; + git: { + createBlob: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/git/blobs"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/git/blobs"]["response"]; + }; + createCommit: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/git/commits"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/git/commits"]["response"]; + }; + createRef: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/git/refs"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/git/refs"]["response"]; + }; + createTag: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/git/tags"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/git/tags"]["response"]; + }; + createTree: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/git/trees"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/git/trees"]["response"]; + }; + deleteRef: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/git/refs/{ref}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/git/refs/{ref}"]["response"]; + }; + getBlob: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"]["response"]; + }; + getCommit: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"]["response"]; + }; + getRef: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/git/ref/{ref}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/git/ref/{ref}"]["response"]; + }; + getTag: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"]["response"]; + }; + getTree: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"]["response"]; + }; + listMatchingRefs: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"]["response"]; + }; + updateRef: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]["response"]; + }; + }; + gitignore: { + getAllTemplates: { + parameters: RequestParameters & Endpoints["GET /gitignore/templates"]["parameters"]; + response: Endpoints["GET /gitignore/templates"]["response"]; + }; + getTemplate: { + parameters: RequestParameters & Endpoints["GET /gitignore/templates/{name}"]["parameters"]; + response: Endpoints["GET /gitignore/templates/{name}"]["response"]; + }; + }; + interactions: { + getRestrictionsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/interaction-limits"]["parameters"]; + response: Endpoints["GET /user/interaction-limits"]["response"]; + }; + getRestrictionsForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/interaction-limits"]["parameters"]; + response: Endpoints["GET /orgs/{org}/interaction-limits"]["response"]; + }; + getRestrictionsForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/interaction-limits"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/interaction-limits"]["response"]; + }; + getRestrictionsForYourPublicRepos: { + parameters: RequestParameters & Endpoints["GET /user/interaction-limits"]["parameters"]; + response: Endpoints["GET /user/interaction-limits"]["response"]; + }; + removeRestrictionsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/interaction-limits"]["parameters"]; + response: Endpoints["DELETE /user/interaction-limits"]["response"]; + }; + removeRestrictionsForOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/interaction-limits"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/interaction-limits"]["response"]; + }; + removeRestrictionsForRepo: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/interaction-limits"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/interaction-limits"]["response"]; + }; + removeRestrictionsForYourPublicRepos: { + parameters: RequestParameters & Endpoints["DELETE /user/interaction-limits"]["parameters"]; + response: Endpoints["DELETE /user/interaction-limits"]["response"]; + }; + setRestrictionsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["PUT /user/interaction-limits"]["parameters"]; + response: Endpoints["PUT /user/interaction-limits"]["response"]; + }; + setRestrictionsForOrg: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/interaction-limits"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/interaction-limits"]["response"]; + }; + setRestrictionsForRepo: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/interaction-limits"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/interaction-limits"]["response"]; + }; + setRestrictionsForYourPublicRepos: { + parameters: RequestParameters & Endpoints["PUT /user/interaction-limits"]["parameters"]; + response: Endpoints["PUT /user/interaction-limits"]["response"]; + }; + }; + issues: { + addAssignees: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"]["response"]; + }; + addLabels: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + checkUserCanBeAssigned: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/assignees/{assignee}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/assignees/{assignee}"]["response"]; + }; + checkUserCanBeAssignedToIssue: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"]["response"]; + }; + create: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/issues"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/issues"]["response"]; + }; + createComment: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"]["response"]; + }; + createLabel: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/labels"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/labels"]["response"]; + }; + createMilestone: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/milestones"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/milestones"]["response"]; + }; + deleteComment: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"]["response"]; + }; + deleteLabel: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/labels/{name}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/labels/{name}"]["response"]; + }; + deleteMilestone: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"]["response"]; + }; + get: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}"]["response"]; + }; + getComment: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"]["response"]; + }; + getEvent: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/issues/events/{event_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/events/{event_id}"]["response"]; + }; + getLabel: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/labels/{name}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/labels/{name}"]["response"]; + }; + getMilestone: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}"]["response"]; + }; + list: { + parameters: RequestParameters & Endpoints["GET /issues"]["parameters"]; + response: Endpoints["GET /issues"]["response"]; + }; + listAssignees: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/assignees"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/assignees"]["response"]; + }; + listComments: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"]["response"]; + }; + listCommentsForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/issues/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments"]["response"]; + }; + listEvents: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/events"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/events"]["response"]; + }; + listEventsForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/issues/events"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/events"]["response"]; + }; + listEventsForTimeline: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/issues"]["parameters"]; + response: Endpoints["GET /user/issues"]["response"]; + }; + listForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/issues"]["parameters"]; + response: Endpoints["GET /orgs/{org}/issues"]["response"]; + }; + listForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/issues"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues"]["response"]; + }; + listLabelsForMilestone: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"]["response"]; + }; + listLabelsForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/labels"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/labels"]["response"]; + }; + listLabelsOnIssue: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + listMilestones: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/milestones"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/milestones"]["response"]; + }; + lock: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"]["response"]; + }; + removeAllLabels: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + removeAssignees: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"]["response"]; + }; + removeLabel: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"]["response"]; + }; + setLabels: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + unlock: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"]["response"]; + }; + update: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/issues/{issue_number}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/issues/{issue_number}"]["response"]; + }; + updateComment: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"]["response"]; + }; + updateLabel: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/labels/{name}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/labels/{name}"]["response"]; + }; + updateMilestone: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]["response"]; + }; + }; + licenses: { + get: { + parameters: RequestParameters & Endpoints["GET /licenses/{license}"]["parameters"]; + response: Endpoints["GET /licenses/{license}"]["response"]; + }; + getAllCommonlyUsed: { + parameters: RequestParameters & Endpoints["GET /licenses"]["parameters"]; + response: Endpoints["GET /licenses"]["response"]; + }; + getForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/license"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/license"]["response"]; + }; + }; + markdown: { + render: { + parameters: RequestParameters & Endpoints["POST /markdown"]["parameters"]; + response: Endpoints["POST /markdown"]["response"]; + }; + renderRaw: { + parameters: RequestParameters & Endpoints["POST /markdown/raw"]["parameters"]; + response: Endpoints["POST /markdown/raw"]["response"]; + }; + }; + meta: { + get: { + parameters: RequestParameters & Endpoints["GET /meta"]["parameters"]; + response: Endpoints["GET /meta"]["response"]; + }; + getAllVersions: { + parameters: RequestParameters & Endpoints["GET /versions"]["parameters"]; + response: Endpoints["GET /versions"]["response"]; + }; + getOctocat: { + parameters: RequestParameters & Endpoints["GET /octocat"]["parameters"]; + response: Endpoints["GET /octocat"]["response"]; + }; + getZen: { + parameters: RequestParameters & Endpoints["GET /zen"]["parameters"]; + response: Endpoints["GET /zen"]["response"]; + }; + root: { + parameters: RequestParameters & Endpoints["GET /"]["parameters"]; + response: Endpoints["GET /"]["response"]; + }; + }; + migrations: { + cancelImport: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/import"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/import"]["response"]; + }; + deleteArchiveForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/migrations/{migration_id}/archive"]["parameters"]; + response: Endpoints["DELETE /user/migrations/{migration_id}/archive"]["response"]; + }; + deleteArchiveForOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/migrations/{migration_id}/archive"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/migrations/{migration_id}/archive"]["response"]; + }; + downloadArchiveForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/migrations/{migration_id}/archive"]["parameters"]; + response: Endpoints["GET /orgs/{org}/migrations/{migration_id}/archive"]["response"]; + }; + getArchiveForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/migrations/{migration_id}/archive"]["parameters"]; + response: Endpoints["GET /user/migrations/{migration_id}/archive"]["response"]; + }; + getCommitAuthors: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/import/authors"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/import/authors"]["response"]; + }; + getImportStatus: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/import"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/import"]["response"]; + }; + getLargeFiles: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/import/large_files"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/import/large_files"]["response"]; + }; + getStatusForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/migrations/{migration_id}"]["parameters"]; + response: Endpoints["GET /user/migrations/{migration_id}"]["response"]; + }; + getStatusForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/migrations/{migration_id}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/migrations/{migration_id}"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/migrations"]["parameters"]; + response: Endpoints["GET /user/migrations"]["response"]; + }; + listForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/migrations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/migrations"]["response"]; + }; + listReposForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/migrations/{migration_id}/repositories"]["parameters"]; + response: Endpoints["GET /user/migrations/{migration_id}/repositories"]["response"]; + }; + listReposForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/migrations/{migration_id}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/migrations/{migration_id}/repositories"]["response"]; + }; + listReposForUser: { + parameters: RequestParameters & Endpoints["GET /user/migrations/{migration_id}/repositories"]["parameters"]; + response: Endpoints["GET /user/migrations/{migration_id}/repositories"]["response"]; + }; + mapCommitAuthor: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"]["response"]; + }; + setLfsPreference: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/import/lfs"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/import/lfs"]["response"]; + }; + startForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/migrations"]["parameters"]; + response: Endpoints["POST /user/migrations"]["response"]; + }; + startForOrg: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/migrations"]["parameters"]; + response: Endpoints["POST /orgs/{org}/migrations"]["response"]; + }; + startImport: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/import"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/import"]["response"]; + }; + unlockRepoForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"]["parameters"]; + response: Endpoints["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"]["response"]; + }; + unlockRepoForOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]["response"]; + }; + updateImport: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/import"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/import"]["response"]; + }; + }; + oidc: { + getOidcCustomSubTemplateForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/actions/oidc/customization/sub"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/oidc/customization/sub"]["response"]; + }; + updateOidcCustomSubTemplateForOrg: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/actions/oidc/customization/sub"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/actions/oidc/customization/sub"]["response"]; + }; + }; + orgs: { + addSecurityManagerTeam: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/security-managers/teams/{team_slug}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/security-managers/teams/{team_slug}"]["response"]; + }; + assignTeamToOrgRole: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"]["response"]; + }; + assignUserToOrgRole: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"]["response"]; + }; + blockUser: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/blocks/{username}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/blocks/{username}"]["response"]; + }; + cancelInvitation: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/invitations/{invitation_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/invitations/{invitation_id}"]["response"]; + }; + checkBlockedUser: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/blocks/{username}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/blocks/{username}"]["response"]; + }; + checkMembershipForUser: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/members/{username}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/members/{username}"]["response"]; + }; + checkPublicMembershipForUser: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/public_members/{username}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/public_members/{username}"]["response"]; + }; + convertMemberToOutsideCollaborator: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/outside_collaborators/{username}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/outside_collaborators/{username}"]["response"]; + }; + createCustomOrganizationRole: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/organization-roles"]["parameters"]; + response: Endpoints["POST /orgs/{org}/organization-roles"]["response"]; + }; + createInvitation: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/invitations"]["parameters"]; + response: Endpoints["POST /orgs/{org}/invitations"]["response"]; + }; + createOrUpdateCustomProperties: { + parameters: RequestParameters & Endpoints["PATCH /orgs/{org}/properties/schema"]["parameters"]; + response: Endpoints["PATCH /orgs/{org}/properties/schema"]["response"]; + }; + createOrUpdateCustomPropertiesValuesForRepos: { + parameters: RequestParameters & Endpoints["PATCH /orgs/{org}/properties/values"]["parameters"]; + response: Endpoints["PATCH /orgs/{org}/properties/values"]["response"]; + }; + createOrUpdateCustomProperty: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/properties/schema/{custom_property_name}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/properties/schema/{custom_property_name}"]["response"]; + }; + createWebhook: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/hooks"]["parameters"]; + response: Endpoints["POST /orgs/{org}/hooks"]["response"]; + }; + delete: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}"]["response"]; + }; + deleteCustomOrganizationRole: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/organization-roles/{role_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/organization-roles/{role_id}"]["response"]; + }; + deleteWebhook: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/hooks/{hook_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/hooks/{hook_id}"]["response"]; + }; + enableOrDisableSecurityProductOnAllOrgRepos: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/{security_product}/{enablement}"]["parameters"]; + response: Endpoints["POST /orgs/{org}/{security_product}/{enablement}"]["response"]; + }; + get: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}"]["parameters"]; + response: Endpoints["GET /orgs/{org}"]["response"]; + }; + getAllCustomProperties: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/properties/schema"]["parameters"]; + response: Endpoints["GET /orgs/{org}/properties/schema"]["response"]; + }; + getCustomProperty: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/properties/schema/{custom_property_name}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/properties/schema/{custom_property_name}"]["response"]; + }; + getMembershipForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/memberships/orgs/{org}"]["parameters"]; + response: Endpoints["GET /user/memberships/orgs/{org}"]["response"]; + }; + getMembershipForUser: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/memberships/{username}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/memberships/{username}"]["response"]; + }; + getOrgRole: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/organization-roles/{role_id}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/organization-roles/{role_id}"]["response"]; + }; + getWebhook: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/hooks/{hook_id}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/hooks/{hook_id}"]["response"]; + }; + getWebhookConfigForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/hooks/{hook_id}/config"]["parameters"]; + response: Endpoints["GET /orgs/{org}/hooks/{hook_id}/config"]["response"]; + }; + getWebhookDelivery: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"]["response"]; + }; + list: { + parameters: RequestParameters & Endpoints["GET /organizations"]["parameters"]; + response: Endpoints["GET /organizations"]["response"]; + }; + listAppInstallations: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/installations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/installations"]["response"]; + }; + listBlockedUsers: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/blocks"]["parameters"]; + response: Endpoints["GET /orgs/{org}/blocks"]["response"]; + }; + listCustomPropertiesValuesForRepos: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/properties/values"]["parameters"]; + response: Endpoints["GET /orgs/{org}/properties/values"]["response"]; + }; + listFailedInvitations: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/failed_invitations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/failed_invitations"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/orgs"]["parameters"]; + response: Endpoints["GET /user/orgs"]["response"]; + }; + listForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/orgs"]["parameters"]; + response: Endpoints["GET /users/{username}/orgs"]["response"]; + }; + listInvitationTeams: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/invitations/{invitation_id}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/invitations/{invitation_id}/teams"]["response"]; + }; + listMembers: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/members"]["parameters"]; + response: Endpoints["GET /orgs/{org}/members"]["response"]; + }; + listMembershipsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/memberships/orgs"]["parameters"]; + response: Endpoints["GET /user/memberships/orgs"]["response"]; + }; + listOrgRoleTeams: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/organization-roles/{role_id}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/organization-roles/{role_id}/teams"]["response"]; + }; + listOrgRoleUsers: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/organization-roles/{role_id}/users"]["parameters"]; + response: Endpoints["GET /orgs/{org}/organization-roles/{role_id}/users"]["response"]; + }; + listOrgRoles: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/organization-roles"]["parameters"]; + response: Endpoints["GET /orgs/{org}/organization-roles"]["response"]; + }; + listOrganizationFineGrainedPermissions: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/organization-fine-grained-permissions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/organization-fine-grained-permissions"]["response"]; + }; + listOutsideCollaborators: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/outside_collaborators"]["parameters"]; + response: Endpoints["GET /orgs/{org}/outside_collaborators"]["response"]; + }; + listPatGrantRepositories: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"]["response"]; + }; + listPatGrantRequestRepositories: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"]["response"]; + }; + listPatGrantRequests: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/personal-access-token-requests"]["parameters"]; + response: Endpoints["GET /orgs/{org}/personal-access-token-requests"]["response"]; + }; + listPatGrants: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/personal-access-tokens"]["parameters"]; + response: Endpoints["GET /orgs/{org}/personal-access-tokens"]["response"]; + }; + listPendingInvitations: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/invitations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/invitations"]["response"]; + }; + listPublicMembers: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/public_members"]["parameters"]; + response: Endpoints["GET /orgs/{org}/public_members"]["response"]; + }; + listSecurityManagerTeams: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/security-managers"]["parameters"]; + response: Endpoints["GET /orgs/{org}/security-managers"]["response"]; + }; + listWebhookDeliveries: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/hooks/{hook_id}/deliveries"]["parameters"]; + response: Endpoints["GET /orgs/{org}/hooks/{hook_id}/deliveries"]["response"]; + }; + listWebhooks: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/hooks"]["parameters"]; + response: Endpoints["GET /orgs/{org}/hooks"]["response"]; + }; + patchCustomOrganizationRole: { + parameters: RequestParameters & Endpoints["PATCH /orgs/{org}/organization-roles/{role_id}"]["parameters"]; + response: Endpoints["PATCH /orgs/{org}/organization-roles/{role_id}"]["response"]; + }; + pingWebhook: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/hooks/{hook_id}/pings"]["parameters"]; + response: Endpoints["POST /orgs/{org}/hooks/{hook_id}/pings"]["response"]; + }; + redeliverWebhookDelivery: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"]["parameters"]; + response: Endpoints["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"]["response"]; + }; + removeCustomProperty: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/properties/schema/{custom_property_name}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/properties/schema/{custom_property_name}"]["response"]; + }; + removeMember: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/members/{username}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/members/{username}"]["response"]; + }; + removeMembershipForUser: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/memberships/{username}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/memberships/{username}"]["response"]; + }; + removeOutsideCollaborator: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/outside_collaborators/{username}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/outside_collaborators/{username}"]["response"]; + }; + removePublicMembershipForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/public_members/{username}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/public_members/{username}"]["response"]; + }; + removeSecurityManagerTeam: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/security-managers/teams/{team_slug}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/security-managers/teams/{team_slug}"]["response"]; + }; + reviewPatGrantRequest: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"]["parameters"]; + response: Endpoints["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"]["response"]; + }; + reviewPatGrantRequestsInBulk: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/personal-access-token-requests"]["parameters"]; + response: Endpoints["POST /orgs/{org}/personal-access-token-requests"]["response"]; + }; + revokeAllOrgRolesTeam: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"]["response"]; + }; + revokeAllOrgRolesUser: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/organization-roles/users/{username}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/organization-roles/users/{username}"]["response"]; + }; + revokeOrgRoleTeam: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"]["response"]; + }; + revokeOrgRoleUser: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"]["response"]; + }; + setMembershipForUser: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/memberships/{username}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/memberships/{username}"]["response"]; + }; + setPublicMembershipForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/public_members/{username}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/public_members/{username}"]["response"]; + }; + unblockUser: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/blocks/{username}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/blocks/{username}"]["response"]; + }; + update: { + parameters: RequestParameters & Endpoints["PATCH /orgs/{org}"]["parameters"]; + response: Endpoints["PATCH /orgs/{org}"]["response"]; + }; + updateMembershipForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["PATCH /user/memberships/orgs/{org}"]["parameters"]; + response: Endpoints["PATCH /user/memberships/orgs/{org}"]["response"]; + }; + updatePatAccess: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/personal-access-tokens/{pat_id}"]["parameters"]; + response: Endpoints["POST /orgs/{org}/personal-access-tokens/{pat_id}"]["response"]; + }; + updatePatAccesses: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/personal-access-tokens"]["parameters"]; + response: Endpoints["POST /orgs/{org}/personal-access-tokens"]["response"]; + }; + updateWebhook: { + parameters: RequestParameters & Endpoints["PATCH /orgs/{org}/hooks/{hook_id}"]["parameters"]; + response: Endpoints["PATCH /orgs/{org}/hooks/{hook_id}"]["response"]; + }; + updateWebhookConfigForOrg: { + parameters: RequestParameters & Endpoints["PATCH /orgs/{org}/hooks/{hook_id}/config"]["parameters"]; + response: Endpoints["PATCH /orgs/{org}/hooks/{hook_id}/config"]["response"]; + }; + }; + packages: { + deletePackageForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/packages/{package_type}/{package_name}"]["parameters"]; + response: Endpoints["DELETE /user/packages/{package_type}/{package_name}"]["response"]; + }; + deletePackageForOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/packages/{package_type}/{package_name}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/packages/{package_type}/{package_name}"]["response"]; + }; + deletePackageForUser: { + parameters: RequestParameters & Endpoints["DELETE /users/{username}/packages/{package_type}/{package_name}"]["parameters"]; + response: Endpoints["DELETE /users/{username}/packages/{package_type}/{package_name}"]["response"]; + }; + deletePackageVersionForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"]["parameters"]; + response: Endpoints["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"]["response"]; + }; + deletePackageVersionForOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"]["response"]; + }; + deletePackageVersionForUser: { + parameters: RequestParameters & Endpoints["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"]["parameters"]; + response: Endpoints["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"]["response"]; + }; + getAllPackageVersionsForAPackageOwnedByAnOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"]["response"]; + }; + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/packages/{package_type}/{package_name}/versions"]["parameters"]; + response: Endpoints["GET /user/packages/{package_type}/{package_name}/versions"]["response"]; + }; + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/packages/{package_type}/{package_name}/versions"]["parameters"]; + response: Endpoints["GET /user/packages/{package_type}/{package_name}/versions"]["response"]; + }; + getAllPackageVersionsForPackageOwnedByOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"]["response"]; + }; + getAllPackageVersionsForPackageOwnedByUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/packages/{package_type}/{package_name}/versions"]["parameters"]; + response: Endpoints["GET /users/{username}/packages/{package_type}/{package_name}/versions"]["response"]; + }; + getPackageForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/packages/{package_type}/{package_name}"]["parameters"]; + response: Endpoints["GET /user/packages/{package_type}/{package_name}"]["response"]; + }; + getPackageForOrganization: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}"]["response"]; + }; + getPackageForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/packages/{package_type}/{package_name}"]["parameters"]; + response: Endpoints["GET /users/{username}/packages/{package_type}/{package_name}"]["response"]; + }; + getPackageVersionForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"]["parameters"]; + response: Endpoints["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"]["response"]; + }; + getPackageVersionForOrganization: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"]["response"]; + }; + getPackageVersionForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"]["parameters"]; + response: Endpoints["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"]["response"]; + }; + listDockerMigrationConflictingPackagesForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/docker/conflicts"]["parameters"]; + response: Endpoints["GET /user/docker/conflicts"]["response"]; + }; + listDockerMigrationConflictingPackagesForOrganization: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/docker/conflicts"]["parameters"]; + response: Endpoints["GET /orgs/{org}/docker/conflicts"]["response"]; + }; + listDockerMigrationConflictingPackagesForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/docker/conflicts"]["parameters"]; + response: Endpoints["GET /users/{username}/docker/conflicts"]["response"]; + }; + listPackagesForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/packages"]["parameters"]; + response: Endpoints["GET /user/packages"]["response"]; + }; + listPackagesForOrganization: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/packages"]["parameters"]; + response: Endpoints["GET /orgs/{org}/packages"]["response"]; + }; + listPackagesForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/packages"]["parameters"]; + response: Endpoints["GET /users/{username}/packages"]["response"]; + }; + restorePackageForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/packages/{package_type}/{package_name}/restore{?token}"]["parameters"]; + response: Endpoints["POST /user/packages/{package_type}/{package_name}/restore{?token}"]["response"]; + }; + restorePackageForOrg: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"]["parameters"]; + response: Endpoints["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"]["response"]; + }; + restorePackageForUser: { + parameters: RequestParameters & Endpoints["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"]["parameters"]; + response: Endpoints["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"]["response"]; + }; + restorePackageVersionForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]["parameters"]; + response: Endpoints["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]["response"]; + }; + restorePackageVersionForOrg: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]["parameters"]; + response: Endpoints["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]["response"]; + }; + restorePackageVersionForUser: { + parameters: RequestParameters & Endpoints["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]["parameters"]; + response: Endpoints["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]["response"]; + }; + }; + projects: { + addCollaborator: { + parameters: RequestParameters & Endpoints["PUT /projects/{project_id}/collaborators/{username}"]["parameters"]; + response: Endpoints["PUT /projects/{project_id}/collaborators/{username}"]["response"]; + }; + createCard: { + parameters: RequestParameters & Endpoints["POST /projects/columns/{column_id}/cards"]["parameters"]; + response: Endpoints["POST /projects/columns/{column_id}/cards"]["response"]; + }; + createColumn: { + parameters: RequestParameters & Endpoints["POST /projects/{project_id}/columns"]["parameters"]; + response: Endpoints["POST /projects/{project_id}/columns"]["response"]; + }; + createForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/projects"]["parameters"]; + response: Endpoints["POST /user/projects"]["response"]; + }; + createForOrg: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/projects"]["parameters"]; + response: Endpoints["POST /orgs/{org}/projects"]["response"]; + }; + createForRepo: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/projects"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/projects"]["response"]; + }; + delete: { + parameters: RequestParameters & Endpoints["DELETE /projects/{project_id}"]["parameters"]; + response: Endpoints["DELETE /projects/{project_id}"]["response"]; + }; + deleteCard: { + parameters: RequestParameters & Endpoints["DELETE /projects/columns/cards/{card_id}"]["parameters"]; + response: Endpoints["DELETE /projects/columns/cards/{card_id}"]["response"]; + }; + deleteColumn: { + parameters: RequestParameters & Endpoints["DELETE /projects/columns/{column_id}"]["parameters"]; + response: Endpoints["DELETE /projects/columns/{column_id}"]["response"]; + }; + get: { + parameters: RequestParameters & Endpoints["GET /projects/{project_id}"]["parameters"]; + response: Endpoints["GET /projects/{project_id}"]["response"]; + }; + getCard: { + parameters: RequestParameters & Endpoints["GET /projects/columns/cards/{card_id}"]["parameters"]; + response: Endpoints["GET /projects/columns/cards/{card_id}"]["response"]; + }; + getColumn: { + parameters: RequestParameters & Endpoints["GET /projects/columns/{column_id}"]["parameters"]; + response: Endpoints["GET /projects/columns/{column_id}"]["response"]; + }; + getPermissionForUser: { + parameters: RequestParameters & Endpoints["GET /projects/{project_id}/collaborators/{username}/permission"]["parameters"]; + response: Endpoints["GET /projects/{project_id}/collaborators/{username}/permission"]["response"]; + }; + listCards: { + parameters: RequestParameters & Endpoints["GET /projects/columns/{column_id}/cards"]["parameters"]; + response: Endpoints["GET /projects/columns/{column_id}/cards"]["response"]; + }; + listCollaborators: { + parameters: RequestParameters & Endpoints["GET /projects/{project_id}/collaborators"]["parameters"]; + response: Endpoints["GET /projects/{project_id}/collaborators"]["response"]; + }; + listColumns: { + parameters: RequestParameters & Endpoints["GET /projects/{project_id}/columns"]["parameters"]; + response: Endpoints["GET /projects/{project_id}/columns"]["response"]; + }; + listForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/projects"]["parameters"]; + response: Endpoints["GET /orgs/{org}/projects"]["response"]; + }; + listForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/projects"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/projects"]["response"]; + }; + listForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/projects"]["parameters"]; + response: Endpoints["GET /users/{username}/projects"]["response"]; + }; + moveCard: { + parameters: RequestParameters & Endpoints["POST /projects/columns/cards/{card_id}/moves"]["parameters"]; + response: Endpoints["POST /projects/columns/cards/{card_id}/moves"]["response"]; + }; + moveColumn: { + parameters: RequestParameters & Endpoints["POST /projects/columns/{column_id}/moves"]["parameters"]; + response: Endpoints["POST /projects/columns/{column_id}/moves"]["response"]; + }; + removeCollaborator: { + parameters: RequestParameters & Endpoints["DELETE /projects/{project_id}/collaborators/{username}"]["parameters"]; + response: Endpoints["DELETE /projects/{project_id}/collaborators/{username}"]["response"]; + }; + update: { + parameters: RequestParameters & Endpoints["PATCH /projects/{project_id}"]["parameters"]; + response: Endpoints["PATCH /projects/{project_id}"]["response"]; + }; + updateCard: { + parameters: RequestParameters & Endpoints["PATCH /projects/columns/cards/{card_id}"]["parameters"]; + response: Endpoints["PATCH /projects/columns/cards/{card_id}"]["response"]; + }; + updateColumn: { + parameters: RequestParameters & Endpoints["PATCH /projects/columns/{column_id}"]["parameters"]; + response: Endpoints["PATCH /projects/columns/{column_id}"]["response"]; + }; + }; + pulls: { + checkIfMerged: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"]["response"]; + }; + create: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/pulls"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/pulls"]["response"]; + }; + createReplyForReviewComment: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"]["response"]; + }; + createReview: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["response"]; + }; + createReviewComment: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["response"]; + }; + deletePendingReview: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"]["response"]; + }; + deleteReviewComment: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"]["response"]; + }; + dismissReview: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"]["response"]; + }; + get: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}"]["response"]; + }; + getReview: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"]["response"]; + }; + getReviewComment: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"]["response"]; + }; + list: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pulls"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls"]["response"]; + }; + listCommentsForReview: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"]["response"]; + }; + listCommits: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"]["response"]; + }; + listFiles: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"]["response"]; + }; + listRequestedReviewers: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["response"]; + }; + listReviewComments: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["response"]; + }; + listReviewCommentsForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pulls/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments"]["response"]; + }; + listReviews: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["response"]; + }; + merge: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"]["response"]; + }; + removeRequestedReviewers: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["response"]; + }; + requestReviewers: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["response"]; + }; + submitReview: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"]["response"]; + }; + update: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"]["response"]; + }; + updateBranch: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"]["response"]; + }; + updateReview: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"]["response"]; + }; + updateReviewComment: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]["response"]; + }; + }; + rateLimit: { + get: { + parameters: RequestParameters & Endpoints["GET /rate_limit"]["parameters"]; + response: Endpoints["GET /rate_limit"]["response"]; + }; + }; + reactions: { + createForCommitComment: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["response"]; + }; + createForIssue: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["response"]; + }; + createForIssueComment: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["response"]; + }; + createForPullRequestReviewComment: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["response"]; + }; + createForRelease: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"]["response"]; + }; + createForTeamDiscussionCommentInOrg: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["parameters"]; + response: Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["response"]; + }; + createForTeamDiscussionInOrg: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["parameters"]; + response: Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["response"]; + }; + deleteForCommitComment: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"]["response"]; + }; + deleteForIssue: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"]["response"]; + }; + deleteForIssueComment: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"]["response"]; + }; + deleteForPullRequestComment: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"]["response"]; + }; + deleteForRelease: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"]["response"]; + }; + deleteForTeamDiscussion: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"]["response"]; + }; + deleteForTeamDiscussionComment: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"]["response"]; + }; + listForCommitComment: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["response"]; + }; + listForIssue: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["response"]; + }; + listForIssueComment: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["response"]; + }; + listForPullRequestReviewComment: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["response"]; + }; + listForRelease: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"]["response"]; + }; + listForTeamDiscussionCommentInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["response"]; + }; + listForTeamDiscussionInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["response"]; + }; + }; + repos: { + acceptInvitation: { + parameters: RequestParameters & Endpoints["PATCH /user/repository_invitations/{invitation_id}"]["parameters"]; + response: Endpoints["PATCH /user/repository_invitations/{invitation_id}"]["response"]; + }; + acceptInvitationForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["PATCH /user/repository_invitations/{invitation_id}"]["parameters"]; + response: Endpoints["PATCH /user/repository_invitations/{invitation_id}"]["response"]; + }; + addAppAccessRestrictions: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["response"]; + }; + addCollaborator: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/collaborators/{username}"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/collaborators/{username}"]["response"]; + }; + addStatusCheckContexts: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["response"]; + }; + addTeamAccessRestrictions: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["response"]; + }; + addUserAccessRestrictions: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["response"]; + }; + cancelPagesDeployment: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"]["response"]; + }; + checkAutomatedSecurityFixes: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/automated-security-fixes"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/automated-security-fixes"]["response"]; + }; + checkCollaborator: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/collaborators/{username}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/collaborators/{username}"]["response"]; + }; + checkVulnerabilityAlerts: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/vulnerability-alerts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/vulnerability-alerts"]["response"]; + }; + codeownersErrors: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/codeowners/errors"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codeowners/errors"]["response"]; + }; + compareCommits: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/compare/{base}...{head}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/compare/{base}...{head}"]["response"]; + }; + compareCommitsWithBasehead: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/compare/{basehead}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/compare/{basehead}"]["response"]; + }; + createAutolink: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/autolinks"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/autolinks"]["response"]; + }; + createCommitComment: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["response"]; + }; + createCommitSignatureProtection: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"]["response"]; + }; + createCommitStatus: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/statuses/{sha}"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/statuses/{sha}"]["response"]; + }; + createDeployKey: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/keys"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/keys"]["response"]; + }; + createDeployment: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/deployments"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/deployments"]["response"]; + }; + createDeploymentBranchPolicy: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"]["response"]; + }; + createDeploymentProtectionRule: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"]["response"]; + }; + createDeploymentStatus: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["response"]; + }; + createDispatchEvent: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/dispatches"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/dispatches"]["response"]; + }; + createForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/repos"]["parameters"]; + response: Endpoints["POST /user/repos"]["response"]; + }; + createFork: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/forks"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/forks"]["response"]; + }; + createInOrg: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/repos"]["parameters"]; + response: Endpoints["POST /orgs/{org}/repos"]["response"]; + }; + createOrUpdateCustomPropertiesValues: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/properties/values"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/properties/values"]["response"]; + }; + createOrUpdateEnvironment: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/environments/{environment_name}"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/environments/{environment_name}"]["response"]; + }; + createOrUpdateFileContents: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/contents/{path}"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/contents/{path}"]["response"]; + }; + createOrgRuleset: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/rulesets"]["parameters"]; + response: Endpoints["POST /orgs/{org}/rulesets"]["response"]; + }; + createPagesDeployment: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/pages/deployments"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/pages/deployments"]["response"]; + }; + createPagesSite: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/pages"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/pages"]["response"]; + }; + createRelease: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/releases"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/releases"]["response"]; + }; + createRepoRuleset: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/rulesets"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/rulesets"]["response"]; + }; + createTagProtection: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/tags/protection"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/tags/protection"]["response"]; + }; + createUsingTemplate: { + parameters: RequestParameters & Endpoints["POST /repos/{template_owner}/{template_repo}/generate"]["parameters"]; + response: Endpoints["POST /repos/{template_owner}/{template_repo}/generate"]["response"]; + }; + createWebhook: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/hooks"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/hooks"]["response"]; + }; + declineInvitation: { + parameters: RequestParameters & Endpoints["DELETE /user/repository_invitations/{invitation_id}"]["parameters"]; + response: Endpoints["DELETE /user/repository_invitations/{invitation_id}"]["response"]; + }; + declineInvitationForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/repository_invitations/{invitation_id}"]["parameters"]; + response: Endpoints["DELETE /user/repository_invitations/{invitation_id}"]["response"]; + }; + delete: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}"]["response"]; + }; + deleteAccessRestrictions: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"]["response"]; + }; + deleteAdminBranchProtection: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"]["response"]; + }; + deleteAnEnvironment: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/environments/{environment_name}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/environments/{environment_name}"]["response"]; + }; + deleteAutolink: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"]["response"]; + }; + deleteBranchProtection: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"]["response"]; + }; + deleteCommitComment: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/comments/{comment_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/comments/{comment_id}"]["response"]; + }; + deleteCommitSignatureProtection: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"]["response"]; + }; + deleteDeployKey: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/keys/{key_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/keys/{key_id}"]["response"]; + }; + deleteDeployment: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"]["response"]; + }; + deleteDeploymentBranchPolicy: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"]["response"]; + }; + deleteFile: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/contents/{path}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/contents/{path}"]["response"]; + }; + deleteInvitation: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"]["response"]; + }; + deleteOrgRuleset: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/rulesets/{ruleset_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/rulesets/{ruleset_id}"]["response"]; + }; + deletePagesSite: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/pages"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/pages"]["response"]; + }; + deletePullRequestReviewProtection: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"]["response"]; + }; + deleteRelease: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/releases/{release_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/releases/{release_id}"]["response"]; + }; + deleteReleaseAsset: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"]["response"]; + }; + deleteRepoRuleset: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"]["response"]; + }; + deleteTagProtection: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"]["response"]; + }; + deleteWebhook: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"]["response"]; + }; + disableAutomatedSecurityFixes: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/automated-security-fixes"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/automated-security-fixes"]["response"]; + }; + disableDeploymentProtectionRule: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"]["response"]; + }; + disablePrivateVulnerabilityReporting: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"]["response"]; + }; + disableVulnerabilityAlerts: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/vulnerability-alerts"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/vulnerability-alerts"]["response"]; + }; + downloadArchive: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/zipball/{ref}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/zipball/{ref}"]["response"]; + }; + downloadTarballArchive: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/tarball/{ref}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/tarball/{ref}"]["response"]; + }; + downloadZipballArchive: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/zipball/{ref}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/zipball/{ref}"]["response"]; + }; + enableAutomatedSecurityFixes: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/automated-security-fixes"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/automated-security-fixes"]["response"]; + }; + enablePrivateVulnerabilityReporting: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"]["response"]; + }; + enableVulnerabilityAlerts: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/vulnerability-alerts"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/vulnerability-alerts"]["response"]; + }; + generateReleaseNotes: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/releases/generate-notes"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/releases/generate-notes"]["response"]; + }; + get: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}"]["response"]; + }; + getAccessRestrictions: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"]["response"]; + }; + getAdminBranchProtection: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"]["response"]; + }; + getAllDeploymentProtectionRules: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"]["response"]; + }; + getAllEnvironments: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/environments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/environments"]["response"]; + }; + getAllStatusCheckContexts: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["response"]; + }; + getAllTopics: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/topics"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/topics"]["response"]; + }; + getAppsWithAccessToProtectedBranch: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["response"]; + }; + getAutolink: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"]["response"]; + }; + getBranch: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/branches/{branch}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}"]["response"]; + }; + getBranchProtection: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection"]["response"]; + }; + getBranchRules: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/rules/branches/{branch}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/rules/branches/{branch}"]["response"]; + }; + getClones: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/traffic/clones"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/traffic/clones"]["response"]; + }; + getCodeFrequencyStats: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/stats/code_frequency"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/stats/code_frequency"]["response"]; + }; + getCollaboratorPermissionLevel: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/collaborators/{username}/permission"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/collaborators/{username}/permission"]["response"]; + }; + getCombinedStatusForRef: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/status"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/status"]["response"]; + }; + getCommit: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/commits/{ref}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}"]["response"]; + }; + getCommitActivityStats: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/stats/commit_activity"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/stats/commit_activity"]["response"]; + }; + getCommitComment: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}"]["response"]; + }; + getCommitSignatureProtection: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"]["response"]; + }; + getCommunityProfileMetrics: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/community/profile"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/community/profile"]["response"]; + }; + getContent: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/contents/{path}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/contents/{path}"]["response"]; + }; + getContributorsStats: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/stats/contributors"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/stats/contributors"]["response"]; + }; + getCustomDeploymentProtectionRule: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"]["response"]; + }; + getCustomPropertiesValues: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/properties/values"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/properties/values"]["response"]; + }; + getDeployKey: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/keys/{key_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/keys/{key_id}"]["response"]; + }; + getDeployment: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}"]["response"]; + }; + getDeploymentBranchPolicy: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"]["response"]; + }; + getDeploymentStatus: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"]["response"]; + }; + getEnvironment: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}"]["response"]; + }; + getLatestPagesBuild: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pages/builds/latest"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pages/builds/latest"]["response"]; + }; + getLatestRelease: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/releases/latest"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases/latest"]["response"]; + }; + getOrgRuleSuite: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"]["response"]; + }; + getOrgRuleSuites: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/rulesets/rule-suites"]["parameters"]; + response: Endpoints["GET /orgs/{org}/rulesets/rule-suites"]["response"]; + }; + getOrgRuleset: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/rulesets/{ruleset_id}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/rulesets/{ruleset_id}"]["response"]; + }; + getOrgRulesets: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/rulesets"]["parameters"]; + response: Endpoints["GET /orgs/{org}/rulesets"]["response"]; + }; + getPages: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pages"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pages"]["response"]; + }; + getPagesBuild: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pages/builds/{build_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pages/builds/{build_id}"]["response"]; + }; + getPagesDeployment: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"]["response"]; + }; + getPagesHealthCheck: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pages/health"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pages/health"]["response"]; + }; + getParticipationStats: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/stats/participation"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/stats/participation"]["response"]; + }; + getPullRequestReviewProtection: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"]["response"]; + }; + getPunchCardStats: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/stats/punch_card"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/stats/punch_card"]["response"]; + }; + getReadme: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/readme"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/readme"]["response"]; + }; + getReadmeInDirectory: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/readme/{dir}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/readme/{dir}"]["response"]; + }; + getRelease: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}"]["response"]; + }; + getReleaseAsset: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"]["response"]; + }; + getReleaseByTag: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/releases/tags/{tag}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases/tags/{tag}"]["response"]; + }; + getRepoRuleSuite: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"]["response"]; + }; + getRepoRuleSuites: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/rulesets/rule-suites"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/rulesets/rule-suites"]["response"]; + }; + getRepoRuleset: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"]["response"]; + }; + getRepoRulesets: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/rulesets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/rulesets"]["response"]; + }; + getStatusChecksProtection: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["response"]; + }; + getTeamsWithAccessToProtectedBranch: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["response"]; + }; + getTopPaths: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/traffic/popular/paths"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/traffic/popular/paths"]["response"]; + }; + getTopReferrers: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/traffic/popular/referrers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/traffic/popular/referrers"]["response"]; + }; + getUsersWithAccessToProtectedBranch: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["response"]; + }; + getViews: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/traffic/views"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/traffic/views"]["response"]; + }; + getWebhook: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}"]["response"]; + }; + getWebhookConfigForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"]["response"]; + }; + getWebhookDelivery: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"]["response"]; + }; + listActivities: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/activity"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/activity"]["response"]; + }; + listAutolinks: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/autolinks"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/autolinks"]["response"]; + }; + listBranches: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/branches"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches"]["response"]; + }; + listBranchesForHeadCommit: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"]["response"]; + }; + listCollaborators: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/collaborators"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/collaborators"]["response"]; + }; + listCommentsForCommit: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["response"]; + }; + listCommitCommentsForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/comments"]["response"]; + }; + listCommitStatusesForRef: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/statuses"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/statuses"]["response"]; + }; + listCommits: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/commits"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits"]["response"]; + }; + listContributors: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/contributors"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/contributors"]["response"]; + }; + listCustomDeploymentRuleIntegrations: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"]["response"]; + }; + listDeployKeys: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/keys"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/keys"]["response"]; + }; + listDeploymentBranchPolicies: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"]["response"]; + }; + listDeploymentStatuses: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["response"]; + }; + listDeployments: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/deployments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/deployments"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/repos"]["parameters"]; + response: Endpoints["GET /user/repos"]["response"]; + }; + listForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/repos"]["parameters"]; + response: Endpoints["GET /orgs/{org}/repos"]["response"]; + }; + listForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/repos"]["parameters"]; + response: Endpoints["GET /users/{username}/repos"]["response"]; + }; + listForks: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/forks"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/forks"]["response"]; + }; + listInvitations: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/invitations"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/invitations"]["response"]; + }; + listInvitationsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/repository_invitations"]["parameters"]; + response: Endpoints["GET /user/repository_invitations"]["response"]; + }; + listLanguages: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/languages"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/languages"]["response"]; + }; + listPagesBuilds: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/pages/builds"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pages/builds"]["response"]; + }; + listPublic: { + parameters: RequestParameters & Endpoints["GET /repositories"]["parameters"]; + response: Endpoints["GET /repositories"]["response"]; + }; + listPullRequestsAssociatedWithCommit: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"]["response"]; + }; + listReleaseAssets: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/assets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/assets"]["response"]; + }; + listReleases: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/releases"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases"]["response"]; + }; + listTagProtection: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/tags/protection"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/tags/protection"]["response"]; + }; + listTags: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/tags"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/tags"]["response"]; + }; + listTeams: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/teams"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/teams"]["response"]; + }; + listWebhookDeliveries: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"]["response"]; + }; + listWebhooks: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/hooks"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/hooks"]["response"]; + }; + merge: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/merges"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/merges"]["response"]; + }; + mergeUpstream: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/merge-upstream"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/merge-upstream"]["response"]; + }; + pingWebhook: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"]["response"]; + }; + redeliverWebhookDelivery: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"]["response"]; + }; + removeAppAccessRestrictions: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["response"]; + }; + removeCollaborator: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/collaborators/{username}"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/collaborators/{username}"]["response"]; + }; + removeStatusCheckContexts: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["response"]; + }; + removeStatusCheckProtection: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["response"]; + }; + removeTeamAccessRestrictions: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["response"]; + }; + removeUserAccessRestrictions: { + parameters: RequestParameters & Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["parameters"]; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["response"]; + }; + renameBranch: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/rename"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/rename"]["response"]; + }; + replaceAllTopics: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/topics"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/topics"]["response"]; + }; + requestPagesBuild: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/pages/builds"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/pages/builds"]["response"]; + }; + setAdminBranchProtection: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"]["response"]; + }; + setAppAccessRestrictions: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["response"]; + }; + setStatusCheckContexts: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["response"]; + }; + setTeamAccessRestrictions: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["response"]; + }; + setUserAccessRestrictions: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["response"]; + }; + testPushWebhook: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"]["response"]; + }; + transfer: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/transfer"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/transfer"]["response"]; + }; + update: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}"]["response"]; + }; + updateBranchProtection: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection"]["response"]; + }; + updateCommitComment: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/comments/{comment_id}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/comments/{comment_id}"]["response"]; + }; + updateDeploymentBranchPolicy: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"]["response"]; + }; + updateInformationAboutPagesSite: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/pages"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/pages"]["response"]; + }; + updateInvitation: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"]["response"]; + }; + updateOrgRuleset: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/rulesets/{ruleset_id}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/rulesets/{ruleset_id}"]["response"]; + }; + updatePullRequestReviewProtection: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"]["response"]; + }; + updateRelease: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/releases/{release_id}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/releases/{release_id}"]["response"]; + }; + updateReleaseAsset: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"]["response"]; + }; + updateRepoRuleset: { + parameters: RequestParameters & Endpoints["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"]["parameters"]; + response: Endpoints["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"]["response"]; + }; + updateStatusCheckPotection: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["response"]; + }; + updateStatusCheckProtection: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["response"]; + }; + updateWebhook: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"]["response"]; + }; + updateWebhookConfigForRepo: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"]["response"]; + }; + uploadReleaseAsset: { + parameters: RequestParameters & Endpoints["POST {origin}/repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}"]["parameters"]; + response: Endpoints["POST {origin}/repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}"]["response"]; + }; + }; + search: { + code: { + parameters: RequestParameters & Endpoints["GET /search/code"]["parameters"]; + response: Endpoints["GET /search/code"]["response"]; + }; + commits: { + parameters: RequestParameters & Endpoints["GET /search/commits"]["parameters"]; + response: Endpoints["GET /search/commits"]["response"]; + }; + issuesAndPullRequests: { + parameters: RequestParameters & Endpoints["GET /search/issues"]["parameters"]; + response: Endpoints["GET /search/issues"]["response"]; + }; + labels: { + parameters: RequestParameters & Endpoints["GET /search/labels"]["parameters"]; + response: Endpoints["GET /search/labels"]["response"]; + }; + repos: { + parameters: RequestParameters & Endpoints["GET /search/repositories"]["parameters"]; + response: Endpoints["GET /search/repositories"]["response"]; + }; + topics: { + parameters: RequestParameters & Endpoints["GET /search/topics"]["parameters"]; + response: Endpoints["GET /search/topics"]["response"]; + }; + users: { + parameters: RequestParameters & Endpoints["GET /search/users"]["parameters"]; + response: Endpoints["GET /search/users"]["response"]; + }; + }; + secretScanning: { + getAlert: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]["response"]; + }; + listAlertsForEnterprise: { + parameters: RequestParameters & Endpoints["GET /enterprises/{enterprise}/secret-scanning/alerts"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/secret-scanning/alerts"]["response"]; + }; + listAlertsForOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/secret-scanning/alerts"]["parameters"]; + response: Endpoints["GET /orgs/{org}/secret-scanning/alerts"]["response"]; + }; + listAlertsForRepo: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts"]["response"]; + }; + listLocationsForAlert: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"]["response"]; + }; + updateAlert: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]["response"]; + }; + }; + securityAdvisories: { + createFork: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"]["response"]; + }; + createPrivateVulnerabilityReport: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/security-advisories/reports"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/security-advisories/reports"]["response"]; + }; + createRepositoryAdvisory: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/security-advisories"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/security-advisories"]["response"]; + }; + createRepositoryAdvisoryCveRequest: { + parameters: RequestParameters & Endpoints["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"]["parameters"]; + response: Endpoints["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"]["response"]; + }; + getGlobalAdvisory: { + parameters: RequestParameters & Endpoints["GET /advisories/{ghsa_id}"]["parameters"]; + response: Endpoints["GET /advisories/{ghsa_id}"]["response"]; + }; + getRepositoryAdvisory: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]["response"]; + }; + listGlobalAdvisories: { + parameters: RequestParameters & Endpoints["GET /advisories"]["parameters"]; + response: Endpoints["GET /advisories"]["response"]; + }; + listOrgRepositoryAdvisories: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/security-advisories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/security-advisories"]["response"]; + }; + listRepositoryAdvisories: { + parameters: RequestParameters & Endpoints["GET /repos/{owner}/{repo}/security-advisories"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/security-advisories"]["response"]; + }; + updateRepositoryAdvisory: { + parameters: RequestParameters & Endpoints["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]["parameters"]; + response: Endpoints["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]["response"]; + }; + }; + teams: { + addOrUpdateMembershipForUserInOrg: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"]["response"]; + }; + addOrUpdateProjectPermissionsInOrg: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"]["response"]; + }; + addOrUpdateRepoPermissionsInOrg: { + parameters: RequestParameters & Endpoints["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"]["parameters"]; + response: Endpoints["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"]["response"]; + }; + checkPermissionsForProjectInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"]["response"]; + }; + checkPermissionsForRepoInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"]["response"]; + }; + create: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/teams"]["parameters"]; + response: Endpoints["POST /orgs/{org}/teams"]["response"]; + }; + createDiscussionCommentInOrg: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["parameters"]; + response: Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["response"]; + }; + createDiscussionInOrg: { + parameters: RequestParameters & Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions"]["parameters"]; + response: Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions"]["response"]; + }; + deleteDiscussionCommentInOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"]["response"]; + }; + deleteDiscussionInOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"]["response"]; + }; + deleteInOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/teams/{team_slug}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}"]["response"]; + }; + getByName: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}"]["response"]; + }; + getDiscussionCommentInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"]["response"]; + }; + getDiscussionInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"]["response"]; + }; + getMembershipForUserInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"]["response"]; + }; + list: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams"]["response"]; + }; + listChildInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/teams"]["response"]; + }; + listDiscussionCommentsInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["response"]; + }; + listDiscussionsInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/teams"]["parameters"]; + response: Endpoints["GET /user/teams"]["response"]; + }; + listMembersInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/members"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/members"]["response"]; + }; + listPendingInvitationsInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/invitations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/invitations"]["response"]; + }; + listProjectsInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/projects"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/projects"]["response"]; + }; + listReposInOrg: { + parameters: RequestParameters & Endpoints["GET /orgs/{org}/teams/{team_slug}/repos"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/repos"]["response"]; + }; + removeMembershipForUserInOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"]["response"]; + }; + removeProjectInOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"]["response"]; + }; + removeRepoInOrg: { + parameters: RequestParameters & Endpoints["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"]["parameters"]; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"]["response"]; + }; + updateDiscussionCommentInOrg: { + parameters: RequestParameters & Endpoints["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"]["parameters"]; + response: Endpoints["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"]["response"]; + }; + updateDiscussionInOrg: { + parameters: RequestParameters & Endpoints["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"]["parameters"]; + response: Endpoints["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"]["response"]; + }; + updateInOrg: { + parameters: RequestParameters & Endpoints["PATCH /orgs/{org}/teams/{team_slug}"]["parameters"]; + response: Endpoints["PATCH /orgs/{org}/teams/{team_slug}"]["response"]; + }; + }; + users: { + addEmailForAuthenticated: { + parameters: RequestParameters & Endpoints["POST /user/emails"]["parameters"]; + response: Endpoints["POST /user/emails"]["response"]; + }; + addEmailForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/emails"]["parameters"]; + response: Endpoints["POST /user/emails"]["response"]; + }; + addSocialAccountForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/social_accounts"]["parameters"]; + response: Endpoints["POST /user/social_accounts"]["response"]; + }; + block: { + parameters: RequestParameters & Endpoints["PUT /user/blocks/{username}"]["parameters"]; + response: Endpoints["PUT /user/blocks/{username}"]["response"]; + }; + checkBlocked: { + parameters: RequestParameters & Endpoints["GET /user/blocks/{username}"]["parameters"]; + response: Endpoints["GET /user/blocks/{username}"]["response"]; + }; + checkFollowingForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/following/{target_user}"]["parameters"]; + response: Endpoints["GET /users/{username}/following/{target_user}"]["response"]; + }; + checkPersonIsFollowedByAuthenticated: { + parameters: RequestParameters & Endpoints["GET /user/following/{username}"]["parameters"]; + response: Endpoints["GET /user/following/{username}"]["response"]; + }; + createGpgKeyForAuthenticated: { + parameters: RequestParameters & Endpoints["POST /user/gpg_keys"]["parameters"]; + response: Endpoints["POST /user/gpg_keys"]["response"]; + }; + createGpgKeyForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/gpg_keys"]["parameters"]; + response: Endpoints["POST /user/gpg_keys"]["response"]; + }; + createPublicSshKeyForAuthenticated: { + parameters: RequestParameters & Endpoints["POST /user/keys"]["parameters"]; + response: Endpoints["POST /user/keys"]["response"]; + }; + createPublicSshKeyForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/keys"]["parameters"]; + response: Endpoints["POST /user/keys"]["response"]; + }; + createSshSigningKeyForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["POST /user/ssh_signing_keys"]["parameters"]; + response: Endpoints["POST /user/ssh_signing_keys"]["response"]; + }; + deleteEmailForAuthenticated: { + parameters: RequestParameters & Endpoints["DELETE /user/emails"]["parameters"]; + response: Endpoints["DELETE /user/emails"]["response"]; + }; + deleteEmailForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/emails"]["parameters"]; + response: Endpoints["DELETE /user/emails"]["response"]; + }; + deleteGpgKeyForAuthenticated: { + parameters: RequestParameters & Endpoints["DELETE /user/gpg_keys/{gpg_key_id}"]["parameters"]; + response: Endpoints["DELETE /user/gpg_keys/{gpg_key_id}"]["response"]; + }; + deleteGpgKeyForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/gpg_keys/{gpg_key_id}"]["parameters"]; + response: Endpoints["DELETE /user/gpg_keys/{gpg_key_id}"]["response"]; + }; + deletePublicSshKeyForAuthenticated: { + parameters: RequestParameters & Endpoints["DELETE /user/keys/{key_id}"]["parameters"]; + response: Endpoints["DELETE /user/keys/{key_id}"]["response"]; + }; + deletePublicSshKeyForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/keys/{key_id}"]["parameters"]; + response: Endpoints["DELETE /user/keys/{key_id}"]["response"]; + }; + deleteSocialAccountForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/social_accounts"]["parameters"]; + response: Endpoints["DELETE /user/social_accounts"]["response"]; + }; + deleteSshSigningKeyForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"]["parameters"]; + response: Endpoints["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"]["response"]; + }; + follow: { + parameters: RequestParameters & Endpoints["PUT /user/following/{username}"]["parameters"]; + response: Endpoints["PUT /user/following/{username}"]["response"]; + }; + getAuthenticated: { + parameters: RequestParameters & Endpoints["GET /user"]["parameters"]; + response: Endpoints["GET /user"]["response"]; + }; + getByUsername: { + parameters: RequestParameters & Endpoints["GET /users/{username}"]["parameters"]; + response: Endpoints["GET /users/{username}"]["response"]; + }; + getContextForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/hovercard"]["parameters"]; + response: Endpoints["GET /users/{username}/hovercard"]["response"]; + }; + getGpgKeyForAuthenticated: { + parameters: RequestParameters & Endpoints["GET /user/gpg_keys/{gpg_key_id}"]["parameters"]; + response: Endpoints["GET /user/gpg_keys/{gpg_key_id}"]["response"]; + }; + getGpgKeyForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/gpg_keys/{gpg_key_id}"]["parameters"]; + response: Endpoints["GET /user/gpg_keys/{gpg_key_id}"]["response"]; + }; + getPublicSshKeyForAuthenticated: { + parameters: RequestParameters & Endpoints["GET /user/keys/{key_id}"]["parameters"]; + response: Endpoints["GET /user/keys/{key_id}"]["response"]; + }; + getPublicSshKeyForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/keys/{key_id}"]["parameters"]; + response: Endpoints["GET /user/keys/{key_id}"]["response"]; + }; + getSshSigningKeyForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/ssh_signing_keys/{ssh_signing_key_id}"]["parameters"]; + response: Endpoints["GET /user/ssh_signing_keys/{ssh_signing_key_id}"]["response"]; + }; + list: { + parameters: RequestParameters & Endpoints["GET /users"]["parameters"]; + response: Endpoints["GET /users"]["response"]; + }; + listBlockedByAuthenticated: { + parameters: RequestParameters & Endpoints["GET /user/blocks"]["parameters"]; + response: Endpoints["GET /user/blocks"]["response"]; + }; + listBlockedByAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/blocks"]["parameters"]; + response: Endpoints["GET /user/blocks"]["response"]; + }; + listEmailsForAuthenticated: { + parameters: RequestParameters & Endpoints["GET /user/emails"]["parameters"]; + response: Endpoints["GET /user/emails"]["response"]; + }; + listEmailsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/emails"]["parameters"]; + response: Endpoints["GET /user/emails"]["response"]; + }; + listFollowedByAuthenticated: { + parameters: RequestParameters & Endpoints["GET /user/following"]["parameters"]; + response: Endpoints["GET /user/following"]["response"]; + }; + listFollowedByAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/following"]["parameters"]; + response: Endpoints["GET /user/following"]["response"]; + }; + listFollowersForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/followers"]["parameters"]; + response: Endpoints["GET /user/followers"]["response"]; + }; + listFollowersForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/followers"]["parameters"]; + response: Endpoints["GET /users/{username}/followers"]["response"]; + }; + listFollowingForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/following"]["parameters"]; + response: Endpoints["GET /users/{username}/following"]["response"]; + }; + listGpgKeysForAuthenticated: { + parameters: RequestParameters & Endpoints["GET /user/gpg_keys"]["parameters"]; + response: Endpoints["GET /user/gpg_keys"]["response"]; + }; + listGpgKeysForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/gpg_keys"]["parameters"]; + response: Endpoints["GET /user/gpg_keys"]["response"]; + }; + listGpgKeysForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/gpg_keys"]["parameters"]; + response: Endpoints["GET /users/{username}/gpg_keys"]["response"]; + }; + listPublicEmailsForAuthenticated: { + parameters: RequestParameters & Endpoints["GET /user/public_emails"]["parameters"]; + response: Endpoints["GET /user/public_emails"]["response"]; + }; + listPublicEmailsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/public_emails"]["parameters"]; + response: Endpoints["GET /user/public_emails"]["response"]; + }; + listPublicKeysForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/keys"]["parameters"]; + response: Endpoints["GET /users/{username}/keys"]["response"]; + }; + listPublicSshKeysForAuthenticated: { + parameters: RequestParameters & Endpoints["GET /user/keys"]["parameters"]; + response: Endpoints["GET /user/keys"]["response"]; + }; + listPublicSshKeysForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/keys"]["parameters"]; + response: Endpoints["GET /user/keys"]["response"]; + }; + listSocialAccountsForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/social_accounts"]["parameters"]; + response: Endpoints["GET /user/social_accounts"]["response"]; + }; + listSocialAccountsForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/social_accounts"]["parameters"]; + response: Endpoints["GET /users/{username}/social_accounts"]["response"]; + }; + listSshSigningKeysForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["GET /user/ssh_signing_keys"]["parameters"]; + response: Endpoints["GET /user/ssh_signing_keys"]["response"]; + }; + listSshSigningKeysForUser: { + parameters: RequestParameters & Endpoints["GET /users/{username}/ssh_signing_keys"]["parameters"]; + response: Endpoints["GET /users/{username}/ssh_signing_keys"]["response"]; + }; + setPrimaryEmailVisibilityForAuthenticated: { + parameters: RequestParameters & Endpoints["PATCH /user/email/visibility"]["parameters"]; + response: Endpoints["PATCH /user/email/visibility"]["response"]; + }; + setPrimaryEmailVisibilityForAuthenticatedUser: { + parameters: RequestParameters & Endpoints["PATCH /user/email/visibility"]["parameters"]; + response: Endpoints["PATCH /user/email/visibility"]["response"]; + }; + unblock: { + parameters: RequestParameters & Endpoints["DELETE /user/blocks/{username}"]["parameters"]; + response: Endpoints["DELETE /user/blocks/{username}"]["response"]; + }; + unfollow: { + parameters: RequestParameters & Endpoints["DELETE /user/following/{username}"]["parameters"]; + response: Endpoints["DELETE /user/following/{username}"]["response"]; + }; + updateAuthenticated: { + parameters: RequestParameters & Endpoints["PATCH /user"]["parameters"]; + response: Endpoints["PATCH /user"]["response"]; + }; + }; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/index.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/index.d.ts new file mode 100644 index 000000000..9b0af1845 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/index.d.ts @@ -0,0 +1,11 @@ +import type { Octokit } from "@octokit/core"; +export type { RestEndpointMethodTypes } from "./generated/parameters-and-response-types.js"; +import type { Api } from "./types.js"; +export declare function restEndpointMethods(octokit: Octokit): Api; +export declare namespace restEndpointMethods { + var VERSION: string; +} +export declare function legacyRestEndpointMethods(octokit: Octokit): Api["rest"] & Api; +export declare namespace legacyRestEndpointMethods { + var VERSION: string; +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/types.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/types.d.ts new file mode 100644 index 000000000..5fbfe844e --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/types.d.ts @@ -0,0 +1,18 @@ +import type { Route, RequestParameters } from "@octokit/types"; +import type { RestEndpointMethods } from "./generated/method-types.js"; +export type Api = { + rest: RestEndpointMethods; +}; +export type EndpointDecorations = { + mapToData?: string; + deprecated?: string; + renamed?: [string, string]; + renamedParameters?: { + [name: string]: string; + }; +}; +export type EndpointsDefaultsAndDecorations = { + [scope: string]: { + [methodName: string]: [Route, RequestParameters?, EndpointDecorations?]; + }; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/version.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/version.d.ts new file mode 100644 index 000000000..1abc9fce9 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "10.4.1"; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js new file mode 100644 index 000000000..9036f4938 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js @@ -0,0 +1,2137 @@ +// pkg/dist-src/version.js +var VERSION = "10.4.1"; + +// pkg/dist-src/generated/endpoints.js +var Endpoints = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: [ + "POST /orgs/{org}/actions/runners/{runner_id}/labels" + ], + addCustomLabelsToSelfHostedRunnerForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" + ], + addSelectedRepoToOrgVariable: [ + "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" + ], + approveWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve" + ], + cancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel" + ], + createEnvironmentVariable: [ + "POST /repositories/{repository_id}/environments/{environment_name}/variables" + ], + createOrUpdateEnvironmentSecret: [ + "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" + ], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}" + ], + createOrgVariable: ["POST /orgs/{org}/actions/variables"], + createRegistrationTokenForOrg: [ + "POST /orgs/{org}/actions/runners/registration-token" + ], + createRegistrationTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/registration-token" + ], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/remove-token" + ], + createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"], + createWorkflowDispatch: [ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches" + ], + deleteActionsCacheById: [ + "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}" + ], + deleteActionsCacheByKey: [ + "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}" + ], + deleteArtifact: [ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" + ], + deleteEnvironmentSecret: [ + "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" + ], + deleteEnvironmentVariable: [ + "DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}" + ], + deleteRepoVariable: [ + "DELETE /repos/{owner}/{repo}/actions/variables/{name}" + ], + deleteSelfHostedRunnerFromOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}" + ], + deleteSelfHostedRunnerFromRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}" + ], + deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], + deleteWorkflowRunLogs: [ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs" + ], + disableSelectedRepositoryGithubActionsOrganization: [ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}" + ], + disableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable" + ], + downloadArtifact: [ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}" + ], + downloadJobLogsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs" + ], + downloadWorkflowRunAttemptLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs" + ], + downloadWorkflowRunLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs" + ], + enableSelectedRepositoryGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}" + ], + enableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable" + ], + forceCancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel" + ], + generateRunnerJitconfigForOrg: [ + "POST /orgs/{org}/actions/runners/generate-jitconfig" + ], + generateRunnerJitconfigForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig" + ], + getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], + getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], + getActionsCacheUsageByRepoForOrg: [ + "GET /orgs/{org}/actions/cache/usage-by-repository" + ], + getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], + getAllowedActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/selected-actions" + ], + getAllowedActionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions" + ], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getCustomOidcSubClaimForRepo: [ + "GET /repos/{owner}/{repo}/actions/oidc/customization/sub" + ], + getEnvironmentPublicKey: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key" + ], + getEnvironmentSecret: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" + ], + getEnvironmentVariable: [ + "GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}" + ], + getGithubActionsDefaultWorkflowPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions/workflow" + ], + getGithubActionsDefaultWorkflowPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/workflow" + ], + getGithubActionsPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions" + ], + getGithubActionsPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions" + ], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"], + getPendingDeploymentsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" + ], + getRepoPermissions: [ + "GET /repos/{owner}/{repo}/actions/permissions", + {}, + { renamed: ["actions", "getGithubActionsPermissionsRepository"] } + ], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"], + getReviewsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals" + ], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}" + ], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowAccessToRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/access" + ], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunAttempt: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}" + ], + getWorkflowRunUsage: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing" + ], + getWorkflowUsage: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing" + ], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listEnvironmentSecrets: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets" + ], + listEnvironmentVariables: [ + "GET /repositories/{repository_id}/environments/{environment_name}/variables" + ], + listJobsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" + ], + listJobsForWorkflowRunAttempt: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" + ], + listLabelsForSelfHostedRunnerForOrg: [ + "GET /orgs/{org}/actions/runners/{runner_id}/labels" + ], + listLabelsForSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listOrgVariables: ["GET /orgs/{org}/actions/variables"], + listRepoOrganizationSecrets: [ + "GET /repos/{owner}/{repo}/actions/organization-secrets" + ], + listRepoOrganizationVariables: [ + "GET /repos/{owner}/{repo}/actions/organization-variables" + ], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/downloads" + ], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" + ], + listSelectedReposForOrgVariable: [ + "GET /orgs/{org}/actions/variables/{name}/repositories" + ], + listSelectedRepositoriesEnabledGithubActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/repositories" + ], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" + ], + listWorkflowRuns: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" + ], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunJobForWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun" + ], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + reRunWorkflowFailedJobs: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs" + ], + removeAllCustomLabelsFromSelfHostedRunnerForOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels" + ], + removeAllCustomLabelsFromSelfHostedRunnerForRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + removeCustomLabelFromSelfHostedRunnerForOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}" + ], + removeCustomLabelFromSelfHostedRunnerForRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" + ], + removeSelectedRepoFromOrgVariable: [ + "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" + ], + reviewCustomGatesForRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule" + ], + reviewPendingDeploymentsForRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" + ], + setAllowedActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/selected-actions" + ], + setAllowedActionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions" + ], + setCustomLabelsForSelfHostedRunnerForOrg: [ + "PUT /orgs/{org}/actions/runners/{runner_id}/labels" + ], + setCustomLabelsForSelfHostedRunnerForRepo: [ + "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + setCustomOidcSubClaimForRepo: [ + "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub" + ], + setGithubActionsDefaultWorkflowPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/workflow" + ], + setGithubActionsDefaultWorkflowPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/workflow" + ], + setGithubActionsPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions" + ], + setGithubActionsPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories" + ], + setSelectedReposForOrgVariable: [ + "PUT /orgs/{org}/actions/variables/{name}/repositories" + ], + setSelectedRepositoriesEnabledGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories" + ], + setWorkflowAccessToRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/access" + ], + updateEnvironmentVariable: [ + "PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}" + ], + updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"], + updateRepoVariable: [ + "PATCH /repos/{owner}/{repo}/actions/variables/{name}" + ] + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: [ + "DELETE /notifications/threads/{thread_id}/subscription" + ], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: [ + "GET /notifications/threads/{thread_id}/subscription" + ], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: [ + "GET /users/{username}/events/orgs/{org}" + ], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: [ + "GET /users/{username}/received_events/public" + ], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/notifications" + ], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: [ + "PUT /notifications/threads/{thread_id}/subscription" + ], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] + }, + apps: { + addRepoToInstallation: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}", + {}, + { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] } + ], + addRepoToInstallationForAuthenticatedUser: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}" + ], + checkToken: ["POST /applications/{client_id}/token"], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: [ + "POST /app/installations/{installation_id}/access_tokens" + ], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}"], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app"], + getBySlug: ["GET /apps/{app_slug}"], + getInstallation: ["GET /app/installations/{installation_id}"], + getOrgInstallation: ["GET /orgs/{org}/installation"], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], + getSubscriptionPlanForAccount: [ + "GET /marketplace_listing/accounts/{account_id}" + ], + getSubscriptionPlanForAccountStubbed: [ + "GET /marketplace_listing/stubbed/accounts/{account_id}" + ], + getUserInstallation: ["GET /users/{username}/installation"], + getWebhookConfigForApp: ["GET /app/hook/config"], + getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: [ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" + ], + listInstallationReposForAuthenticatedUser: [ + "GET /user/installations/{installation_id}/repositories" + ], + listInstallationRequestsForAuthenticatedApp: [ + "GET /app/installation-requests" + ], + listInstallations: ["GET /app/installations"], + listInstallationsForAuthenticatedUser: ["GET /user/installations"], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories"], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: [ + "GET /user/marketplace_purchases/stubbed" + ], + listWebhookDeliveries: ["GET /app/hook/deliveries"], + redeliverWebhookDelivery: [ + "POST /app/hook/deliveries/{delivery_id}/attempts" + ], + removeRepoFromInstallation: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}", + {}, + { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] } + ], + removeRepoFromInstallationForAuthenticatedUser: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}" + ], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + scopeToken: ["POST /applications/{client_id}/token/scoped"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: [ + "DELETE /app/installations/{installation_id}/suspended" + ], + updateWebhookConfigForApp: ["PATCH /app/hook/config"] + }, + billing: { + getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], + getGithubActionsBillingUser: [ + "GET /users/{username}/settings/billing/actions" + ], + getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], + getGithubPackagesBillingUser: [ + "GET /users/{username}/settings/billing/packages" + ], + getSharedStorageBillingOrg: [ + "GET /orgs/{org}/settings/billing/shared-storage" + ], + getSharedStorageBillingUser: [ + "GET /users/{username}/settings/billing/shared-storage" + ] + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs"], + createSuite: ["POST /repos/{owner}/{repo}/check-suites"], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], + listAnnotations: [ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" + ], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], + listForSuite: [ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" + ], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], + rerequestRun: [ + "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest" + ], + rerequestSuite: [ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest" + ], + setSuitesPreferences: [ + "PATCH /repos/{owner}/{repo}/check-suites/preferences" + ], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] + }, + codeScanning: { + deleteAnalysis: [ + "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" + ], + getAlert: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + {}, + { renamedParameters: { alert_id: "alert_number" } } + ], + getAnalysis: [ + "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}" + ], + getCodeqlDatabase: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" + ], + getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + listAlertInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" + ], + listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listAlertsInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + {}, + { renamed: ["codeScanning", "listAlertInstances"] } + ], + listCodeqlDatabases: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases" + ], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" + ], + updateDefaultSetup: [ + "PATCH /repos/{owner}/{repo}/code-scanning/default-setup" + ], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct"], + getConductCode: ["GET /codes_of_conduct/{key}"] + }, + codespaces: { + addRepositoryForSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + checkPermissionsForDevcontainer: [ + "GET /repos/{owner}/{repo}/codespaces/permissions_check" + ], + codespaceMachinesForAuthenticatedUser: [ + "GET /user/codespaces/{codespace_name}/machines" + ], + createForAuthenticatedUser: ["POST /user/codespaces"], + createOrUpdateOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}" + ], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + createOrUpdateSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}" + ], + createWithPrForAuthenticatedUser: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces" + ], + createWithRepoForAuthenticatedUser: [ + "POST /repos/{owner}/{repo}/codespaces" + ], + deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], + deleteFromOrganization: [ + "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + deleteSecretForAuthenticatedUser: [ + "DELETE /user/codespaces/secrets/{secret_name}" + ], + exportForAuthenticatedUser: [ + "POST /user/codespaces/{codespace_name}/exports" + ], + getCodespacesForUserInOrg: [ + "GET /orgs/{org}/members/{username}/codespaces" + ], + getExportDetailsForAuthenticatedUser: [ + "GET /user/codespaces/{codespace_name}/exports/{export_id}" + ], + getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], + getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"], + getPublicKeyForAuthenticatedUser: [ + "GET /user/codespaces/secrets/public-key" + ], + getRepoPublicKey: [ + "GET /repos/{owner}/{repo}/codespaces/secrets/public-key" + ], + getRepoSecret: [ + "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + getSecretForAuthenticatedUser: [ + "GET /user/codespaces/secrets/{secret_name}" + ], + listDevcontainersInRepositoryForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/devcontainers" + ], + listForAuthenticatedUser: ["GET /user/codespaces"], + listInOrganization: [ + "GET /orgs/{org}/codespaces", + {}, + { renamedParameters: { org_id: "org" } } + ], + listInRepositoryForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces" + ], + listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], + listRepositoriesForSecretForAuthenticatedUser: [ + "GET /user/codespaces/secrets/{secret_name}/repositories" + ], + listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories" + ], + preFlightWithRepoForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/new" + ], + publishForAuthenticatedUser: [ + "POST /user/codespaces/{codespace_name}/publish" + ], + removeRepositoryForSecretForAuthenticatedUser: [ + "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + repoMachinesForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/machines" + ], + setRepositoriesForSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}/repositories" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories" + ], + startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], + stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], + stopInOrganization: [ + "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop" + ], + updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] + }, + copilot: { + addCopilotSeatsForTeams: [ + "POST /orgs/{org}/copilot/billing/selected_teams" + ], + addCopilotSeatsForUsers: [ + "POST /orgs/{org}/copilot/billing/selected_users" + ], + cancelCopilotSeatAssignmentForTeams: [ + "DELETE /orgs/{org}/copilot/billing/selected_teams" + ], + cancelCopilotSeatAssignmentForUsers: [ + "DELETE /orgs/{org}/copilot/billing/selected_users" + ], + getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"], + getCopilotSeatDetailsForUser: [ + "GET /orgs/{org}/members/{username}/copilot" + ], + listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"] + }, + dependabot: { + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" + ], + createOrUpdateOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}" + ], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"], + getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], + getRepoPublicKey: [ + "GET /repos/{owner}/{repo}/dependabot/secrets/public-key" + ], + getRepoSecret: [ + "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + listAlertsForEnterprise: [ + "GET /enterprises/{enterprise}/dependabot/alerts" + ], + listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"], + listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" + ] + }, + dependencyGraph: { + createRepositorySnapshot: [ + "POST /repos/{owner}/{repo}/dependency-graph/snapshots" + ], + diffRange: [ + "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}" + ], + exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"] + }, + emojis: { get: ["GET /emojis"] }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"] + }, + interactions: { + getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], + getRestrictionsForYourPublicRepos: [ + "GET /user/interaction-limits", + {}, + { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] } + ], + removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], + removeRestrictionsForRepo: [ + "DELETE /repos/{owner}/{repo}/interaction-limits" + ], + removeRestrictionsForYourPublicRepos: [ + "DELETE /user/interaction-limits", + {}, + { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] } + ], + setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], + setRestrictionsForYourPublicRepos: [ + "PUT /user/interaction-limits", + {}, + { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] } + ] + }, + issues: { + addAssignees: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees" + ], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + checkUserCanBeAssignedToIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}" + ], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments" + ], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}" + ], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: [ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}" + ], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline" + ], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: [ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels" + ], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels" + ], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels" + ], + removeAssignees: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees" + ], + removeLabel: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" + ], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: [ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}" + ] + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"] + }, + markdown: { + render: ["POST /markdown"], + renderRaw: [ + "POST /markdown/raw", + { headers: { "content-type": "text/plain; charset=utf-8" } } + ] + }, + meta: { + get: ["GET /meta"], + getAllVersions: ["GET /versions"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"] + }, + migrations: { + cancelImport: [ + "DELETE /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import" + } + ], + deleteArchiveForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/archive" + ], + deleteArchiveForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/archive" + ], + downloadArchiveForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}/archive" + ], + getArchiveForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/archive" + ], + getCommitAuthors: [ + "GET /repos/{owner}/{repo}/import/authors", + {}, + { + deprecated: "octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors" + } + ], + getImportStatus: [ + "GET /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status" + } + ], + getLargeFiles: [ + "GET /repos/{owner}/{repo}/import/large_files", + {}, + { + deprecated: "octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files" + } + ], + getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], + getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], + listForAuthenticatedUser: ["GET /user/migrations"], + listForOrg: ["GET /orgs/{org}/migrations"], + listReposForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/repositories" + ], + listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], + listReposForUser: [ + "GET /user/migrations/{migration_id}/repositories", + {}, + { renamed: ["migrations", "listReposForAuthenticatedUser"] } + ], + mapCommitAuthor: [ + "PATCH /repos/{owner}/{repo}/import/authors/{author_id}", + {}, + { + deprecated: "octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author" + } + ], + setLfsPreference: [ + "PATCH /repos/{owner}/{repo}/import/lfs", + {}, + { + deprecated: "octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference" + } + ], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: [ + "PUT /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import" + } + ], + unlockRepoForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" + ], + unlockRepoForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" + ], + updateImport: [ + "PATCH /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import" + } + ] + }, + oidc: { + getOidcCustomSubTemplateForOrg: [ + "GET /orgs/{org}/actions/oidc/customization/sub" + ], + updateOidcCustomSubTemplateForOrg: [ + "PUT /orgs/{org}/actions/oidc/customization/sub" + ] + }, + orgs: { + addSecurityManagerTeam: [ + "PUT /orgs/{org}/security-managers/teams/{team_slug}" + ], + assignTeamToOrgRole: [ + "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" + ], + assignUserToOrgRole: [ + "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}" + ], + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: [ + "PUT /orgs/{org}/outside_collaborators/{username}" + ], + createCustomOrganizationRole: ["POST /orgs/{org}/organization-roles"], + createInvitation: ["POST /orgs/{org}/invitations"], + createOrUpdateCustomProperties: ["PATCH /orgs/{org}/properties/schema"], + createOrUpdateCustomPropertiesValuesForRepos: [ + "PATCH /orgs/{org}/properties/values" + ], + createOrUpdateCustomProperty: [ + "PUT /orgs/{org}/properties/schema/{custom_property_name}" + ], + createWebhook: ["POST /orgs/{org}/hooks"], + delete: ["DELETE /orgs/{org}"], + deleteCustomOrganizationRole: [ + "DELETE /orgs/{org}/organization-roles/{role_id}" + ], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + enableOrDisableSecurityProductOnAllOrgRepos: [ + "POST /orgs/{org}/{security_product}/{enablement}" + ], + get: ["GET /orgs/{org}"], + getAllCustomProperties: ["GET /orgs/{org}/properties/schema"], + getCustomProperty: [ + "GET /orgs/{org}/properties/schema/{custom_property_name}" + ], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], + getWebhookDelivery: [ + "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}" + ], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listCustomPropertiesValuesForRepos: ["GET /orgs/{org}/properties/values"], + listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"], + listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"], + listOrgRoles: ["GET /orgs/{org}/organization-roles"], + listOrganizationFineGrainedPermissions: [ + "GET /orgs/{org}/organization-fine-grained-permissions" + ], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPatGrantRepositories: [ + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories" + ], + listPatGrantRequestRepositories: [ + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories" + ], + listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"], + listPatGrants: ["GET /orgs/{org}/personal-access-tokens"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listSecurityManagerTeams: ["GET /orgs/{org}/security-managers"], + listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], + listWebhooks: ["GET /orgs/{org}/hooks"], + patchCustomOrganizationRole: [ + "PATCH /orgs/{org}/organization-roles/{role_id}" + ], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: [ + "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" + ], + removeCustomProperty: [ + "DELETE /orgs/{org}/properties/schema/{custom_property_name}" + ], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: [ + "DELETE /orgs/{org}/outside_collaborators/{username}" + ], + removePublicMembershipForAuthenticatedUser: [ + "DELETE /orgs/{org}/public_members/{username}" + ], + removeSecurityManagerTeam: [ + "DELETE /orgs/{org}/security-managers/teams/{team_slug}" + ], + reviewPatGrantRequest: [ + "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}" + ], + reviewPatGrantRequestsInBulk: [ + "POST /orgs/{org}/personal-access-token-requests" + ], + revokeAllOrgRolesTeam: [ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}" + ], + revokeAllOrgRolesUser: [ + "DELETE /orgs/{org}/organization-roles/users/{username}" + ], + revokeOrgRoleTeam: [ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" + ], + revokeOrgRoleUser: [ + "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}" + ], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: [ + "PUT /orgs/{org}/public_members/{username}" + ], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: [ + "PATCH /user/memberships/orgs/{org}" + ], + updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"], + updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], + updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] + }, + packages: { + deletePackageForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}" + ], + deletePackageForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}" + ], + deletePackageForUser: [ + "DELETE /users/{username}/packages/{package_type}/{package_name}" + ], + deletePackageVersionForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + deletePackageVersionForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + deletePackageVersionForUser: [ + "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getAllPackageVersionsForAPackageOwnedByAnOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + {}, + { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] } + ], + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions", + {}, + { + renamed: [ + "packages", + "getAllPackageVersionsForPackageOwnedByAuthenticatedUser" + ] + } + ], + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions" + ], + getAllPackageVersionsForPackageOwnedByOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" + ], + getAllPackageVersionsForPackageOwnedByUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions" + ], + getPackageForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}" + ], + getPackageForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}" + ], + getPackageForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}" + ], + getPackageVersionForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getPackageVersionForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getPackageVersionForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + listDockerMigrationConflictingPackagesForAuthenticatedUser: [ + "GET /user/docker/conflicts" + ], + listDockerMigrationConflictingPackagesForOrganization: [ + "GET /orgs/{org}/docker/conflicts" + ], + listDockerMigrationConflictingPackagesForUser: [ + "GET /users/{username}/docker/conflicts" + ], + listPackagesForAuthenticatedUser: ["GET /user/packages"], + listPackagesForOrganization: ["GET /orgs/{org}/packages"], + listPackagesForUser: ["GET /users/{username}/packages"], + restorePackageForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageForUser: [ + "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageVersionForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ], + restorePackageVersionForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ], + restorePackageVersionForUser: [ + "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ] + }, + projects: { + addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], + createCard: ["POST /projects/columns/{column_id}/cards"], + createColumn: ["POST /projects/{project_id}/columns"], + createForAuthenticatedUser: ["POST /user/projects"], + createForOrg: ["POST /orgs/{org}/projects"], + createForRepo: ["POST /repos/{owner}/{repo}/projects"], + delete: ["DELETE /projects/{project_id}"], + deleteCard: ["DELETE /projects/columns/cards/{card_id}"], + deleteColumn: ["DELETE /projects/columns/{column_id}"], + get: ["GET /projects/{project_id}"], + getCard: ["GET /projects/columns/cards/{card_id}"], + getColumn: ["GET /projects/columns/{column_id}"], + getPermissionForUser: [ + "GET /projects/{project_id}/collaborators/{username}/permission" + ], + listCards: ["GET /projects/columns/{column_id}/cards"], + listCollaborators: ["GET /projects/{project_id}/collaborators"], + listColumns: ["GET /projects/{project_id}/columns"], + listForOrg: ["GET /orgs/{org}/projects"], + listForRepo: ["GET /repos/{owner}/{repo}/projects"], + listForUser: ["GET /users/{username}/projects"], + moveCard: ["POST /projects/columns/cards/{card_id}/moves"], + moveColumn: ["POST /projects/columns/{column_id}/moves"], + removeCollaborator: [ + "DELETE /projects/{project_id}/collaborators/{username}" + ], + update: ["PATCH /projects/{project_id}"], + updateCard: ["PATCH /projects/columns/cards/{card_id}"], + updateColumn: ["PATCH /projects/columns/{column_id}"] + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies" + ], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments" + ], + deletePendingReview: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + deleteReviewComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}" + ], + dismissReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals" + ], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments" + ], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + listReviewComments: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments" + ], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + requestReviewers: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + submitReview: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events" + ], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch" + ], + updateReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + updateReviewComment: [ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}" + ] + }, + rateLimit: { get: ["GET /rate_limit"] }, + reactions: { + createForCommitComment: [ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions" + ], + createForIssue: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions" + ], + createForIssueComment: [ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" + ], + createForPullRequestReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" + ], + createForRelease: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/reactions" + ], + createForTeamDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" + ], + createForTeamDiscussionInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" + ], + deleteForCommitComment: [ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForIssue: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}" + ], + deleteForIssueComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForPullRequestComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForRelease: [ + "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}" + ], + deleteForTeamDiscussion: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}" + ], + deleteForTeamDiscussionComment: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}" + ], + listForCommitComment: [ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" + ], + listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], + listForIssueComment: [ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" + ], + listForPullRequestReviewComment: [ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" + ], + listForRelease: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions" + ], + listForTeamDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" + ], + listForTeamDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" + ] + }, + repos: { + acceptInvitation: [ + "PATCH /user/repository_invitations/{invitation_id}", + {}, + { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] } + ], + acceptInvitationForAuthenticatedUser: [ + "PATCH /user/repository_invitations/{invitation_id}" + ], + addAppAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + addTeamAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + addUserAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + cancelPagesDeployment: [ + "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel" + ], + checkAutomatedSecurityFixes: [ + "GET /repos/{owner}/{repo}/automated-security-fixes" + ], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkVulnerabilityAlerts: [ + "GET /repos/{owner}/{repo}/vulnerability-alerts" + ], + codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + compareCommitsWithBasehead: [ + "GET /repos/{owner}/{repo}/compare/{basehead}" + ], + createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], + createCommitComment: [ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments" + ], + createCommitSignatureProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentBranchPolicy: [ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" + ], + createDeploymentProtectionRule: [ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" + ], + createDeploymentStatus: [ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" + ], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateCustomPropertiesValues: [ + "PATCH /repos/{owner}/{repo}/properties/values" + ], + createOrUpdateEnvironment: [ + "PUT /repos/{owner}/{repo}/environments/{environment_name}" + ], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createOrgRuleset: ["POST /orgs/{org}/rulesets"], + createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"], + createPagesSite: ["POST /repos/{owner}/{repo}/pages"], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"], + createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], + createUsingTemplate: [ + "POST /repos/{template_owner}/{template_repo}/generate" + ], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: [ + "DELETE /user/repository_invitations/{invitation_id}", + {}, + { renamed: ["repos", "declineInvitationForAuthenticatedUser"] } + ], + declineInvitationForAuthenticatedUser: [ + "DELETE /user/repository_invitations/{invitation_id}" + ], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" + ], + deleteAdminBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + deleteAnEnvironment: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}" + ], + deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], + deleteBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection" + ], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: [ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}" + ], + deleteDeploymentBranchPolicy: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: [ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}" + ], + deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"], + deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], + deletePullRequestReviewProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: [ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}" + ], + deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + deleteTagProtection: [ + "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}" + ], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: [ + "DELETE /repos/{owner}/{repo}/automated-security-fixes" + ], + disableDeploymentProtectionRule: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" + ], + disablePrivateVulnerabilityReporting: [ + "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting" + ], + disableVulnerabilityAlerts: [ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts" + ], + downloadArchive: [ + "GET /repos/{owner}/{repo}/zipball/{ref}", + {}, + { renamed: ["repos", "downloadZipballArchive"] } + ], + downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], + downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], + enableAutomatedSecurityFixes: [ + "PUT /repos/{owner}/{repo}/automated-security-fixes" + ], + enablePrivateVulnerabilityReporting: [ + "PUT /repos/{owner}/{repo}/private-vulnerability-reporting" + ], + enableVulnerabilityAlerts: [ + "PUT /repos/{owner}/{repo}/vulnerability-alerts" + ], + generateReleaseNotes: [ + "POST /repos/{owner}/{repo}/releases/generate-notes" + ], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" + ], + getAdminBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + getAllDeploymentProtectionRules: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" + ], + getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], + getAllStatusCheckContexts: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" + ], + getAllTopics: ["GET /repos/{owner}/{repo}/topics"], + getAppsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" + ], + getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection" + ], + getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: [ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission" + ], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getCustomDeploymentProtectionRule: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" + ], + getCustomPropertiesValues: ["GET /repos/{owner}/{repo}/properties/values"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentBranchPolicy: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + getDeploymentStatus: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}" + ], + getEnvironment: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}" + ], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"], + getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"], + getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"], + getOrgRulesets: ["GET /orgs/{org}/rulesets"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getPagesDeployment: [ + "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}" + ], + getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getRepoRuleSuite: [ + "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}" + ], + getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"], + getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"], + getStatusChecksProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + getTeamsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" + ], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" + ], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + getWebhookConfigForRepo: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config" + ], + getWebhookDelivery: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}" + ], + listActivities: ["GET /repos/{owner}/{repo}/activity"], + listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head" + ], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments" + ], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: [ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses" + ], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listCustomDeploymentRuleIntegrations: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps" + ], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentBranchPolicies: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" + ], + listDeploymentStatuses: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" + ], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls" + ], + listReleaseAssets: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets" + ], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhookDeliveries: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries" + ], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: [ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" + ], + removeAppAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + removeCollaborator: [ + "DELETE /repos/{owner}/{repo}/collaborators/{username}" + ], + removeStatusCheckContexts: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + removeStatusCheckProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + removeTeamAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + removeUserAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], + replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + setAppAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + setStatusCheckContexts: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + setTeamAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + setUserAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection" + ], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateDeploymentBranchPolicy: [ + "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: [ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}" + ], + updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"], + updatePullRequestReviewProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: [ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}" + ], + updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + updateStatusCheckPotection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + {}, + { renamed: ["repos", "updateStatusCheckProtection"] } + ], + updateStatusCheckProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + updateWebhookConfigForRepo: [ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config" + ], + uploadReleaseAsset: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", + { baseUrl: "https://uploads.github.com" } + ] + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits"], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics"], + users: ["GET /search/users"] + }, + secretScanning: { + getAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ], + listAlertsForEnterprise: [ + "GET /enterprises/{enterprise}/secret-scanning/alerts" + ], + listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], + listLocationsForAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ] + }, + securityAdvisories: { + createFork: [ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks" + ], + createPrivateVulnerabilityReport: [ + "POST /repos/{owner}/{repo}/security-advisories/reports" + ], + createRepositoryAdvisory: [ + "POST /repos/{owner}/{repo}/security-advisories" + ], + createRepositoryAdvisoryCveRequest: [ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve" + ], + getGlobalAdvisory: ["GET /advisories/{ghsa_id}"], + getRepositoryAdvisory: [ + "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}" + ], + listGlobalAdvisories: ["GET /advisories"], + listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"], + listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"], + updateRepositoryAdvisory: [ + "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}" + ] + }, + teams: { + addOrUpdateMembershipForUserInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + addOrUpdateProjectPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + addOrUpdateRepoPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + checkPermissionsForProjectInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + checkPermissionsForRepoInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" + ], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + deleteDiscussionInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + getDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + getMembershipForUserInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" + ], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/invitations" + ], + listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + removeProjectInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + removeRepoInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + updateDiscussionCommentInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + updateDiscussionInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] + }, + users: { + addEmailForAuthenticated: [ + "POST /user/emails", + {}, + { renamed: ["users", "addEmailForAuthenticatedUser"] } + ], + addEmailForAuthenticatedUser: ["POST /user/emails"], + addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: [ + "POST /user/gpg_keys", + {}, + { renamed: ["users", "createGpgKeyForAuthenticatedUser"] } + ], + createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: [ + "POST /user/keys", + {}, + { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] } + ], + createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], + createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"], + deleteEmailForAuthenticated: [ + "DELETE /user/emails", + {}, + { renamed: ["users", "deleteEmailForAuthenticatedUser"] } + ], + deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: [ + "DELETE /user/gpg_keys/{gpg_key_id}", + {}, + { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] } + ], + deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: [ + "DELETE /user/keys/{key_id}", + {}, + { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] } + ], + deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], + deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"], + deleteSshSigningKeyForAuthenticatedUser: [ + "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}" + ], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: [ + "GET /user/gpg_keys/{gpg_key_id}", + {}, + { renamed: ["users", "getGpgKeyForAuthenticatedUser"] } + ], + getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: [ + "GET /user/keys/{key_id}", + {}, + { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] } + ], + getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], + getSshSigningKeyForAuthenticatedUser: [ + "GET /user/ssh_signing_keys/{ssh_signing_key_id}" + ], + list: ["GET /users"], + listBlockedByAuthenticated: [ + "GET /user/blocks", + {}, + { renamed: ["users", "listBlockedByAuthenticatedUser"] } + ], + listBlockedByAuthenticatedUser: ["GET /user/blocks"], + listEmailsForAuthenticated: [ + "GET /user/emails", + {}, + { renamed: ["users", "listEmailsForAuthenticatedUser"] } + ], + listEmailsForAuthenticatedUser: ["GET /user/emails"], + listFollowedByAuthenticated: [ + "GET /user/following", + {}, + { renamed: ["users", "listFollowedByAuthenticatedUser"] } + ], + listFollowedByAuthenticatedUser: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: [ + "GET /user/gpg_keys", + {}, + { renamed: ["users", "listGpgKeysForAuthenticatedUser"] } + ], + listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: [ + "GET /user/public_emails", + {}, + { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] } + ], + listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: [ + "GET /user/keys", + {}, + { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] } + ], + listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], + listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"], + listSocialAccountsForUser: ["GET /users/{username}/social_accounts"], + listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"], + listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"], + setPrimaryEmailVisibilityForAuthenticated: [ + "PATCH /user/email/visibility", + {}, + { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] } + ], + setPrimaryEmailVisibilityForAuthenticatedUser: [ + "PATCH /user/email/visibility" + ], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"] + } +}; +var endpoints_default = Endpoints; + +// pkg/dist-src/endpoints-to-methods.js +var endpointMethodsMap = /* @__PURE__ */ new Map(); +for (const [scope, endpoints] of Object.entries(endpoints_default)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign( + { + method, + url + }, + defaults + ); + if (!endpointMethodsMap.has(scope)) { + endpointMethodsMap.set(scope, /* @__PURE__ */ new Map()); + } + endpointMethodsMap.get(scope).set(methodName, { + scope, + methodName, + endpointDefaults, + decorations + }); + } +} +var handler = { + has({ scope }, methodName) { + return endpointMethodsMap.get(scope).has(methodName); + }, + getOwnPropertyDescriptor(target, methodName) { + return { + value: this.get(target, methodName), + // ensures method is in the cache + configurable: true, + writable: true, + enumerable: true + }; + }, + defineProperty(target, methodName, descriptor) { + Object.defineProperty(target.cache, methodName, descriptor); + return true; + }, + deleteProperty(target, methodName) { + delete target.cache[methodName]; + return true; + }, + ownKeys({ scope }) { + return [...endpointMethodsMap.get(scope).keys()]; + }, + set(target, methodName, value) { + return target.cache[methodName] = value; + }, + get({ octokit, scope, cache }, methodName) { + if (cache[methodName]) { + return cache[methodName]; + } + const method = endpointMethodsMap.get(scope).get(methodName); + if (!method) { + return void 0; + } + const { endpointDefaults, decorations } = method; + if (decorations) { + cache[methodName] = decorate( + octokit, + scope, + methodName, + endpointDefaults, + decorations + ); + } else { + cache[methodName] = octokit.request.defaults(endpointDefaults); + } + return cache[methodName]; + } +}; +function endpointsToMethods(octokit) { + const newMethods = {}; + for (const scope of endpointMethodsMap.keys()) { + newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler); + } + return newMethods; +} +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + function withDecorations(...args) { + let options = requestWithDefaults.endpoint.merge(...args); + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: void 0 + }); + return requestWithDefaults(options); + } + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn( + `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()` + ); + } + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + if (decorations.renamedParameters) { + const options2 = requestWithDefaults.endpoint.merge(...args); + for (const [name, alias] of Object.entries( + decorations.renamedParameters + )) { + if (name in options2) { + octokit.log.warn( + `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead` + ); + if (!(alias in options2)) { + options2[alias] = options2[name]; + } + delete options2[name]; + } + } + return requestWithDefaults(options2); + } + return requestWithDefaults(...args); + } + return Object.assign(withDecorations, requestWithDefaults); +} + +// pkg/dist-src/index.js +function restEndpointMethods(octokit) { + const api = endpointsToMethods(octokit); + return { + rest: api + }; +} +restEndpointMethods.VERSION = VERSION; +function legacyRestEndpointMethods(octokit) { + const api = endpointsToMethods(octokit); + return { + ...api, + rest: api + }; +} +legacyRestEndpointMethods.VERSION = VERSION; +export { + legacyRestEndpointMethods, + restEndpointMethods +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js.map b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js.map new file mode 100644 index 000000000..f22c00149 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/version.js", "../dist-src/generated/endpoints.js", "../dist-src/endpoints-to-methods.js", "../dist-src/index.js"], + "sourcesContent": ["const VERSION = \"10.4.1\";\nexport {\n VERSION\n};\n", "const Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\n \"POST /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n addCustomLabelsToSelfHostedRunnerForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n addSelectedRepoToOrgVariable: [\n \"PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}\"\n ],\n approveWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"\n ],\n cancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"\n ],\n createEnvironmentVariable: [\n \"POST /repositories/{repository_id}/environments/{environment_name}/variables\"\n ],\n createOrUpdateEnvironmentSecret: [\n \"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"\n ],\n createOrgVariable: [\"POST /orgs/{org}/actions/variables\"],\n createRegistrationTokenForOrg: [\n \"POST /orgs/{org}/actions/runners/registration-token\"\n ],\n createRegistrationTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/registration-token\"\n ],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/remove-token\"\n ],\n createRepoVariable: [\"POST /repos/{owner}/{repo}/actions/variables\"],\n createWorkflowDispatch: [\n \"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"\n ],\n deleteActionsCacheById: [\n \"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"\n ],\n deleteActionsCacheByKey: [\n \"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"\n ],\n deleteArtifact: [\n \"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"\n ],\n deleteEnvironmentSecret: [\n \"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n deleteEnvironmentVariable: [\n \"DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteOrgVariable: [\"DELETE /orgs/{org}/actions/variables/{name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"\n ],\n deleteRepoVariable: [\n \"DELETE /repos/{owner}/{repo}/actions/variables/{name}\"\n ],\n deleteSelfHostedRunnerFromOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}\"\n ],\n deleteSelfHostedRunnerFromRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"\n ],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\n \"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"\n ],\n disableSelectedRepositoryGithubActionsOrganization: [\n \"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"\n ],\n disableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"\n ],\n downloadArtifact: [\n \"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"\n ],\n downloadJobLogsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"\n ],\n downloadWorkflowRunAttemptLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"\n ],\n downloadWorkflowRunLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"\n ],\n enableSelectedRepositoryGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"\n ],\n enableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"\n ],\n forceCancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel\"\n ],\n generateRunnerJitconfigForOrg: [\n \"POST /orgs/{org}/actions/runners/generate-jitconfig\"\n ],\n generateRunnerJitconfigForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig\"\n ],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\n \"GET /orgs/{org}/actions/cache/usage-by-repository\"\n ],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/selected-actions\"\n ],\n getAllowedActionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"\n ],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getCustomOidcSubClaimForRepo: [\n \"GET /repos/{owner}/{repo}/actions/oidc/customization/sub\"\n ],\n getEnvironmentPublicKey: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"\n ],\n getEnvironmentSecret: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n getEnvironmentVariable: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}\"\n ],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/workflow\"\n ],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/workflow\"\n ],\n getGithubActionsPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions\"\n ],\n getGithubActionsPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions\"\n ],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getOrgVariable: [\"GET /orgs/{org}/actions/variables/{name}\"],\n getPendingDeploymentsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"\n ],\n getRepoPermissions: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n {},\n { renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"] }\n ],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getRepoVariable: [\"GET /repos/{owner}/{repo}/actions/variables/{name}\"],\n getReviewsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"\n ],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"\n ],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/access\"\n ],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"\n ],\n getWorkflowRunUsage: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"\n ],\n getWorkflowUsage: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"\n ],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"\n ],\n listEnvironmentVariables: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/variables\"\n ],\n listJobsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"\n ],\n listJobsForWorkflowRunAttempt: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"\n ],\n listLabelsForSelfHostedRunnerForOrg: [\n \"GET /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n listLabelsForSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listOrgVariables: [\"GET /orgs/{org}/actions/variables\"],\n listRepoOrganizationSecrets: [\n \"GET /repos/{owner}/{repo}/actions/organization-secrets\"\n ],\n listRepoOrganizationVariables: [\n \"GET /repos/{owner}/{repo}/actions/organization-variables\"\n ],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoVariables: [\"GET /repos/{owner}/{repo}/actions/variables\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/downloads\"\n ],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"\n ],\n listSelectedReposForOrgVariable: [\n \"GET /orgs/{org}/actions/variables/{name}/repositories\"\n ],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/repositories\"\n ],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"\n ],\n listWorkflowRuns: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"\n ],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"\n ],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"\n ],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"\n ],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n removeSelectedRepoFromOrgVariable: [\n \"DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}\"\n ],\n reviewCustomGatesForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule\"\n ],\n reviewPendingDeploymentsForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"\n ],\n setAllowedActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/selected-actions\"\n ],\n setAllowedActionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"\n ],\n setCustomLabelsForSelfHostedRunnerForOrg: [\n \"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n setCustomLabelsForSelfHostedRunnerForRepo: [\n \"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n setCustomOidcSubClaimForRepo: [\n \"PUT /repos/{owner}/{repo}/actions/oidc/customization/sub\"\n ],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/workflow\"\n ],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"\n ],\n setGithubActionsPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions\"\n ],\n setGithubActionsPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"\n ],\n setSelectedReposForOrgVariable: [\n \"PUT /orgs/{org}/actions/variables/{name}/repositories\"\n ],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories\"\n ],\n setWorkflowAccessToRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/access\"\n ],\n updateEnvironmentVariable: [\n \"PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}\"\n ],\n updateOrgVariable: [\"PATCH /orgs/{org}/actions/variables/{name}\"],\n updateRepoVariable: [\n \"PATCH /repos/{owner}/{repo}/actions/variables/{name}\"\n ]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\n \"DELETE /notifications/threads/{thread_id}/subscription\"\n ],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\n \"GET /notifications/threads/{thread_id}/subscription\"\n ],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\n \"GET /users/{username}/events/orgs/{org}\"\n ],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\n \"GET /users/{username}/received_events/public\"\n ],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/notifications\"\n ],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsDone: [\"DELETE /notifications/threads/{thread_id}\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\n \"PUT /notifications/threads/{thread_id}/subscription\"\n ],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\",\n {},\n { renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"] }\n ],\n addRepoToInstallationForAuthenticatedUser: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\"\n ],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\n \"POST /app/installations/{installation_id}/access_tokens\"\n ],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\n \"GET /marketplace_listing/accounts/{account_id}\"\n ],\n getSubscriptionPlanForAccountStubbed: [\n \"GET /marketplace_listing/stubbed/accounts/{account_id}\"\n ],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"\n ],\n listInstallationReposForAuthenticatedUser: [\n \"GET /user/installations/{installation_id}/repositories\"\n ],\n listInstallationRequestsForAuthenticatedApp: [\n \"GET /app/installation-requests\"\n ],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\n \"GET /user/marketplace_purchases/stubbed\"\n ],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\n \"POST /app/hook/deliveries/{delivery_id}/attempts\"\n ],\n removeRepoFromInstallation: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\",\n {},\n { renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"] }\n ],\n removeRepoFromInstallationForAuthenticatedUser: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"\n ],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\n \"DELETE /app/installations/{installation_id}/suspended\"\n ],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\n \"GET /users/{username}/settings/billing/actions\"\n ],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\n \"GET /users/{username}/settings/billing/packages\"\n ],\n getSharedStorageBillingOrg: [\n \"GET /orgs/{org}/settings/billing/shared-storage\"\n ],\n getSharedStorageBillingUser: [\n \"GET /users/{username}/settings/billing/shared-storage\"\n ]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"\n ],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"\n ],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\n \"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"\n ],\n rerequestSuite: [\n \"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"\n ],\n setSuitesPreferences: [\n \"PATCH /repos/{owner}/{repo}/check-suites/preferences\"\n ],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\n \"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"\n ],\n getAlert: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n {},\n { renamedParameters: { alert_id: \"alert_number\" } }\n ],\n getAnalysis: [\n \"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"\n ],\n getCodeqlDatabase: [\n \"GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}\"\n ],\n getDefaultSetup: [\"GET /repos/{owner}/{repo}/code-scanning/default-setup\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n {},\n { renamed: [\"codeScanning\", \"listAlertInstances\"] }\n ],\n listCodeqlDatabases: [\n \"GET /repos/{owner}/{repo}/code-scanning/codeql/databases\"\n ],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"\n ],\n updateDefaultSetup: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/default-setup\"\n ],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n checkPermissionsForDevcontainer: [\n \"GET /repos/{owner}/{repo}/codespaces/permissions_check\"\n ],\n codespaceMachinesForAuthenticatedUser: [\n \"GET /user/codespaces/{codespace_name}/machines\"\n ],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}\"\n ],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n createOrUpdateSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}\"\n ],\n createWithPrForAuthenticatedUser: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"\n ],\n createWithRepoForAuthenticatedUser: [\n \"POST /repos/{owner}/{repo}/codespaces\"\n ],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\n \"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/codespaces/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n deleteSecretForAuthenticatedUser: [\n \"DELETE /user/codespaces/secrets/{secret_name}\"\n ],\n exportForAuthenticatedUser: [\n \"POST /user/codespaces/{codespace_name}/exports\"\n ],\n getCodespacesForUserInOrg: [\n \"GET /orgs/{org}/members/{username}/codespaces\"\n ],\n getExportDetailsForAuthenticatedUser: [\n \"GET /user/codespaces/{codespace_name}/exports/{export_id}\"\n ],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/codespaces/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/codespaces/secrets/{secret_name}\"],\n getPublicKeyForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/public-key\"\n ],\n getRepoPublicKey: [\n \"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"\n ],\n getRepoSecret: [\n \"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n getSecretForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/{secret_name}\"\n ],\n listDevcontainersInRepositoryForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/devcontainers\"\n ],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\n \"GET /orgs/{org}/codespaces\",\n {},\n { renamedParameters: { org_id: \"org\" } }\n ],\n listInRepositoryForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces\"\n ],\n listOrgSecrets: [\"GET /orgs/{org}/codespaces/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/{secret_name}/repositories\"\n ],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories\"\n ],\n preFlightWithRepoForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/new\"\n ],\n publishForAuthenticatedUser: [\n \"POST /user/codespaces/{codespace_name}/publish\"\n ],\n removeRepositoryForSecretForAuthenticatedUser: [\n \"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n repoMachinesForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/machines\"\n ],\n setRepositoriesForSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}/repositories\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories\"\n ],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\n \"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"\n ],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n copilot: {\n addCopilotSeatsForTeams: [\n \"POST /orgs/{org}/copilot/billing/selected_teams\"\n ],\n addCopilotSeatsForUsers: [\n \"POST /orgs/{org}/copilot/billing/selected_users\"\n ],\n cancelCopilotSeatAssignmentForTeams: [\n \"DELETE /orgs/{org}/copilot/billing/selected_teams\"\n ],\n cancelCopilotSeatAssignmentForUsers: [\n \"DELETE /orgs/{org}/copilot/billing/selected_users\"\n ],\n getCopilotOrganizationDetails: [\"GET /orgs/{org}/copilot/billing\"],\n getCopilotSeatDetailsForUser: [\n \"GET /orgs/{org}/members/{username}/copilot\"\n ],\n listCopilotSeats: [\"GET /orgs/{org}/copilot/billing/seats\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n createOrUpdateOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"\n ],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n getAlert: [\"GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\n \"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"\n ],\n getRepoSecret: [\n \"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n listAlertsForEnterprise: [\n \"GET /enterprises/{enterprise}/dependabot/alerts\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/dependabot/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/dependabot/alerts\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"\n ],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}\"\n ]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\n \"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"\n ],\n diffRange: [\n \"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"\n ],\n exportSbom: [\"GET /repos/{owner}/{repo}/dependency-graph/sbom\"]\n },\n emojis: { get: [\"GET /emojis\"] },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\n \"GET /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"] }\n ],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\n \"DELETE /repos/{owner}/{repo}/interaction-limits\"\n ],\n removeRestrictionsForYourPublicRepos: [\n \"DELETE /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"] }\n ],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\n \"PUT /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"] }\n ]\n },\n issues: {\n addAssignees: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"\n ],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n checkUserCanBeAssignedToIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}\"\n ],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"\n ],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"\n ],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\n \"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"\n ],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"\n ],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"\n ],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"\n ],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"\n ],\n removeAssignees: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"\n ],\n removeLabel: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"\n ],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\n \"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"\n ]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\n \"POST /markdown/raw\",\n { headers: { \"content-type\": \"text/plain; charset=utf-8\" } }\n ]\n },\n meta: {\n get: [\"GET /meta\"],\n getAllVersions: [\"GET /versions\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\n \"DELETE /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import\"\n }\n ],\n deleteArchiveForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/archive\"\n ],\n deleteArchiveForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/archive\"\n ],\n downloadArchiveForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/archive\"\n ],\n getArchiveForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/archive\"\n ],\n getCommitAuthors: [\n \"GET /repos/{owner}/{repo}/import/authors\",\n {},\n {\n deprecated: \"octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors\"\n }\n ],\n getImportStatus: [\n \"GET /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status\"\n }\n ],\n getLargeFiles: [\n \"GET /repos/{owner}/{repo}/import/large_files\",\n {},\n {\n deprecated: \"octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files\"\n }\n ],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/repositories\"\n ],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\n \"GET /user/migrations/{migration_id}/repositories\",\n {},\n { renamed: [\"migrations\", \"listReposForAuthenticatedUser\"] }\n ],\n mapCommitAuthor: [\n \"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\",\n {},\n {\n deprecated: \"octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author\"\n }\n ],\n setLfsPreference: [\n \"PATCH /repos/{owner}/{repo}/import/lfs\",\n {},\n {\n deprecated: \"octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference\"\n }\n ],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\n \"PUT /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import\"\n }\n ],\n unlockRepoForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"\n ],\n unlockRepoForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"\n ],\n updateImport: [\n \"PATCH /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import\"\n }\n ]\n },\n oidc: {\n getOidcCustomSubTemplateForOrg: [\n \"GET /orgs/{org}/actions/oidc/customization/sub\"\n ],\n updateOidcCustomSubTemplateForOrg: [\n \"PUT /orgs/{org}/actions/oidc/customization/sub\"\n ]\n },\n orgs: {\n addSecurityManagerTeam: [\n \"PUT /orgs/{org}/security-managers/teams/{team_slug}\"\n ],\n assignTeamToOrgRole: [\n \"PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}\"\n ],\n assignUserToOrgRole: [\n \"PUT /orgs/{org}/organization-roles/users/{username}/{role_id}\"\n ],\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\n \"PUT /orgs/{org}/outside_collaborators/{username}\"\n ],\n createCustomOrganizationRole: [\"POST /orgs/{org}/organization-roles\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createOrUpdateCustomProperties: [\"PATCH /orgs/{org}/properties/schema\"],\n createOrUpdateCustomPropertiesValuesForRepos: [\n \"PATCH /orgs/{org}/properties/values\"\n ],\n createOrUpdateCustomProperty: [\n \"PUT /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n delete: [\"DELETE /orgs/{org}\"],\n deleteCustomOrganizationRole: [\n \"DELETE /orgs/{org}/organization-roles/{role_id}\"\n ],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n enableOrDisableSecurityProductOnAllOrgRepos: [\n \"POST /orgs/{org}/{security_product}/{enablement}\"\n ],\n get: [\"GET /orgs/{org}\"],\n getAllCustomProperties: [\"GET /orgs/{org}/properties/schema\"],\n getCustomProperty: [\n \"GET /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getOrgRole: [\"GET /orgs/{org}/organization-roles/{role_id}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\n \"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"\n ],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomPropertiesValuesForRepos: [\"GET /orgs/{org}/properties/values\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOrgRoleTeams: [\"GET /orgs/{org}/organization-roles/{role_id}/teams\"],\n listOrgRoleUsers: [\"GET /orgs/{org}/organization-roles/{role_id}/users\"],\n listOrgRoles: [\"GET /orgs/{org}/organization-roles\"],\n listOrganizationFineGrainedPermissions: [\n \"GET /orgs/{org}/organization-fine-grained-permissions\"\n ],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPatGrantRepositories: [\n \"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories\"\n ],\n listPatGrantRequestRepositories: [\n \"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories\"\n ],\n listPatGrantRequests: [\"GET /orgs/{org}/personal-access-token-requests\"],\n listPatGrants: [\"GET /orgs/{org}/personal-access-tokens\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listSecurityManagerTeams: [\"GET /orgs/{org}/security-managers\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n patchCustomOrganizationRole: [\n \"PATCH /orgs/{org}/organization-roles/{role_id}\"\n ],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\n \"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"\n ],\n removeCustomProperty: [\n \"DELETE /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\n \"DELETE /orgs/{org}/outside_collaborators/{username}\"\n ],\n removePublicMembershipForAuthenticatedUser: [\n \"DELETE /orgs/{org}/public_members/{username}\"\n ],\n removeSecurityManagerTeam: [\n \"DELETE /orgs/{org}/security-managers/teams/{team_slug}\"\n ],\n reviewPatGrantRequest: [\n \"POST /orgs/{org}/personal-access-token-requests/{pat_request_id}\"\n ],\n reviewPatGrantRequestsInBulk: [\n \"POST /orgs/{org}/personal-access-token-requests\"\n ],\n revokeAllOrgRolesTeam: [\n \"DELETE /orgs/{org}/organization-roles/teams/{team_slug}\"\n ],\n revokeAllOrgRolesUser: [\n \"DELETE /orgs/{org}/organization-roles/users/{username}\"\n ],\n revokeOrgRoleTeam: [\n \"DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}\"\n ],\n revokeOrgRoleUser: [\n \"DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}\"\n ],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\n \"PUT /orgs/{org}/public_members/{username}\"\n ],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\n \"PATCH /user/memberships/orgs/{org}\"\n ],\n updatePatAccess: [\"POST /orgs/{org}/personal-access-tokens/{pat_id}\"],\n updatePatAccesses: [\"POST /orgs/{org}/personal-access-tokens\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}\"\n ],\n deletePackageForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"\n ],\n deletePackageForUser: [\n \"DELETE /users/{username}/packages/{package_type}/{package_name}\"\n ],\n deletePackageVersionForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n deletePackageVersionForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n deletePackageVersionForUser: [\n \"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n {},\n { renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"] }\n ],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n {},\n {\n renamed: [\n \"packages\",\n \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"\n ]\n }\n ],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\"\n ],\n getAllPackageVersionsForPackageOwnedByOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"\n ],\n getAllPackageVersionsForPackageOwnedByUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions\"\n ],\n getPackageForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}\"\n ],\n getPackageForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}\"\n ],\n getPackageForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}\"\n ],\n getPackageVersionForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getPackageVersionForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getPackageVersionForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n listDockerMigrationConflictingPackagesForAuthenticatedUser: [\n \"GET /user/docker/conflicts\"\n ],\n listDockerMigrationConflictingPackagesForOrganization: [\n \"GET /orgs/{org}/docker/conflicts\"\n ],\n listDockerMigrationConflictingPackagesForUser: [\n \"GET /users/{username}/docker/conflicts\"\n ],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageForUser: [\n \"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageVersionForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ],\n restorePackageVersionForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ],\n restorePackageVersionForUser: [\n \"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\n \"GET /projects/{project_id}/collaborators/{username}/permission\"\n ],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\n \"DELETE /projects/{project_id}/collaborators/{username}\"\n ],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"\n ],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"\n ],\n deletePendingReview: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n deleteReviewComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"\n ],\n dismissReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"\n ],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n listReviewComments: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"\n ],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n requestReviewers: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n submitReview: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"\n ],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"\n ],\n updateReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n updateReviewComment: [\n \"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"\n ]\n },\n rateLimit: { get: [\"GET /rate_limit\"] },\n reactions: {\n createForCommitComment: [\n \"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"\n ],\n createForIssue: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"\n ],\n createForIssueComment: [\n \"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"\n ],\n createForPullRequestReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"\n ],\n createForRelease: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"\n ],\n createForTeamDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"\n ],\n createForTeamDiscussionInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"\n ],\n deleteForCommitComment: [\n \"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForIssue: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"\n ],\n deleteForIssueComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForPullRequestComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForRelease: [\n \"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"\n ],\n deleteForTeamDiscussion: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"\n ],\n deleteForTeamDiscussionComment: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"\n ],\n listForCommitComment: [\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"\n ],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"\n ],\n listForPullRequestReviewComment: [\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"\n ],\n listForRelease: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"\n ],\n listForTeamDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"\n ],\n listForTeamDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"\n ]\n },\n repos: {\n acceptInvitation: [\n \"PATCH /user/repository_invitations/{invitation_id}\",\n {},\n { renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"] }\n ],\n acceptInvitationForAuthenticatedUser: [\n \"PATCH /user/repository_invitations/{invitation_id}\"\n ],\n addAppAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n addTeamAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n addUserAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n cancelPagesDeployment: [\n \"POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel\"\n ],\n checkAutomatedSecurityFixes: [\n \"GET /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\n \"GET /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\n \"GET /repos/{owner}/{repo}/compare/{basehead}\"\n ],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\n \"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"\n ],\n createCommitSignatureProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentBranchPolicy: [\n \"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\"\n ],\n createDeploymentProtectionRule: [\n \"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules\"\n ],\n createDeploymentStatus: [\n \"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"\n ],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateCustomPropertiesValues: [\n \"PATCH /repos/{owner}/{repo}/properties/values\"\n ],\n createOrUpdateEnvironment: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createOrgRuleset: [\"POST /orgs/{org}/rulesets\"],\n createPagesDeployment: [\"POST /repos/{owner}/{repo}/pages/deployments\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createRepoRuleset: [\"POST /repos/{owner}/{repo}/rulesets\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\n \"POST /repos/{template_owner}/{template_repo}/generate\"\n ],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\n \"DELETE /user/repository_invitations/{invitation_id}\",\n {},\n { renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"] }\n ],\n declineInvitationForAuthenticatedUser: [\n \"DELETE /user/repository_invitations/{invitation_id}\"\n ],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"\n ],\n deleteAdminBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n deleteAnEnvironment: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\n \"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"\n ],\n deleteDeploymentBranchPolicy: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\n \"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"\n ],\n deleteOrgRuleset: [\"DELETE /orgs/{org}/rulesets/{ruleset_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\n \"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"\n ],\n deleteRepoRuleset: [\"DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n deleteTagProtection: [\n \"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"\n ],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\n \"DELETE /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n disableDeploymentProtectionRule: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}\"\n ],\n disablePrivateVulnerabilityReporting: [\n \"DELETE /repos/{owner}/{repo}/private-vulnerability-reporting\"\n ],\n disableVulnerabilityAlerts: [\n \"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n downloadArchive: [\n \"GET /repos/{owner}/{repo}/zipball/{ref}\",\n {},\n { renamed: [\"repos\", \"downloadZipballArchive\"] }\n ],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\n \"PUT /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n enablePrivateVulnerabilityReporting: [\n \"PUT /repos/{owner}/{repo}/private-vulnerability-reporting\"\n ],\n enableVulnerabilityAlerts: [\n \"PUT /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n generateReleaseNotes: [\n \"POST /repos/{owner}/{repo}/releases/generate-notes\"\n ],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"\n ],\n getAdminBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n getAllDeploymentProtectionRules: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules\"\n ],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"\n ],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"\n ],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n getBranchRules: [\"GET /repos/{owner}/{repo}/rules/branches/{branch}\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\n \"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"\n ],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getCustomDeploymentProtectionRule: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}\"\n ],\n getCustomPropertiesValues: [\"GET /repos/{owner}/{repo}/properties/values\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentBranchPolicy: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n getDeploymentStatus: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"\n ],\n getEnvironment: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getOrgRuleSuite: [\"GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}\"],\n getOrgRuleSuites: [\"GET /orgs/{org}/rulesets/rule-suites\"],\n getOrgRuleset: [\"GET /orgs/{org}/rulesets/{ruleset_id}\"],\n getOrgRulesets: [\"GET /orgs/{org}/rulesets\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesDeployment: [\n \"GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}\"\n ],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getRepoRuleSuite: [\n \"GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}\"\n ],\n getRepoRuleSuites: [\"GET /repos/{owner}/{repo}/rulesets/rule-suites\"],\n getRepoRuleset: [\"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n getRepoRulesets: [\"GET /repos/{owner}/{repo}/rulesets\"],\n getStatusChecksProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n getTeamsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"\n ],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"\n ],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"\n ],\n getWebhookDelivery: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"\n ],\n listActivities: [\"GET /repos/{owner}/{repo}/activity\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"\n ],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"\n ],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listCustomDeploymentRuleIntegrations: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps\"\n ],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentBranchPolicies: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\"\n ],\n listDeploymentStatuses: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"\n ],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"\n ],\n listReleaseAssets: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"\n ],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"\n ],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\n \"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"\n ],\n removeAppAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n removeCollaborator: [\n \"DELETE /repos/{owner}/{repo}/collaborators/{username}\"\n ],\n removeStatusCheckContexts: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n removeStatusCheckProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n removeTeamAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n removeUserAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n setAppAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n setStatusCheckContexts: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n setTeamAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n setUserAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateDeploymentBranchPolicy: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\n \"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"\n ],\n updateOrgRuleset: [\"PUT /orgs/{org}/rulesets/{ruleset_id}\"],\n updatePullRequestReviewProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\n \"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"\n ],\n updateRepoRuleset: [\"PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n updateStatusCheckPotection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n {},\n { renamed: [\"repos\", \"updateStatusCheckProtection\"] }\n ],\n updateStatusCheckProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\n \"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"\n ],\n uploadReleaseAsset: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\",\n { baseUrl: \"https://uploads.github.com\" }\n ]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"\n ],\n listAlertsForEnterprise: [\n \"GET /enterprises/{enterprise}/secret-scanning/alerts\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"\n ],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"\n ]\n },\n securityAdvisories: {\n createFork: [\n \"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks\"\n ],\n createPrivateVulnerabilityReport: [\n \"POST /repos/{owner}/{repo}/security-advisories/reports\"\n ],\n createRepositoryAdvisory: [\n \"POST /repos/{owner}/{repo}/security-advisories\"\n ],\n createRepositoryAdvisoryCveRequest: [\n \"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve\"\n ],\n getGlobalAdvisory: [\"GET /advisories/{ghsa_id}\"],\n getRepositoryAdvisory: [\n \"GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}\"\n ],\n listGlobalAdvisories: [\"GET /advisories\"],\n listOrgRepositoryAdvisories: [\"GET /orgs/{org}/security-advisories\"],\n listRepositoryAdvisories: [\"GET /repos/{owner}/{repo}/security-advisories\"],\n updateRepositoryAdvisory: [\n \"PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}\"\n ]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n addOrUpdateProjectPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"\n ],\n addOrUpdateRepoPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n checkPermissionsForProjectInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"\n ],\n checkPermissionsForRepoInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"\n ],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n deleteDiscussionInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n getDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n getMembershipForUserInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"\n ],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/invitations\"\n ],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n removeProjectInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"\n ],\n removeRepoInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n updateDiscussionCommentInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n updateDiscussionInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\n \"POST /user/emails\",\n {},\n { renamed: [\"users\", \"addEmailForAuthenticatedUser\"] }\n ],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n addSocialAccountForAuthenticatedUser: [\"POST /user/social_accounts\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\n \"POST /user/gpg_keys\",\n {},\n { renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"] }\n ],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\n \"POST /user/keys\",\n {},\n { renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"] }\n ],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n createSshSigningKeyForAuthenticatedUser: [\"POST /user/ssh_signing_keys\"],\n deleteEmailForAuthenticated: [\n \"DELETE /user/emails\",\n {},\n { renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"] }\n ],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\n \"DELETE /user/gpg_keys/{gpg_key_id}\",\n {},\n { renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"] }\n ],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\n \"DELETE /user/keys/{key_id}\",\n {},\n { renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"] }\n ],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n deleteSocialAccountForAuthenticatedUser: [\"DELETE /user/social_accounts\"],\n deleteSshSigningKeyForAuthenticatedUser: [\n \"DELETE /user/ssh_signing_keys/{ssh_signing_key_id}\"\n ],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\n \"GET /user/gpg_keys/{gpg_key_id}\",\n {},\n { renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"] }\n ],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\n \"GET /user/keys/{key_id}\",\n {},\n { renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"] }\n ],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n getSshSigningKeyForAuthenticatedUser: [\n \"GET /user/ssh_signing_keys/{ssh_signing_key_id}\"\n ],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\n \"GET /user/blocks\",\n {},\n { renamed: [\"users\", \"listBlockedByAuthenticatedUser\"] }\n ],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\n \"GET /user/emails\",\n {},\n { renamed: [\"users\", \"listEmailsForAuthenticatedUser\"] }\n ],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\n \"GET /user/following\",\n {},\n { renamed: [\"users\", \"listFollowedByAuthenticatedUser\"] }\n ],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\n \"GET /user/gpg_keys\",\n {},\n { renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"] }\n ],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\n \"GET /user/public_emails\",\n {},\n { renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"] }\n ],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\n \"GET /user/keys\",\n {},\n { renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"] }\n ],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n listSocialAccountsForAuthenticatedUser: [\"GET /user/social_accounts\"],\n listSocialAccountsForUser: [\"GET /users/{username}/social_accounts\"],\n listSshSigningKeysForAuthenticatedUser: [\"GET /user/ssh_signing_keys\"],\n listSshSigningKeysForUser: [\"GET /users/{username}/ssh_signing_keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\n \"PATCH /user/email/visibility\",\n {},\n { renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"] }\n ],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\n \"PATCH /user/email/visibility\"\n ],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\nvar endpoints_default = Endpoints;\nexport {\n endpoints_default as default\n};\n", "import ENDPOINTS from \"./generated/endpoints.js\";\nconst endpointMethodsMap = /* @__PURE__ */ new Map();\nfor (const [scope, endpoints] of Object.entries(ENDPOINTS)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign(\n {\n method,\n url\n },\n defaults\n );\n if (!endpointMethodsMap.has(scope)) {\n endpointMethodsMap.set(scope, /* @__PURE__ */ new Map());\n }\n endpointMethodsMap.get(scope).set(methodName, {\n scope,\n methodName,\n endpointDefaults,\n decorations\n });\n }\n}\nconst handler = {\n has({ scope }, methodName) {\n return endpointMethodsMap.get(scope).has(methodName);\n },\n getOwnPropertyDescriptor(target, methodName) {\n return {\n value: this.get(target, methodName),\n // ensures method is in the cache\n configurable: true,\n writable: true,\n enumerable: true\n };\n },\n defineProperty(target, methodName, descriptor) {\n Object.defineProperty(target.cache, methodName, descriptor);\n return true;\n },\n deleteProperty(target, methodName) {\n delete target.cache[methodName];\n return true;\n },\n ownKeys({ scope }) {\n return [...endpointMethodsMap.get(scope).keys()];\n },\n set(target, methodName, value) {\n return target.cache[methodName] = value;\n },\n get({ octokit, scope, cache }, methodName) {\n if (cache[methodName]) {\n return cache[methodName];\n }\n const method = endpointMethodsMap.get(scope).get(methodName);\n if (!method) {\n return void 0;\n }\n const { endpointDefaults, decorations } = method;\n if (decorations) {\n cache[methodName] = decorate(\n octokit,\n scope,\n methodName,\n endpointDefaults,\n decorations\n );\n } else {\n cache[methodName] = octokit.request.defaults(endpointDefaults);\n }\n return cache[methodName];\n }\n};\nfunction endpointsToMethods(octokit) {\n const newMethods = {};\n for (const scope of endpointMethodsMap.keys()) {\n newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler);\n }\n return newMethods;\n}\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n function withDecorations(...args) {\n let options = requestWithDefaults.endpoint.merge(...args);\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: void 0\n });\n return requestWithDefaults(options);\n }\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(\n `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`\n );\n }\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n if (decorations.renamedParameters) {\n const options2 = requestWithDefaults.endpoint.merge(...args);\n for (const [name, alias] of Object.entries(\n decorations.renamedParameters\n )) {\n if (name in options2) {\n octokit.log.warn(\n `\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`\n );\n if (!(alias in options2)) {\n options2[alias] = options2[name];\n }\n delete options2[name];\n }\n }\n return requestWithDefaults(options2);\n }\n return requestWithDefaults(...args);\n }\n return Object.assign(withDecorations, requestWithDefaults);\n}\nexport {\n endpointsToMethods\n};\n", "import { VERSION } from \"./version.js\";\nimport { endpointsToMethods } from \"./endpoints-to-methods.js\";\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit);\n return {\n ...api,\n rest: api\n };\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\nexport {\n legacyRestEndpointMethods,\n restEndpointMethods\n};\n"], + "mappings": "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", + "names": [] +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/LICENSE b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/LICENSE new file mode 100644 index 000000000..c61fbbe5a --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/LICENSE @@ -0,0 +1,7 @@ +Copyright 2020 Gregor Martynus + +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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +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. \ No newline at end of file diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/README.md b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/README.md new file mode 100644 index 000000000..e61ed8d2d --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/README.md @@ -0,0 +1,17 @@ +# @octokit/openapi-types + +> Generated TypeScript definitions based on GitHub's OpenAPI spec + +This package is continuously updated based on [GitHub's OpenAPI specification](https://github.com/github/rest-api-description/) + +## Usage + +```ts +import { components } from "@octokit/openapi-types"; + +type Repository = components["schemas"]["full-repository"]; +``` + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/package.json b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/package.json new file mode 100644 index 000000000..ade207b2a --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/package.json @@ -0,0 +1,20 @@ +{ + "name": "@octokit/openapi-types", + "description": "Generated TypeScript definitions based on GitHub's OpenAPI spec for api.github.com", + "repository": { + "type": "git", + "url": "https://github.com/octokit/openapi-types.ts.git", + "directory": "packages/openapi-types" + }, + "publishConfig": { + "access": "public" + }, + "version": "20.0.0", + "main": "", + "types": "types.d.ts", + "author": "Gregor Martynus (https://twitter.com/gr2m)", + "license": "MIT", + "octokit": { + "openapi-version": "14.0.0" + } +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/types.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/types.d.ts new file mode 100644 index 000000000..439fc2de2 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types/types.d.ts @@ -0,0 +1,118541 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +/** OneOf type helpers */ +type Without = { [P in Exclude]?: never }; +type XOR = T | U extends object + ? (Without & U) | (Without & T) + : T | U; +type OneOf = T extends [infer Only] + ? Only + : T extends [infer A, infer B, ...infer Rest] + ? OneOf<[XOR, ...Rest]> + : never; + +export interface paths { + "/": { + /** + * GitHub API Root + * @description Get Hypermedia links to resources accessible in GitHub's REST API + */ + get: operations["meta/root"]; + }; + "/advisories": { + /** + * List global security advisories + * @description Lists all global security advisories that match the specified parameters. If no other parameters are defined, the request will return only GitHub-reviewed advisories that are not malware. + * + * By default, all responses will exclude advisories for malware, because malware are not standard vulnerabilities. To list advisories for malware, you must include the `type` parameter in your request, with the value `malware`. For more information about the different types of security advisories, see "[About the GitHub Advisory database](https://docs.github.com/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database#about-types-of-security-advisories)." + */ + get: operations["security-advisories/list-global-advisories"]; + }; + "/advisories/{ghsa_id}": { + /** + * Get a global security advisory + * @description Gets a global security advisory using its GitHub Security Advisory (GHSA) identifier. + */ + get: operations["security-advisories/get-global-advisory"]; + }; + "/app": { + /** + * Get the authenticated app + * @description Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/apps/apps#list-installations-for-the-authenticated-app)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-authenticated"]; + }; + "/app-manifests/{code}/conversions": { + /** + * Create a GitHub App from a manifest + * @description Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. + */ + post: operations["apps/create-from-manifest"]; + }; + "/app/hook/config": { + /** + * Get a webhook configuration for an app + * @description Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-webhook-config-for-app"]; + /** + * Update a webhook configuration for an app + * @description Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + patch: operations["apps/update-webhook-config-for-app"]; + }; + "/app/hook/deliveries": { + /** + * List deliveries for an app webhook + * @description Returns a list of webhook deliveries for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/list-webhook-deliveries"]; + }; + "/app/hook/deliveries/{delivery_id}": { + /** + * Get a delivery for an app webhook + * @description Returns a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-webhook-delivery"]; + }; + "/app/hook/deliveries/{delivery_id}/attempts": { + /** + * Redeliver a delivery for an app webhook + * @description Redeliver a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + post: operations["apps/redeliver-webhook-delivery"]; + }; + "/app/installation-requests": { + /** + * List installation requests for the authenticated app + * @description Lists all the pending installation requests for the authenticated GitHub App. + */ + get: operations["apps/list-installation-requests-for-authenticated-app"]; + }; + "/app/installations": { + /** + * List installations for the authenticated app + * @description You must use a [JWT](https://docs.github.com/enterprise-server@3.9/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * The permissions the installation has are included under the `permissions` key. + */ + get: operations["apps/list-installations"]; + }; + "/app/installations/{installation_id}": { + /** + * Get an installation for the authenticated app + * @description Enables an authenticated GitHub App to find an installation's information using the installation id. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-installation"]; + /** + * Delete an installation for the authenticated app + * @description Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/rest/apps/apps#suspend-an-app-installation)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + delete: operations["apps/delete-installation"]; + }; + "/app/installations/{installation_id}/access_tokens": { + /** + * Create an installation access token for an app + * @description Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. + * + * Optionally, you can use the `repositories` or `repository_ids` body parameters to specify individual repositories that the installation access token can access. If you don't use `repositories` or `repository_ids` to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner. + * + * Optionally, use the `permissions` body parameter to specify the permissions that the installation access token should have. If `permissions` is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted. + * + * When using the repository or permission parameters to reduce the access of the token, the complexity of the token is increased due to both the number of permissions in the request and the number of repositories the token will have access to. If the complexity is too large, the token will fail to be issued. If this occurs, the error message will indicate the maximum number of repositories that should be requested. For the average application requesting 8 permissions, this limit is around 5000 repositories. With fewer permissions requested, more repositories are supported. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + post: operations["apps/create-installation-access-token"]; + }; + "/app/installations/{installation_id}/suspended": { + /** + * Suspend an app installation + * @description Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + put: operations["apps/suspend-installation"]; + /** + * Unsuspend an app installation + * @description Removes a GitHub App installation suspension. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + delete: operations["apps/unsuspend-installation"]; + }; + "/applications/{client_id}/grant": { + /** + * Delete an app authorization + * @description OAuth and GitHub application owners can revoke a grant for their application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * Deleting an application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + delete: operations["apps/delete-authorization"]; + }; + "/applications/{client_id}/token": { + /** + * Check a token + * @description OAuth applications and GitHub applications with OAuth authorizations can use this API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. + */ + post: operations["apps/check-token"]; + /** + * Delete an app token + * @description OAuth or GitHub application owners can revoke a single token for an OAuth application or a GitHub application with an OAuth authorization. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. + */ + delete: operations["apps/delete-token"]; + /** + * Reset a token + * @description OAuth applications and GitHub applications with OAuth authorizations can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + patch: operations["apps/reset-token"]; + }; + "/applications/{client_id}/token/scoped": { + /** + * Create a scoped access token + * @description Use a non-scoped user access token to create a repository-scoped and/or permission-scoped user access token. You can specify + * which repositories the token can access and which permissions are granted to the + * token. + * + * Invalid tokens will return `404 NOT FOUND`. + * + * You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) + * when accessing this endpoint, using the `client_id` and `client_secret` of the GitHub App + * as the username and password. + */ + post: operations["apps/scope-token"]; + }; + "/apps/{app_slug}": { + /** + * Get an app + * @description **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + */ + get: operations["apps/get-by-slug"]; + }; + "/assignments/{assignment_id}": { + /** + * Get an assignment + * @description Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + get: operations["classroom/get-an-assignment"]; + }; + "/assignments/{assignment_id}/accepted_assignments": { + /** + * List accepted assignments for an assignment + * @description Lists any assignment repositories that have been created by students accepting a GitHub Classroom assignment. Accepted assignments will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + get: operations["classroom/list-accepted-assigments-for-an-assignment"]; + }; + "/assignments/{assignment_id}/grades": { + /** + * Get assignment grades + * @description Gets grades for a GitHub Classroom assignment. Grades will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + get: operations["classroom/get-assignment-grades"]; + }; + "/classrooms": { + /** + * List classrooms + * @description Lists GitHub Classroom classrooms for the current user. Classrooms will only be returned if the current user is an administrator of one or more GitHub Classrooms. + */ + get: operations["classroom/list-classrooms"]; + }; + "/classrooms/{classroom_id}": { + /** + * Get a classroom + * @description Gets a GitHub Classroom classroom for the current user. Classroom will only be returned if the current user is an administrator of the GitHub Classroom. + */ + get: operations["classroom/get-a-classroom"]; + }; + "/classrooms/{classroom_id}/assignments": { + /** + * List assignments for a classroom + * @description Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. + */ + get: operations["classroom/list-assignments-for-a-classroom"]; + }; + "/codes_of_conduct": { + /** + * Get all codes of conduct + * @description Returns array of all GitHub's codes of conduct. + */ + get: operations["codes-of-conduct/get-all-codes-of-conduct"]; + }; + "/codes_of_conduct/{key}": { + /** + * Get a code of conduct + * @description Returns information about the specified GitHub code of conduct. + */ + get: operations["codes-of-conduct/get-conduct-code"]; + }; + "/emojis": { + /** + * Get emojis + * @description Lists all the emojis available to use on GitHub. + */ + get: operations["emojis/get"]; + }; + "/enterprises/{enterprise}/dependabot/alerts": { + /** + * List Dependabot alerts for an enterprise + * @description Lists Dependabot alerts for repositories that are owned by the specified enterprise. + * + * The authenticated user must be a member of the enterprise to use this endpoint. + * + * Alerts are only returned for organizations in the enterprise for which you are an organization owner or a security manager. For more information about security managers, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. + */ + get: operations["dependabot/list-alerts-for-enterprise"]; + }; + "/enterprises/{enterprise}/secret-scanning/alerts": { + /** + * List secret scanning alerts for an enterprise + * @description Lists secret scanning alerts for eligible repositories in an enterprise, from newest to oldest. + * + * Alerts are only returned for organizations in the enterprise for which the authenticated user is an organization owner or a [security manager](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization). + * + * The authenticated user must be a member of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope or `security_events` scope to use this endpoint. + */ + get: operations["secret-scanning/list-alerts-for-enterprise"]; + }; + "/events": { + /** + * List public events + * @description We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. + */ + get: operations["activity/list-public-events"]; + }; + "/feeds": { + /** + * Get feeds + * @description GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user: + * + * * **Timeline**: The GitHub global public timeline + * * **User**: The public timeline for any user, using `uri_template`. For more information, see "[Hypermedia](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + * * **Current user public**: The public timeline for the authenticated user + * * **Current user**: The private timeline for the authenticated user + * * **Current user actor**: The private timeline for activity created by the authenticated user + * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + * + * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + */ + get: operations["activity/get-feeds"]; + }; + "/gists": { + /** + * List gists for the authenticated user + * @description Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: + */ + get: operations["gists/list"]; + /** + * Create a gist + * @description Allows you to add a new gist with one or more files. + * + * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + */ + post: operations["gists/create"]; + }; + "/gists/public": { + /** + * List public gists + * @description List public gists sorted by most recently updated to least recently updated. + * + * Note: With [pagination](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + */ + get: operations["gists/list-public"]; + }; + "/gists/starred": { + /** + * List starred gists + * @description List the authenticated user's starred gists: + */ + get: operations["gists/list-starred"]; + }; + "/gists/{gist_id}": { + /** + * Get a gist + * @description Gets a specified gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + get: operations["gists/get"]; + /** Delete a gist */ + delete: operations["gists/delete"]; + /** + * Update a gist + * @description Allows you to update a gist's description and to update, delete, or rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. + */ + patch: operations["gists/update"]; + }; + "/gists/{gist_id}/comments": { + /** + * List gist comments + * @description Lists the comments on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + get: operations["gists/list-comments"]; + /** + * Create a gist comment + * @description Creates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + post: operations["gists/create-comment"]; + }; + "/gists/{gist_id}/comments/{comment_id}": { + /** + * Get a gist comment + * @description Gets a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + get: operations["gists/get-comment"]; + /** Delete a gist comment */ + delete: operations["gists/delete-comment"]; + /** + * Update a gist comment + * @description Updates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + patch: operations["gists/update-comment"]; + }; + "/gists/{gist_id}/commits": { + /** List gist commits */ + get: operations["gists/list-commits"]; + }; + "/gists/{gist_id}/forks": { + /** List gist forks */ + get: operations["gists/list-forks"]; + /** Fork a gist */ + post: operations["gists/fork"]; + }; + "/gists/{gist_id}/star": { + /** Check if a gist is starred */ + get: operations["gists/check-is-starred"]; + /** + * Star a gist + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["gists/star"]; + /** Unstar a gist */ + delete: operations["gists/unstar"]; + }; + "/gists/{gist_id}/{sha}": { + /** + * Get a gist revision + * @description Gets a specified gist revision. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + get: operations["gists/get-revision"]; + }; + "/gitignore/templates": { + /** + * Get all gitignore templates + * @description List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user). + */ + get: operations["gitignore/get-all-templates"]; + }; + "/gitignore/templates/{name}": { + /** + * Get a gitignore template + * @description Get the content of a gitignore template. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw .gitignore contents. + */ + get: operations["gitignore/get-template"]; + }; + "/installation/repositories": { + /** + * List repositories accessible to the app installation + * @description List repositories that an app installation can access. + */ + get: operations["apps/list-repos-accessible-to-installation"]; + }; + "/installation/token": { + /** + * Revoke an installation access token + * @description Revokes the installation token you're using to authenticate as an installation and access this endpoint. + * + * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app)" endpoint. + */ + delete: operations["apps/revoke-installation-access-token"]; + }; + "/issues": { + /** + * List issues assigned to the authenticated user + * @description List issues assigned to the authenticated user across all visible repositories including owned repositories, member + * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not + * necessarily assigned to you. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list"]; + }; + "/licenses": { + /** + * Get all commonly used licenses + * @description Lists the most commonly used licenses on GitHub. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + get: operations["licenses/get-all-commonly-used"]; + }; + "/licenses/{license}": { + /** + * Get a license + * @description Gets information about a specific license. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + get: operations["licenses/get"]; + }; + "/markdown": { + /** Render a Markdown document */ + post: operations["markdown/render"]; + }; + "/markdown/raw": { + /** + * Render a Markdown document in raw mode + * @description You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. + */ + post: operations["markdown/render-raw"]; + }; + "/marketplace_listing/accounts/{account_id}": { + /** + * Get a subscription plan for an account + * @description Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/get-subscription-plan-for-account"]; + }; + "/marketplace_listing/plans": { + /** + * List plans + * @description Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-plans"]; + }; + "/marketplace_listing/plans/{plan_id}/accounts": { + /** + * List accounts for a plan + * @description Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-accounts-for-plan"]; + }; + "/marketplace_listing/stubbed/accounts/{account_id}": { + /** + * Get a subscription plan for an account (stubbed) + * @description Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/get-subscription-plan-for-account-stubbed"]; + }; + "/marketplace_listing/stubbed/plans": { + /** + * List plans (stubbed) + * @description Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-plans-stubbed"]; + }; + "/marketplace_listing/stubbed/plans/{plan_id}/accounts": { + /** + * List accounts for a plan (stubbed) + * @description Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-accounts-for-plan-stubbed"]; + }; + "/meta": { + /** + * Get GitHub meta information + * @description Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://docs.github.com/articles/about-github-s-ip-addresses/)." + * + * The API's response also includes a list of GitHub's domain names. + * + * The values shown in the documentation's response are example values. You must always query the API directly to get the latest values. + * + * **Note:** This endpoint returns both IPv4 and IPv6 addresses. However, not all features support IPv6. You should refer to the specific documentation for each feature to determine if IPv6 is supported. + */ + get: operations["meta/get"]; + }; + "/networks/{owner}/{repo}/events": { + /** List public events for a network of repositories */ + get: operations["activity/list-public-events-for-repo-network"]; + }; + "/notifications": { + /** + * List notifications for the authenticated user + * @description List all notifications for the current user, sorted by most recently updated. + */ + get: operations["activity/list-notifications-for-authenticated-user"]; + /** + * Mark notifications as read + * @description Marks all notifications as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + put: operations["activity/mark-notifications-as-read"]; + }; + "/notifications/threads/{thread_id}": { + /** + * Get a thread + * @description Gets information about a notification thread. + */ + get: operations["activity/get-thread"]; + /** + * Mark a thread as done + * @description Marks a thread as "done." Marking a thread as "done" is equivalent to marking a notification in your notification inbox on GitHub as done: https://github.com/notifications. + */ + delete: operations["activity/mark-thread-as-done"]; + /** + * Mark a thread as read + * @description Marks a thread as "read." Marking a thread as "read" is equivalent to clicking a notification in your notification inbox on GitHub: https://github.com/notifications. + */ + patch: operations["activity/mark-thread-as-read"]; + }; + "/notifications/threads/{thread_id}/subscription": { + /** + * Get a thread subscription for the authenticated user + * @description This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/activity/watching#get-a-repository-subscription). + * + * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + */ + get: operations["activity/get-thread-subscription-for-authenticated-user"]; + /** + * Set a thread subscription + * @description If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**. + * + * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. + * + * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription) endpoint. + */ + put: operations["activity/set-thread-subscription"]; + /** + * Delete a thread subscription + * @description Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/activity/notifications#set-a-thread-subscription) endpoint and set `ignore` to `true`. + */ + delete: operations["activity/delete-thread-subscription"]; + }; + "/octocat": { + /** + * Get Octocat + * @description Get the octocat as ASCII art + */ + get: operations["meta/get-octocat"]; + }; + "/organizations": { + /** + * List organizations + * @description Lists all organizations, in the order that they were created on GitHub. + * + * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of organizations. + */ + get: operations["orgs/list"]; + }; + "/orgs/{org}": { + /** + * Get an organization + * @description Gets information about an organization. + * + * When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://docs.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * + * To see the full details about an organization, the authenticated user must be an organization owner. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to see the full details about an organization. + * + * To see information about an organization's GitHub plan, GitHub Apps need the `Organization plan` permission. + */ + get: operations["orgs/get"]; + /** + * Delete an organization + * @description Deletes an organization and all its repositories. + * + * The organization login will be unavailable for 90 days after deletion. + * + * Please review the Terms of Service regarding account deletion before using this endpoint: + * + * https://docs.github.com/site-policy/github-terms/github-terms-of-service + */ + delete: operations["orgs/delete"]; + /** + * Update an organization + * @description **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * + * Updates the organization's profile and member privileges. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` or `repo` scope to use this endpoint. + */ + patch: operations["orgs/update"]; + }; + "/orgs/{org}/actions/cache/usage": { + /** + * Get GitHub Actions cache usage for an organization + * @description Gets the total GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + get: operations["actions/get-actions-cache-usage-for-org"]; + }; + "/orgs/{org}/actions/cache/usage-by-repository": { + /** + * List repositories with GitHub Actions cache usage for an organization + * @description Lists repositories and their GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + get: operations["actions/get-actions-cache-usage-by-repo-for-org"]; + }; + "/orgs/{org}/actions/oidc/customization/sub": { + /** + * Get the customization template for an OIDC subject claim for an organization + * @description Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + get: operations["oidc/get-oidc-custom-sub-template-for-org"]; + /** + * Set the customization template for an OIDC subject claim for an organization + * @description Creates or updates the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + put: operations["oidc/update-oidc-custom-sub-template-for-org"]; + }; + "/orgs/{org}/actions/permissions": { + /** + * Get GitHub Actions permissions for an organization + * @description Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["actions/get-github-actions-permissions-organization"]; + /** + * Set GitHub Actions permissions for an organization + * @description Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-github-actions-permissions-organization"]; + }; + "/orgs/{org}/actions/permissions/repositories": { + /** + * List selected repositories enabled for GitHub Actions in an organization + * @description Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["actions/list-selected-repositories-enabled-github-actions-organization"]; + /** + * Set selected repositories enabled for GitHub Actions in an organization + * @description Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-selected-repositories-enabled-github-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/repositories/{repository_id}": { + /** + * Enable a selected repository for GitHub Actions in an organization + * @description Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/enable-selected-repository-github-actions-organization"]; + /** + * Disable a selected repository for GitHub Actions in an organization + * @description Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["actions/disable-selected-repository-github-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/selected-actions": { + /** + * Get allowed actions and reusable workflows for an organization + * @description Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["actions/get-allowed-actions-organization"]; + /** + * Set allowed actions and reusable workflows for an organization + * @description Sets the actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-allowed-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/workflow": { + /** + * Get default workflow permissions for an organization + * @description Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, + * as well as whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["actions/get-github-actions-default-workflow-permissions-organization"]; + /** + * Set default workflow permissions for an organization + * @description Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, and sets if GitHub Actions + * can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-github-actions-default-workflow-permissions-organization"]; + }; + "/orgs/{org}/actions/runners": { + /** + * List self-hosted runners for an organization + * @description Lists all self-hosted runners configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-self-hosted-runners-for-org"]; + }; + "/orgs/{org}/actions/runners/downloads": { + /** + * List runner applications for an organization + * @description Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-runner-applications-for-org"]; + }; + "/orgs/{org}/actions/runners/generate-jitconfig": { + /** + * Create configuration for a just-in-time runner for an organization + * @description Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the organization. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/generate-runner-jitconfig-for-org"]; + }; + "/orgs/{org}/actions/runners/registration-token": { + /** + * Create a registration token for an organization + * @description Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-registration-token-for-org"]; + }; + "/orgs/{org}/actions/runners/remove-token": { + /** + * Create a remove token for an organization + * @description Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-remove-token-for-org"]; + }; + "/orgs/{org}/actions/runners/{runner_id}": { + /** + * Get a self-hosted runner for an organization + * @description Gets a specific self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/get-self-hosted-runner-for-org"]; + /** + * Delete a self-hosted runner from an organization + * @description Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-self-hosted-runner-from-org"]; + }; + "/orgs/{org}/actions/runners/{runner_id}/labels": { + /** + * List labels for a self-hosted runner for an organization + * @description Lists all labels for a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-labels-for-self-hosted-runner-for-org"]; + /** + * Set custom labels for a self-hosted runner for an organization + * @description Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + put: operations["actions/set-custom-labels-for-self-hosted-runner-for-org"]; + /** + * Add custom labels to a self-hosted runner for an organization + * @description Adds custom labels to a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + post: operations["actions/add-custom-labels-to-self-hosted-runner-for-org"]; + /** + * Remove all custom labels from a self-hosted runner for an organization + * @description Remove all custom labels from a self-hosted runner configured in an + * organization. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + delete: operations["actions/remove-all-custom-labels-from-self-hosted-runner-for-org"]; + }; + "/orgs/{org}/actions/runners/{runner_id}/labels/{name}": { + /** + * Remove a custom label from a self-hosted runner for an organization + * @description Remove a custom label from a self-hosted runner configured + * in an organization. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + delete: operations["actions/remove-custom-label-from-self-hosted-runner-for-org"]; + }; + "/orgs/{org}/actions/secrets": { + /** + * List organization secrets + * @description Lists all secrets available in an organization without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-org-secrets"]; + }; + "/orgs/{org}/actions/secrets/public-key": { + /** + * Get an organization public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-org-public-key"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}": { + /** + * Get an organization secret + * @description Gets a single organization secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-org-secret"]; + /** + * Create or update an organization secret + * @description Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to + * use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + put: operations["actions/create-or-update-org-secret"]; + /** + * Delete an organization secret + * @description Deletes a secret in an organization using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-org-secret"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}/repositories": { + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-selected-repos-for-org-secret"]; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + put: operations["actions/set-selected-repos-for-org-secret"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": { + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. For more information about setting the visibility, see [Create or + * update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/add-selected-repo-to-org-secret"]; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + delete: operations["actions/remove-selected-repo-from-org-secret"]; + }; + "/orgs/{org}/actions/variables": { + /** + * List organization variables + * @description Lists all organization variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-org-variables"]; + /** + * Create an organization variable + * @description Creates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-org-variable"]; + }; + "/orgs/{org}/actions/variables/{name}": { + /** + * Get an organization variable + * @description Gets a specific variable in an organization. + * + * The authenticated user must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-org-variable"]; + /** + * Delete an organization variable + * @description Deletes an organization variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-org-variable"]; + /** + * Update an organization variable + * @description Updates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + patch: operations["actions/update-org-variable"]; + }; + "/orgs/{org}/actions/variables/{name}/repositories": { + /** + * List selected repositories for an organization variable + * @description Lists all repositories that can access an organization variable + * that is available to selected repositories. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + get: operations["actions/list-selected-repos-for-org-variable"]; + /** + * Set selected repositories for an organization variable + * @description Replaces all repositories for an organization variable that is available + * to selected repositories. Organization variables that are available to selected + * repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + put: operations["actions/set-selected-repos-for-org-variable"]; + }; + "/orgs/{org}/actions/variables/{name}/repositories/{repository_id}": { + /** + * Add selected repository to an organization variable + * @description Adds a repository to an organization variable that is available to selected repositories. + * Organization variables that are available to selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/add-selected-repo-to-org-variable"]; + /** + * Remove selected repository from an organization variable + * @description Removes a repository from an organization variable that is + * available to selected repositories. Organization variables that are available to + * selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + delete: operations["actions/remove-selected-repo-from-org-variable"]; + }; + "/orgs/{org}/blocks": { + /** + * List users blocked by an organization + * @description List the users blocked by an organization. + */ + get: operations["orgs/list-blocked-users"]; + }; + "/orgs/{org}/blocks/{username}": { + /** + * Check if a user is blocked by an organization + * @description Returns a 204 if the given user is blocked by the given organization. Returns a 404 if the organization is not blocking the user, or if the user account has been identified as spam by GitHub. + */ + get: operations["orgs/check-blocked-user"]; + /** + * Block a user from an organization + * @description Blocks the given user on behalf of the specified organization and returns a 204. If the organization cannot block the given user a 422 is returned. + */ + put: operations["orgs/block-user"]; + /** + * Unblock a user from an organization + * @description Unblocks the given user on behalf of the specified organization. + */ + delete: operations["orgs/unblock-user"]; + }; + "/orgs/{org}/code-scanning/alerts": { + /** + * List code scanning alerts for an organization + * @description Lists code scanning alerts for the default branch for all eligible repositories in an organization. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` or `repo`s cope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/list-alerts-for-org"]; + }; + "/orgs/{org}/codespaces": { + /** + * List codespaces for the organization + * @description Lists the codespaces associated to a specified organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/list-in-organization"]; + }; + "/orgs/{org}/codespaces/access": { + /** + * Manage access control for organization codespaces + * @deprecated + * @description Sets which users can access codespaces in an organization. This is synonymous with granting or revoking codespaces access permissions for users according to the visibility. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["codespaces/set-codespaces-access"]; + }; + "/orgs/{org}/codespaces/access/selected_users": { + /** + * Add users to Codespaces access for an organization + * @deprecated + * @description Codespaces for the specified users will be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + post: operations["codespaces/set-codespaces-access-users"]; + /** + * Remove users from Codespaces access for an organization + * @deprecated + * @description Codespaces for the specified users will no longer be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["codespaces/delete-codespaces-access-users"]; + }; + "/orgs/{org}/codespaces/secrets": { + /** + * List organization secrets + * @description Lists all Codespaces development environment secrets available at the organization-level without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/list-org-secrets"]; + }; + "/orgs/{org}/codespaces/secrets/public-key": { + /** + * Get an organization public key + * @description Gets a public key for an organization, which is required in order to encrypt secrets. You need to encrypt the value of a secret before you can create or update secrets. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/get-org-public-key"]; + }; + "/orgs/{org}/codespaces/secrets/{secret_name}": { + /** + * Get an organization secret + * @description Gets an organization development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/get-org-secret"]; + /** + * Create or update an organization secret + * @description Creates or updates an organization development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["codespaces/create-or-update-org-secret"]; + /** + * Delete an organization secret + * @description Deletes an organization development environment secret using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["codespaces/delete-org-secret"]; + }; + "/orgs/{org}/codespaces/secrets/{secret_name}/repositories": { + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/list-selected-repos-for-org-secret"]; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["codespaces/set-selected-repos-for-org-secret"]; + }; + "/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}": { + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization development environment secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["codespaces/add-selected-repo-to-org-secret"]; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["codespaces/remove-selected-repo-from-org-secret"]; + }; + "/orgs/{org}/copilot/billing": { + /** + * Get Copilot seat information and settings for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Gets information about an organization's Copilot subscription, including seat breakdown + * and code matching policies. To configure these settings, go to your organization's settings on GitHub.com. + * For more information, see "[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-copilot-business-in-your-organization)". + * + * Only organization owners can configure and view details about the organization's Copilot Business subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + get: operations["copilot/get-copilot-organization-details"]; + }; + "/orgs/{org}/copilot/billing/seats": { + /** + * List all Copilot seat assignments for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Lists all Copilot seat assignments for an organization that are currently being billed (either active or pending cancellation at the start of the next billing cycle). + * + * Only organization owners can configure and view details about the organization's Copilot Business or Enterprise subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + get: operations["copilot/list-copilot-seats"]; + }; + "/orgs/{org}/copilot/billing/selected_teams": { + /** + * Add teams to the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for all users within each specified team. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + post: operations["copilot/add-copilot-seats-for-teams"]; + /** + * Remove teams from the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for all members of each team specified. + * This will cause the members of the specified team(s) to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + delete: operations["copilot/cancel-copilot-seat-assignment-for-teams"]; + }; + "/orgs/{org}/copilot/billing/selected_users": { + /** + * Add users to the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for each user specified. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + post: operations["copilot/add-copilot-seats-for-users"]; + /** + * Remove users from the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for each user specified. + * This will cause the specified users to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + delete: operations["copilot/cancel-copilot-seat-assignment-for-users"]; + }; + "/orgs/{org}/dependabot/alerts": { + /** + * List Dependabot alerts for an organization + * @description Lists Dependabot alerts for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["dependabot/list-alerts-for-org"]; + }; + "/orgs/{org}/dependabot/secrets": { + /** + * List organization secrets + * @description Lists all secrets available in an organization without revealing their + * encrypted values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["dependabot/list-org-secrets"]; + }; + "/orgs/{org}/dependabot/secrets/public-key": { + /** + * Get an organization public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["dependabot/get-org-public-key"]; + }; + "/orgs/{org}/dependabot/secrets/{secret_name}": { + /** + * Get an organization secret + * @description Gets a single organization secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["dependabot/get-org-secret"]; + /** + * Create or update an organization secret + * @description Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization + * permission to use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + put: operations["dependabot/create-or-update-org-secret"]; + /** + * Delete an organization secret + * @description Deletes a secret in an organization using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["dependabot/delete-org-secret"]; + }; + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories": { + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["dependabot/list-selected-repos-for-org-secret"]; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["dependabot/set-selected-repos-for-org-secret"]; + }; + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": { + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. The visibility is set when you [Create or + * update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["dependabot/add-selected-repo-to-org-secret"]; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["dependabot/remove-selected-repo-from-org-secret"]; + }; + "/orgs/{org}/docker/conflicts": { + /** + * Get list of conflicting packages during Docker migration for organization + * @description Lists all packages that are in a specific organization, are readable by the requesting user, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + get: operations["packages/list-docker-migration-conflicting-packages-for-organization"]; + }; + "/orgs/{org}/events": { + /** List public organization events */ + get: operations["activity/list-public-org-events"]; + }; + "/orgs/{org}/failed_invitations": { + /** + * List failed organization invitations + * @description The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. + */ + get: operations["orgs/list-failed-invitations"]; + }; + "/orgs/{org}/hooks": { + /** List organization webhooks */ + get: operations["orgs/list-webhooks"]; + /** + * Create an organization webhook + * @description Here's how you can create a hook that posts payloads in JSON format: + */ + post: operations["orgs/create-webhook"]; + }; + "/orgs/{org}/hooks/{hook_id}": { + /** + * Get an organization webhook + * @description Returns a webhook configured in an organization. To get only the webhook `config` properties, see "[Get a webhook configuration for an organization](/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization)." + */ + get: operations["orgs/get-webhook"]; + /** Delete an organization webhook */ + delete: operations["orgs/delete-webhook"]; + /** + * Update an organization webhook + * @description Updates a webhook configured in an organization. When you update a webhook, the `secret` will be overwritten. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for an organization](/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization)." + */ + patch: operations["orgs/update-webhook"]; + }; + "/orgs/{org}/hooks/{hook_id}/config": { + /** + * Get a webhook configuration for an organization + * @description Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/orgs/webhooks#get-an-organization-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org_hook` scope to use this endpoint. + */ + get: operations["orgs/get-webhook-config-for-org"]; + /** + * Update a webhook configuration for an organization + * @description Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/orgs/webhooks#update-an-organization-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org_hook` scope to use this endpoint. + */ + patch: operations["orgs/update-webhook-config-for-org"]; + }; + "/orgs/{org}/hooks/{hook_id}/deliveries": { + /** + * List deliveries for an organization webhook + * @description Returns a list of webhook deliveries for a webhook configured in an organization. + */ + get: operations["orgs/list-webhook-deliveries"]; + }; + "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}": { + /** + * Get a webhook delivery for an organization webhook + * @description Returns a delivery for a webhook configured in an organization. + */ + get: operations["orgs/get-webhook-delivery"]; + }; + "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": { + /** + * Redeliver a delivery for an organization webhook + * @description Redeliver a delivery for a webhook configured in an organization. + */ + post: operations["orgs/redeliver-webhook-delivery"]; + }; + "/orgs/{org}/hooks/{hook_id}/pings": { + /** + * Ping an organization webhook + * @description This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + post: operations["orgs/ping-webhook"]; + }; + "/orgs/{org}/installation": { + /** + * Get an organization installation for the authenticated app + * @description Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-org-installation"]; + }; + "/orgs/{org}/installations": { + /** + * List app installations for an organization + * @description Lists all GitHub Apps in an organization. The installation count includes + * all GitHub Apps installed on repositories in the organization. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:read` scope to use this endpoint. + */ + get: operations["orgs/list-app-installations"]; + }; + "/orgs/{org}/interaction-limits": { + /** + * Get interaction restrictions for an organization + * @description Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response. + */ + get: operations["interactions/get-restrictions-for-org"]; + /** + * Set interaction restrictions for an organization + * @description Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. + */ + put: operations["interactions/set-restrictions-for-org"]; + /** + * Remove interaction restrictions for an organization + * @description Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. + */ + delete: operations["interactions/remove-restrictions-for-org"]; + }; + "/orgs/{org}/invitations": { + /** + * List pending organization invitations + * @description The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, or `hiring_manager`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + get: operations["orgs/list-pending-invitations"]; + /** + * Create an organization invitation + * @description Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + post: operations["orgs/create-invitation"]; + }; + "/orgs/{org}/invitations/{invitation_id}": { + /** + * Cancel an organization invitation + * @description Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + */ + delete: operations["orgs/cancel-invitation"]; + }; + "/orgs/{org}/invitations/{invitation_id}/teams": { + /** + * List organization invitation teams + * @description List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + */ + get: operations["orgs/list-invitation-teams"]; + }; + "/orgs/{org}/issues": { + /** + * List organization issues assigned to the authenticated user + * @description List issues in an organization assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-for-org"]; + }; + "/orgs/{org}/members": { + /** + * List organization members + * @description List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + */ + get: operations["orgs/list-members"]; + }; + "/orgs/{org}/members/{username}": { + /** + * Check organization membership for a user + * @description Check if a user is, publicly or privately, a member of the organization. + */ + get: operations["orgs/check-membership-for-user"]; + /** + * Remove an organization member + * @description Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + */ + delete: operations["orgs/remove-member"]; + }; + "/orgs/{org}/members/{username}/codespaces": { + /** + * List codespaces for a user in organization + * @description Lists the codespaces that a member of an organization has for repositories in that organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/get-codespaces-for-user-in-org"]; + }; + "/orgs/{org}/members/{username}/codespaces/{codespace_name}": { + /** + * Delete a codespace from the organization + * @description Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["codespaces/delete-from-organization"]; + }; + "/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop": { + /** + * Stop a codespace for an organization user + * @description Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + post: operations["codespaces/stop-in-organization"]; + }; + "/orgs/{org}/members/{username}/copilot": { + /** + * Get Copilot seat assignment details for a user + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Gets the GitHub Copilot seat assignment details for a member of an organization who currently has access to GitHub Copilot. + * + * Organization owners can view GitHub Copilot seat assignment details for members in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + get: operations["copilot/get-copilot-seat-details-for-user"]; + }; + "/orgs/{org}/memberships/{username}": { + /** + * Get organization membership for a user + * @description In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status. + */ + get: operations["orgs/get-membership-for-user"]; + /** + * Set organization membership for a user + * @description Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + */ + put: operations["orgs/set-membership-for-user"]; + /** + * Remove organization membership for a user + * @description In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + */ + delete: operations["orgs/remove-membership-for-user"]; + }; + "/orgs/{org}/migrations": { + /** + * List organization migrations + * @description Lists the most recent migrations, including both exports (which can be started through the REST API) and imports (which cannot be started using the REST API). + * + * A list of `repositories` is only returned for export migrations. + */ + get: operations["migrations/list-for-org"]; + /** + * Start an organization migration + * @description Initiates the generation of a migration archive. + */ + post: operations["migrations/start-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}": { + /** + * Get an organization migration status + * @description Fetches the status of a migration. + * + * The `state` of a migration can be one of the following values: + * + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + get: operations["migrations/get-status-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/archive": { + /** + * Download an organization migration archive + * @description Fetches the URL to a migration archive. + */ + get: operations["migrations/download-archive-for-org"]; + /** + * Delete an organization migration archive + * @description Deletes a previous migration archive. Migration archives are automatically deleted after seven days. + */ + delete: operations["migrations/delete-archive-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": { + /** + * Unlock an organization repository + * @description Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/repos/repos#delete-a-repository) when the migration is complete and you no longer need the source data. + */ + delete: operations["migrations/unlock-repo-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/repositories": { + /** + * List repositories in an organization migration + * @description List all the repositories for this organization migration. + */ + get: operations["migrations/list-repos-for-org"]; + }; + "/orgs/{org}/organization-fine-grained-permissions": { + /** + * List organization fine-grained permissions for an organization + * @description Lists the fine-grained permissions that can be used in custom organization roles for an organization. For more information, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To list the fine-grained permissions that can be used in custom repository roles for an organization, see "[List repository fine-grained permissions for an organization](https://docs.github.com/rest/orgs/organization-roles#list-repository-fine-grained-permissions-for-an-organization)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/list-organization-fine-grained-permissions"]; + }; + "/orgs/{org}/organization-roles": { + /** + * Get all organization roles for an organization + * @description Lists the organization roles available in this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/list-org-roles"]; + /** + * Create a custom organization role + * @description Creates a custom organization role that can be assigned to users and teams, granting them specific permissions over the organization. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + post: operations["orgs/create-custom-organization-role"]; + }; + "/orgs/{org}/organization-roles/teams/{team_slug}": { + /** + * Remove all organization roles for a team + * @description Removes all assigned organization roles from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/revoke-all-org-roles-team"]; + }; + "/orgs/{org}/organization-roles/teams/{team_slug}/{role_id}": { + /** + * Assign an organization role to a team + * @description Assigns an organization role to a team in an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["orgs/assign-team-to-org-role"]; + /** + * Remove an organization role from a team + * @description Removes an organization role from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/revoke-org-role-team"]; + }; + "/orgs/{org}/organization-roles/users/{username}": { + /** + * Remove all organization roles for a user + * @description Revokes all assigned organization roles from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/revoke-all-org-roles-user"]; + }; + "/orgs/{org}/organization-roles/users/{username}/{role_id}": { + /** + * Assign an organization role to a user + * @description Assigns an organization role to a member of an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + put: operations["orgs/assign-user-to-org-role"]; + /** + * Remove an organization role from a user + * @description Remove an organization role from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/revoke-org-role-user"]; + }; + "/orgs/{org}/organization-roles/{role_id}": { + /** + * Get an organization role + * @description Gets an organization role that is available to this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/get-org-role"]; + /** + * Delete a custom organization role. + * @description Deletes a custom organization role. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/delete-custom-organization-role"]; + /** + * Update a custom organization role + * @description Updates an existing custom organization role. Permission changes will apply to all assignees. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + patch: operations["orgs/patch-custom-organization-role"]; + }; + "/orgs/{org}/organization-roles/{role_id}/teams": { + /** + * List teams that are assigned to an organization role + * @description Lists the teams that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/list-org-role-teams"]; + }; + "/orgs/{org}/organization-roles/{role_id}/users": { + /** + * List users that are assigned to an organization role + * @description Lists organization members that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + get: operations["orgs/list-org-role-users"]; + }; + "/orgs/{org}/outside_collaborators": { + /** + * List outside collaborators for an organization + * @description List all users who are outside collaborators of an organization. + */ + get: operations["orgs/list-outside-collaborators"]; + }; + "/orgs/{org}/outside_collaborators/{username}": { + /** + * Convert an organization member to outside collaborator + * @description When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://docs.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". Converting an organization member to an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + */ + put: operations["orgs/convert-member-to-outside-collaborator"]; + /** + * Remove outside collaborator from an organization + * @description Removing a user from this list will remove them from all the organization's repositories. + */ + delete: operations["orgs/remove-outside-collaborator"]; + }; + "/orgs/{org}/packages": { + /** + * List packages for an organization + * @description Lists packages in an organization readable by the user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/list-packages-for-organization"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}": { + /** + * Get a package for an organization + * @description Gets a specific package in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-for-organization"]; + /** + * Delete a package for an organization + * @description Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-for-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/restore": { + /** + * Restore a package for an organization + * @description Restores an entire package in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-for-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/versions": { + /** + * List package versions for a package owned by an organization + * @description Lists package versions for a package owned by an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-all-package-versions-for-package-owned-by-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": { + /** + * Get a package version for an organization + * @description Gets a specific package version in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-version-for-organization"]; + /** + * Delete package version for an organization + * @description Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-version-for-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + /** + * Restore package version for an organization + * @description Restores a specific package version in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-version-for-org"]; + }; + "/orgs/{org}/personal-access-token-requests": { + /** + * List requests to access organization resources with fine-grained personal access tokens + * @description Lists requests from organization members to access organization resources with a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + get: operations["orgs/list-pat-grant-requests"]; + /** + * Review requests to access organization resources with fine-grained personal access tokens + * @description Approves or denies multiple pending requests to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + post: operations["orgs/review-pat-grant-requests-in-bulk"]; + }; + "/orgs/{org}/personal-access-token-requests/{pat_request_id}": { + /** + * Review a request to access organization resources with a fine-grained personal access token + * @description Approves or denies a pending request to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + post: operations["orgs/review-pat-grant-request"]; + }; + "/orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories": { + /** + * List repositories requested to be accessed by a fine-grained personal access token + * @description Lists the repositories a fine-grained personal access token request is requesting access to. + * + * Only GitHub Apps can use this endpoint. + */ + get: operations["orgs/list-pat-grant-request-repositories"]; + }; + "/orgs/{org}/personal-access-tokens": { + /** + * List fine-grained personal access tokens with access to organization resources + * @description Lists approved fine-grained personal access tokens owned by organization members that can access organization resources. + * + * Only GitHub Apps can use this endpoint. + */ + get: operations["orgs/list-pat-grants"]; + /** + * Update the access to organization resources via fine-grained personal access tokens + * @description Updates the access organization members have to organization resources via fine-grained personal access tokens. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + post: operations["orgs/update-pat-accesses"]; + }; + "/orgs/{org}/personal-access-tokens/{pat_id}": { + /** + * Update the access a fine-grained personal access token has to organization resources + * @description Updates the access an organization member has to organization resources via a fine-grained personal access token. Limited to revoking the token's existing access. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + post: operations["orgs/update-pat-access"]; + }; + "/orgs/{org}/personal-access-tokens/{pat_id}/repositories": { + /** + * List repositories a fine-grained personal access token has access to + * @description Lists the repositories a fine-grained personal access token has access to. + * + * Only GitHub Apps can use this endpoint. + */ + get: operations["orgs/list-pat-grant-repositories"]; + }; + "/orgs/{org}/projects": { + /** + * List organization projects + * @description Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + get: operations["projects/list-for-org"]; + /** + * Create an organization project + * @description Creates an organization project board. Returns a `410 Gone` status if projects are disabled in the organization or if the organization does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + post: operations["projects/create-for-org"]; + }; + "/orgs/{org}/properties/schema": { + /** + * Get all custom properties for an organization + * @description Gets all custom properties defined for an organization. + * Organization members can read these properties. + */ + get: operations["orgs/get-all-custom-properties"]; + /** + * Create or update custom properties for an organization + * @description Creates new or updates existing custom properties defined for an organization in a batch. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + patch: operations["orgs/create-or-update-custom-properties"]; + }; + "/orgs/{org}/properties/schema/{custom_property_name}": { + /** + * Get a custom property for an organization + * @description Gets a custom property that is defined for an organization. + * Organization members can read these properties. + */ + get: operations["orgs/get-custom-property"]; + /** + * Create or update a custom property for an organization + * @description Creates a new or updates an existing custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + put: operations["orgs/create-or-update-custom-property"]; + /** + * Remove a custom property for an organization + * @description Removes a custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + delete: operations["orgs/remove-custom-property"]; + }; + "/orgs/{org}/properties/values": { + /** + * List custom property values for organization repositories + * @description Lists organization repositories with all of their custom property values. + * Organization members can read these properties. + */ + get: operations["orgs/list-custom-properties-values-for-repos"]; + /** + * Create or update custom property values for organization repositories + * @description Create new or update existing custom property values for repositories in a batch that belong to an organization. + * Each target repository will have its custom property values updated to match the values provided in the request. + * + * A maximum of 30 repositories can be updated in a single request. + * + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_values_editor` in the organization. + */ + patch: operations["orgs/create-or-update-custom-properties-values-for-repos"]; + }; + "/orgs/{org}/public_members": { + /** + * List public organization members + * @description Members of an organization can choose to have their membership publicized or not. + */ + get: operations["orgs/list-public-members"]; + }; + "/orgs/{org}/public_members/{username}": { + /** + * Check public organization membership for a user + * @description Check if the provided user is a public member of the organization. + */ + get: operations["orgs/check-public-membership-for-user"]; + /** + * Set public organization membership for the authenticated user + * @description The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["orgs/set-public-membership-for-authenticated-user"]; + /** + * Remove public organization membership for the authenticated user + * @description Removes the public membership for the authenticated user from the specified organization, unless public visibility is enforced by default. + */ + delete: operations["orgs/remove-public-membership-for-authenticated-user"]; + }; + "/orgs/{org}/repos": { + /** + * List organization repositories + * @description Lists repositories for the specified organization. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + get: operations["repos/list-for-org"]; + /** + * Create an organization repository + * @description Creates a new repository in the specified organization. The authenticated user must be a member of the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + post: operations["repos/create-in-org"]; + }; + "/orgs/{org}/rulesets": { + /** + * Get all organization repository rulesets + * @description Get all the repository rulesets for an organization. + */ + get: operations["repos/get-org-rulesets"]; + /** + * Create an organization repository ruleset + * @description Create a repository ruleset for an organization. + */ + post: operations["repos/create-org-ruleset"]; + }; + "/orgs/{org}/rulesets/rule-suites": { + /** + * List organization rule suites + * @description Lists suites of rule evaluations at the organization level. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + get: operations["repos/get-org-rule-suites"]; + }; + "/orgs/{org}/rulesets/rule-suites/{rule_suite_id}": { + /** + * Get an organization rule suite + * @description Gets information about a suite of rule evaluations from within an organization. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + get: operations["repos/get-org-rule-suite"]; + }; + "/orgs/{org}/rulesets/{ruleset_id}": { + /** + * Get an organization repository ruleset + * @description Get a repository ruleset for an organization. + */ + get: operations["repos/get-org-ruleset"]; + /** + * Update an organization repository ruleset + * @description Update a ruleset for an organization. + */ + put: operations["repos/update-org-ruleset"]; + /** + * Delete an organization repository ruleset + * @description Delete a ruleset for an organization. + */ + delete: operations["repos/delete-org-ruleset"]; + }; + "/orgs/{org}/secret-scanning/alerts": { + /** + * List secret scanning alerts for an organization + * @description Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["secret-scanning/list-alerts-for-org"]; + }; + "/orgs/{org}/security-advisories": { + /** + * List repository security advisories for an organization + * @description Lists repository security advisories for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + get: operations["security-advisories/list-org-repository-advisories"]; + }; + "/orgs/{org}/security-managers": { + /** + * List security manager teams + * @description Lists teams that are security managers for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + get: operations["orgs/list-security-manager-teams"]; + }; + "/orgs/{org}/security-managers/teams/{team_slug}": { + /** + * Add a security manager team + * @description Adds a team as a security manager for an organization. For more information, see "[Managing security for an organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) for an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + put: operations["orgs/add-security-manager-team"]; + /** + * Remove a security manager team + * @description Removes the security manager role from a team for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) team from an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + delete: operations["orgs/remove-security-manager-team"]; + }; + "/orgs/{org}/settings/billing/actions": { + /** + * Get GitHub Actions billing for an organization + * @description Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + get: operations["billing/get-github-actions-billing-org"]; + }; + "/orgs/{org}/settings/billing/packages": { + /** + * Get GitHub Packages billing for an organization + * @description Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + get: operations["billing/get-github-packages-billing-org"]; + }; + "/orgs/{org}/settings/billing/shared-storage": { + /** + * Get shared storage billing for an organization + * @description Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + get: operations["billing/get-shared-storage-billing-org"]; + }; + "/orgs/{org}/teams": { + /** + * List teams + * @description Lists all teams in an organization that are visible to the authenticated user. + */ + get: operations["teams/list"]; + /** + * Create a team + * @description To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://docs.github.com/articles/setting-team-creation-permissions-in-your-organization)." + * + * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/about-teams)". + */ + post: operations["teams/create"]; + }; + "/orgs/{org}/teams/{team_slug}": { + /** + * Get a team by name + * @description Gets a team using the team's `slug`. To create the `slug`, GitHub replaces special characters in the `name` string, changes all words to lowercase, and replaces spaces with a `-` separator. For example, `"My TEam Näme"` would become `my-team-name`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + */ + get: operations["teams/get-by-name"]; + /** + * Delete a team + * @description To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + */ + delete: operations["teams/delete-in-org"]; + /** + * Update a team + * @description To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + */ + patch: operations["teams/update-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions": { + /** + * List discussions + * @description List all discussions on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/list-discussions-in-org"]; + /** + * Create a discussion + * @description Creates a new discussion post on a team's page. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["teams/create-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": { + /** + * Get a discussion + * @description Get a specific discussion on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/get-discussion-in-org"]; + /** + * Delete a discussion + * @description Delete a discussion from a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["teams/delete-discussion-in-org"]; + /** + * Update a discussion + * @description Edits the title and body text of a discussion post. Only the parameters you provide are updated. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + patch: operations["teams/update-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": { + /** + * List discussion comments + * @description List all comments on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/list-discussion-comments-in-org"]; + /** + * Create a discussion comment + * @description Creates a new comment on a team discussion. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["teams/create-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": { + /** + * Get a discussion comment + * @description Get a specific comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/get-discussion-comment-in-org"]; + /** + * Delete a discussion comment + * @description Deletes a comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["teams/delete-discussion-comment-in-org"]; + /** + * Update a discussion comment + * @description Edits the body text of a discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + patch: operations["teams/update-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + /** + * List reactions for a team discussion comment + * @description List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["reactions/list-for-team-discussion-comment-in-org"]; + /** + * Create reaction for a team discussion comment + * @description Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["reactions/create-for-team-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}": { + /** + * Delete team discussion comment reaction + * @description **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["reactions/delete-for-team-discussion-comment"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": { + /** + * List reactions for a team discussion + * @description List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["reactions/list-for-team-discussion-in-org"]; + /** + * Create reaction for a team discussion + * @description Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["reactions/create-for-team-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}": { + /** + * Delete team discussion reaction + * @description **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["reactions/delete-for-team-discussion"]; + }; + "/orgs/{org}/teams/{team_slug}/invitations": { + /** + * List pending team invitations + * @description The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + */ + get: operations["teams/list-pending-invitations-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/members": { + /** + * List team members + * @description Team members will include the members of child teams. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + get: operations["teams/list-members-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/memberships/{username}": { + /** + * Get team membership for a user + * @description Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + */ + get: operations["teams/get-membership-for-user-in-org"]; + /** + * Add or update team membership for a user + * @description Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + put: operations["teams/add-or-update-membership-for-user-in-org"]; + /** + * Remove team membership for a user + * @description To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + delete: operations["teams/remove-membership-for-user-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/projects": { + /** + * List team projects + * @description Lists the organization projects for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. + */ + get: operations["teams/list-projects-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/projects/{project_id}": { + /** + * Check team permissions for a project + * @description Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + get: operations["teams/check-permissions-for-project-in-org"]; + /** + * Add or update team project permissions + * @description Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + put: operations["teams/add-or-update-project-permissions-in-org"]; + /** + * Remove a project from a team + * @description Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + delete: operations["teams/remove-project-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/repos": { + /** + * List team repositories + * @description Lists a team's repositories visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. + */ + get: operations["teams/list-repos-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": { + /** + * Check team permissions for a repository + * @description Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header. + * + * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. + * + * If the repository is private, you must have at least `read` permission for that repository, and your token must have the `repo` or `admin:org` scope. Otherwise, you will receive a `404 Not Found` response status. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + get: operations["teams/check-permissions-for-repo-in-org"]; + /** + * Add or update team repository permissions + * @description To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + * + * For more information about the permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + */ + put: operations["teams/add-or-update-repo-permissions-in-org"]; + /** + * Remove a repository from a team + * @description If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + delete: operations["teams/remove-repo-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/teams": { + /** + * List child teams + * @description Lists the child teams of the team specified by `{team_slug}`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. + */ + get: operations["teams/list-child-in-org"]; + }; + "/orgs/{org}/{security_product}/{enablement}": { + /** + * Enable or disable a security feature for an organization + * @description Enables or disables the specified security feature for all eligible repositories in an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an organization owner or be member of a team with the security manager role to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + post: operations["orgs/enable-or-disable-security-product-on-all-org-repos"]; + }; + "/projects/columns/cards/{card_id}": { + /** + * Get a project card + * @description Gets information about a project card. + */ + get: operations["projects/get-card"]; + /** + * Delete a project card + * @description Deletes a project card + */ + delete: operations["projects/delete-card"]; + /** Update an existing project card */ + patch: operations["projects/update-card"]; + }; + "/projects/columns/cards/{card_id}/moves": { + /** Move a project card */ + post: operations["projects/move-card"]; + }; + "/projects/columns/{column_id}": { + /** + * Get a project column + * @description Gets information about a project column. + */ + get: operations["projects/get-column"]; + /** + * Delete a project column + * @description Deletes a project column. + */ + delete: operations["projects/delete-column"]; + /** Update an existing project column */ + patch: operations["projects/update-column"]; + }; + "/projects/columns/{column_id}/cards": { + /** + * List project cards + * @description Lists the project cards in a project. + */ + get: operations["projects/list-cards"]; + /** Create a project card */ + post: operations["projects/create-card"]; + }; + "/projects/columns/{column_id}/moves": { + /** Move a project column */ + post: operations["projects/move-column"]; + }; + "/projects/{project_id}": { + /** + * Get a project + * @description Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + get: operations["projects/get"]; + /** + * Delete a project + * @description Deletes a project board. Returns a `404 Not Found` status if projects are disabled. + */ + delete: operations["projects/delete"]; + /** + * Update a project + * @description Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + patch: operations["projects/update"]; + }; + "/projects/{project_id}/collaborators": { + /** + * List project collaborators + * @description Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. + */ + get: operations["projects/list-collaborators"]; + }; + "/projects/{project_id}/collaborators/{username}": { + /** + * Add project collaborator + * @description Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. + */ + put: operations["projects/add-collaborator"]; + /** + * Remove user as a collaborator + * @description Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. + */ + delete: operations["projects/remove-collaborator"]; + }; + "/projects/{project_id}/collaborators/{username}/permission": { + /** + * Get project permission for a user + * @description Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. + */ + get: operations["projects/get-permission-for-user"]; + }; + "/projects/{project_id}/columns": { + /** + * List project columns + * @description Lists the project columns in a project. + */ + get: operations["projects/list-columns"]; + /** + * Create a project column + * @description Creates a new project column. + */ + post: operations["projects/create-column"]; + }; + "/rate_limit": { + /** + * Get rate limit status for the authenticated user + * @description **Note:** Accessing this endpoint does not count against your REST API rate limit. + * + * Some categories of endpoints have custom rate limits that are separate from the rate limit governing the other REST API endpoints. For this reason, the API response categorizes your rate limit. Under `resources`, you'll see objects relating to different categories: + * * The `core` object provides your rate limit status for all non-search-related resources in the REST API. + * * The `search` object provides your rate limit status for the REST API for searching (excluding code searches). For more information, see "[Search](https://docs.github.com/rest/search/search)." + * * The `code_search` object provides your rate limit status for the REST API for searching code. For more information, see "[Search code](https://docs.github.com/rest/search/search#search-code)." + * * The `graphql` object provides your rate limit status for the GraphQL API. For more information, see "[Resource limitations](https://docs.github.com/graphql/overview/resource-limitations#rate-limit)." + * * The `integration_manifest` object provides your rate limit status for the `POST /app-manifests/{code}/conversions` operation. For more information, see "[Creating a GitHub App from a manifest](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app-from-a-manifest#3-you-exchange-the-temporary-code-to-retrieve-the-app-configuration)." + * * The `dependency_snapshots` object provides your rate limit status for submitting snapshots to the dependency graph. For more information, see "[Dependency graph](https://docs.github.com/rest/dependency-graph)." + * * The `code_scanning_upload` object provides your rate limit status for uploading SARIF results to code scanning. For more information, see "[Uploading a SARIF file to GitHub](https://docs.github.com/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github)." + * * The `actions_runner_registration` object provides your rate limit status for registering self-hosted runners in GitHub Actions. For more information, see "[Self-hosted runners](https://docs.github.com/rest/actions/self-hosted-runners)." + * * The `source_import` object is no longer in use for any API endpoints, and it will be removed in the next API version. For more information about API versions, see "[API Versions](https://docs.github.com/rest/overview/api-versions)." + * + * **Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + */ + get: operations["rate-limit/get"]; + }; + "/repos/{owner}/{repo}": { + /** + * Get a repository + * @description The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + get: operations["repos/get"]; + /** + * Delete a repository + * @description Deleting a repository requires admin access. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned + * repositories, you will get a `403 Forbidden` response. + * + * OAuth app tokens and personal access tokens (classic) need the `delete_repo` scope to use this endpoint. + */ + delete: operations["repos/delete"]; + /** + * Update a repository + * @description **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/repos/repos#replace-all-repository-topics) endpoint. + */ + patch: operations["repos/update"]; + }; + "/repos/{owner}/{repo}/actions/artifacts": { + /** + * List artifacts for a repository + * @description Lists all artifacts for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-artifacts-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}": { + /** + * Get an artifact + * @description Gets a specific artifact for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-artifact"]; + /** + * Delete an artifact + * @description Deletes an artifact for a workflow run. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-artifact"]; + }; + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": { + /** + * Download an artifact + * @description Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + * the response header to find the URL for the download. The `:archive_format` must be `zip`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/download-artifact"]; + }; + "/repos/{owner}/{repo}/actions/cache/usage": { + /** + * Get GitHub Actions cache usage for a repository + * @description Gets GitHub Actions cache usage for a repository. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-actions-cache-usage"]; + }; + "/repos/{owner}/{repo}/actions/caches": { + /** + * List GitHub Actions caches for a repository + * @description Lists the GitHub Actions caches for a repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-actions-cache-list"]; + /** + * Delete GitHub Actions caches for a repository (using a cache key) + * @description Deletes one or more GitHub Actions caches for a repository, using a complete cache key. By default, all caches that match the provided key are deleted, but you can optionally provide a Git ref to restrict deletions to caches that match both the provided key and the Git ref. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-actions-cache-by-key"]; + }; + "/repos/{owner}/{repo}/actions/caches/{cache_id}": { + /** + * Delete a GitHub Actions cache for a repository (using a cache ID) + * @description Deletes a GitHub Actions cache for a repository, using a cache ID. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-actions-cache-by-id"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}": { + /** + * Get a job for a workflow run + * @description Gets a specific job in a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-job-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}/logs": { + /** + * Download job logs for a workflow run + * @description Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + * for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/download-job-logs-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun": { + /** + * Re-run a job from a workflow run + * @description Re-run a job and its dependent jobs in a workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/re-run-job-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/oidc/customization/sub": { + /** + * Get the customization template for an OIDC subject claim for a repository + * @description Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-custom-oidc-sub-claim-for-repo"]; + /** + * Set the customization template for an OIDC subject claim for a repository + * @description Sets the customization template and `opt-in` or `opt-out` flag for an OpenID Connect (OIDC) subject claim for a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-custom-oidc-sub-claim-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/organization-secrets": { + /** + * List repository organization secrets + * @description Lists all organization secrets shared with a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-repo-organization-secrets"]; + }; + "/repos/{owner}/{repo}/actions/organization-variables": { + /** + * List repository organization variables + * @description Lists all organization variables shared with a repository. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-repo-organization-variables"]; + }; + "/repos/{owner}/{repo}/actions/permissions": { + /** + * Get GitHub Actions permissions for a repository + * @description Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-github-actions-permissions-repository"]; + /** + * Set GitHub Actions permissions for a repository + * @description Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-github-actions-permissions-repository"]; + }; + "/repos/{owner}/{repo}/actions/permissions/access": { + /** + * Get the level of access for workflows outside of the repository + * @description Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-workflow-access-to-repository"]; + /** + * Set the level of access for workflows outside of the repository + * @description Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-workflow-access-to-repository"]; + }; + "/repos/{owner}/{repo}/actions/permissions/selected-actions": { + /** + * Get allowed actions and reusable workflows for a repository + * @description Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-allowed-actions-repository"]; + /** + * Set allowed actions and reusable workflows for a repository + * @description Sets the actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-allowed-actions-repository"]; + }; + "/repos/{owner}/{repo}/actions/permissions/workflow": { + /** + * Get default workflow permissions for a repository + * @description Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, + * as well as if GitHub Actions can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-github-actions-default-workflow-permissions-repository"]; + /** + * Set default workflow permissions for a repository + * @description Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, and sets if GitHub Actions + * can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-github-actions-default-workflow-permissions-repository"]; + }; + "/repos/{owner}/{repo}/actions/runners": { + /** + * List self-hosted runners for a repository + * @description Lists all self-hosted runners configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-self-hosted-runners-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/downloads": { + /** + * List runner applications for a repository + * @description Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-runner-applications-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/generate-jitconfig": { + /** + * Create configuration for a just-in-time runner for a repository + * @description Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the repository. + * + * OAuth tokens and personal access tokens (classic) need the`repo` scope to use this endpoint. + */ + post: operations["actions/generate-runner-jitconfig-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/registration-token": { + /** + * Create a registration token for a repository + * @description Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-registration-token-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/remove-token": { + /** + * Create a remove token for a repository + * @description Returns a token that you can pass to the `config` script to remove a self-hosted runner from an repository. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-remove-token-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/{runner_id}": { + /** + * Get a self-hosted runner for a repository + * @description Gets a specific self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-self-hosted-runner-for-repo"]; + /** + * Delete a self-hosted runner from a repository + * @description Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-self-hosted-runner-from-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels": { + /** + * List labels for a self-hosted runner for a repository + * @description Lists all labels for a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-labels-for-self-hosted-runner-for-repo"]; + /** + * Set custom labels for a self-hosted runner for a repository + * @description Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/set-custom-labels-for-self-hosted-runner-for-repo"]; + /** + * Add custom labels to a self-hosted runner for a repository + * @description Adds custom labels to a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/add-custom-labels-to-self-hosted-runner-for-repo"]; + /** + * Remove all custom labels from a self-hosted runner for a repository + * @description Remove all custom labels from a self-hosted runner configured in a + * repository. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/remove-all-custom-labels-from-self-hosted-runner-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}": { + /** + * Remove a custom label from a self-hosted runner for a repository + * @description Remove a custom label from a self-hosted runner configured + * in a repository. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/remove-custom-label-from-self-hosted-runner-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runs": { + /** + * List workflow runs for a repository + * @description Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-workflow-runs-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}": { + /** + * Get a workflow run + * @description Gets a specific workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow-run"]; + /** + * Delete a workflow run + * @description Deletes a specific workflow run. + * + * Anyone with write access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/approvals": { + /** + * Get the review history for a workflow run + * @description Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-reviews-for-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/approve": { + /** + * Approve a workflow run for a fork pull request + * @description Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see ["Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/approve-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": { + /** + * List workflow run artifacts + * @description Lists artifacts for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-workflow-run-artifacts"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}": { + /** + * Get a workflow run attempt + * @description Gets a specific workflow run attempt. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow-run-attempt"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": { + /** + * List jobs for a workflow run attempt + * @description Lists jobs for a specific workflow run attempt. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-jobs-for-workflow-run-attempt"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs": { + /** + * Download workflow run attempt logs + * @description Gets a redirect URL to download an archive of log files for a specific workflow run attempt. This link expires after + * 1 minute. Look for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/download-workflow-run-attempt-logs"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/cancel": { + /** + * Cancel a workflow run + * @description Cancels a workflow run using its `id`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/cancel-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule": { + /** + * Review custom deployment protection rules for a workflow run + * @description Approve or reject custom deployment protection rules provided by a GitHub App for a workflow run. For more information, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * **Note:** GitHub Apps can only review their own custom deployment protection rules. + * To approve or reject pending deployments that are waiting for review from a specific person or team, see [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + post: operations["actions/review-custom-gates-for-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel": { + /** + * Force cancel a workflow run + * @description Cancels a workflow run and bypasses conditions that would otherwise cause a workflow execution to continue, such as an `always()` condition on a job. + * You should only use this endpoint to cancel a workflow run when the workflow run is not responding to [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel`](/rest/actions/workflow-runs#cancel-a-workflow-run). + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/force-cancel-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/jobs": { + /** + * List jobs for a workflow run + * @description Lists jobs for a workflow run. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-jobs-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/logs": { + /** + * Download workflow run logs + * @description Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for + * `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/download-workflow-run-logs"]; + /** + * Delete workflow run logs + * @description Deletes all logs for a workflow run. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-workflow-run-logs"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": { + /** + * Get pending deployments for a workflow run + * @description Get all deployment environments for a workflow run that are waiting for protection rules to pass. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-pending-deployments-for-run"]; + /** + * Review pending deployments for a workflow run + * @description Approve or reject pending deployments that are waiting on approval by a required reviewer. + * + * Required reviewers with read access to the repository contents and deployments can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/review-pending-deployments-for-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun": { + /** + * Re-run a workflow + * @description Re-runs your workflow run using its `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/re-run-workflow"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs": { + /** + * Re-run failed jobs from a workflow run + * @description Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/re-run-workflow-failed-jobs"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/timing": { + /** + * Get workflow run usage + * @description Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow-run-usage"]; + }; + "/repos/{owner}/{repo}/actions/secrets": { + /** + * List repository secrets + * @description Lists all secrets available in a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-repo-secrets"]; + }; + "/repos/{owner}/{repo}/actions/secrets/public-key": { + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-repo-public-key"]; + }; + "/repos/{owner}/{repo}/actions/secrets/{secret_name}": { + /** + * Get a repository secret + * @description Gets a single repository secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-repo-secret"]; + /** + * Create or update a repository secret + * @description Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/create-or-update-repo-secret"]; + /** + * Delete a repository secret + * @description Deletes a secret in a repository using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-repo-secret"]; + }; + "/repos/{owner}/{repo}/actions/variables": { + /** + * List repository variables + * @description Lists all repository variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-repo-variables"]; + /** + * Create a repository variable + * @description Creates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-repo-variable"]; + }; + "/repos/{owner}/{repo}/actions/variables/{name}": { + /** + * Get a repository variable + * @description Gets a specific variable in a repository. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-repo-variable"]; + /** + * Delete a repository variable + * @description Deletes a repository variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-repo-variable"]; + /** + * Update a repository variable + * @description Updates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + patch: operations["actions/update-repo-variable"]; + }; + "/repos/{owner}/{repo}/actions/workflows": { + /** + * List repository workflows + * @description Lists the workflows in a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-repo-workflows"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}": { + /** + * Get a workflow + * @description Gets a specific workflow. You can replace `workflow_id` with the workflow + * file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": { + /** + * Disable a workflow + * @description Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/disable-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": { + /** + * Create a workflow dispatch event + * @description You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-workflow-dispatch"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": { + /** + * Enable a workflow + * @description Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/enable-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": { + /** + * List workflow runs for a workflow + * @description List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/list-workflow-runs"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": { + /** + * Get workflow usage + * @description Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["actions/get-workflow-usage"]; + }; + "/repos/{owner}/{repo}/activity": { + /** + * List repository activities + * @description Lists a detailed history of changes to a repository, such as pushes, merges, force pushes, and branch changes, and associates these changes with commits and users. + * + * For more information about viewing repository activity, + * see "[Viewing activity and data for your repository](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository)." + */ + get: operations["repos/list-activities"]; + }; + "/repos/{owner}/{repo}/assignees": { + /** + * List assignees + * @description Lists the [available assignees](https://docs.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. + */ + get: operations["issues/list-assignees"]; + }; + "/repos/{owner}/{repo}/assignees/{assignee}": { + /** + * Check if a user can be assigned + * @description Checks if a user has permission to be assigned to an issue in this repository. + * + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + get: operations["issues/check-user-can-be-assigned"]; + }; + "/repos/{owner}/{repo}/autolinks": { + /** + * Get all autolinks of a repository + * @description Gets all autolinks that are configured for a repository. + * + * Information about autolinks are only available to repository administrators. + */ + get: operations["repos/list-autolinks"]; + /** + * Create an autolink reference for a repository + * @description Users with admin access to the repository can create an autolink. + */ + post: operations["repos/create-autolink"]; + }; + "/repos/{owner}/{repo}/autolinks/{autolink_id}": { + /** + * Get an autolink reference of a repository + * @description This returns a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + get: operations["repos/get-autolink"]; + /** + * Delete an autolink reference from a repository + * @description This deletes a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + delete: operations["repos/delete-autolink"]; + }; + "/repos/{owner}/{repo}/automated-security-fixes": { + /** + * Check if automated security fixes are enabled for a repository + * @description Shows whether automated security fixes are enabled, disabled or paused for a repository. The authenticated user must have admin read access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + get: operations["repos/check-automated-security-fixes"]; + /** + * Enable automated security fixes + * @description Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + put: operations["repos/enable-automated-security-fixes"]; + /** + * Disable automated security fixes + * @description Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + delete: operations["repos/disable-automated-security-fixes"]; + }; + "/repos/{owner}/{repo}/branches": { + /** List branches */ + get: operations["repos/list-branches"]; + }; + "/repos/{owner}/{repo}/branches/{branch}": { + /** Get a branch */ + get: operations["repos/get-branch"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection": { + /** + * Get branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-branch-protection"]; + /** + * Update branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * + * **Note**: The list of users, apps, and teams in total is limited to 100 items. + */ + put: operations["repos/update-branch-protection"]; + /** + * Delete branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + delete: operations["repos/delete-branch-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": { + /** + * Get admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-admin-branch-protection"]; + /** + * Set admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + post: operations["repos/set-admin-branch-protection"]; + /** + * Delete admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + delete: operations["repos/delete-admin-branch-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": { + /** + * Get pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-pull-request-review-protection"]; + /** + * Delete pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + delete: operations["repos/delete-pull-request-review-protection"]; + /** + * Update pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + */ + patch: operations["repos/update-pull-request-review-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": { + /** + * Get commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://docs.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * + * **Note**: You must enable branch protection to require signed commits. + */ + get: operations["repos/get-commit-signature-protection"]; + /** + * Create commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + */ + post: operations["repos/create-commit-signature-protection"]; + /** + * Delete commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + */ + delete: operations["repos/delete-commit-signature-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": { + /** + * Get status checks protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-status-checks-protection"]; + /** + * Remove status check protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + delete: operations["repos/remove-status-check-protection"]; + /** + * Update status check protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + */ + patch: operations["repos/update-status-check-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": { + /** + * Get all status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + get: operations["repos/get-all-status-check-contexts"]; + /** + * Set status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + put: operations["repos/set-status-check-contexts"]; + /** + * Add status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + post: operations["repos/add-status-check-contexts"]; + /** + * Remove status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + delete: operations["repos/remove-status-check-contexts"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions": { + /** + * Get access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists who has access to this protected branch. + * + * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + */ + get: operations["repos/get-access-restrictions"]; + /** + * Delete access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Disables the ability to restrict who can push to this branch. + */ + delete: operations["repos/delete-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": { + /** + * Get apps with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + get: operations["repos/get-apps-with-access-to-protected-branch"]; + /** + * Set app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + put: operations["repos/set-app-access-restrictions"]; + /** + * Add app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified apps push access for this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + post: operations["repos/add-app-access-restrictions"]; + /** + * Remove app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of an app to push to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + delete: operations["repos/remove-app-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": { + /** + * Get teams with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. The list includes child teams. + */ + get: operations["repos/get-teams-with-access-to-protected-branch"]; + /** + * Set team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + */ + put: operations["repos/set-team-access-restrictions"]; + /** + * Add team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified teams push access for this branch. You can also give push access to child teams. + */ + post: operations["repos/add-team-access-restrictions"]; + /** + * Remove team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + */ + delete: operations["repos/remove-team-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": { + /** + * Get users with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + */ + get: operations["repos/get-users-with-access-to-protected-branch"]; + /** + * Set user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + put: operations["repos/set-user-access-restrictions"]; + /** + * Add user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified people push access for this branch. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + post: operations["repos/add-user-access-restrictions"]; + /** + * Remove user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a user to push to this branch. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + delete: operations["repos/remove-user-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/rename": { + /** + * Rename a branch + * @description Renames a branch in a repository. + * + * **Note:** Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)". + * + * The authenticated user must have push access to the branch. If the branch is the default branch, the authenticated user must also have admin or owner permissions. + * + * In order to rename the default branch, fine-grained access tokens also need the `administration:write` repository permission. + */ + post: operations["repos/rename-branch"]; + }; + "/repos/{owner}/{repo}/check-runs": { + /** + * Create a check run + * @description **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + * + * In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. + */ + post: operations["checks/create"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}": { + /** + * Get a check run + * @description Gets a single check run using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/get"]; + /** + * Update a check run + * @description Updates a check run for a specific commit in a repository. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + patch: operations["checks/update"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": { + /** + * List check run annotations + * @description Lists annotations for a check run using the annotation `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/list-annotations"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest": { + /** + * Rerequest a check run + * @description Triggers GitHub to rerequest an existing check run, without pushing new code to a repository. This endpoint will trigger the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) event with the action `rerequested`. When a check run is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * For more information about how to re-run GitHub Actions jobs, see "[Re-run a job from a workflow run](https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run)". + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + post: operations["checks/rerequest-run"]; + }; + "/repos/{owner}/{repo}/check-suites": { + /** + * Create a check suite + * @description Creates a check suite manually. By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/checks/runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites)". + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + post: operations["checks/create-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/preferences": { + /** + * Update repository preferences for check suites + * @description Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/checks/suites#create-a-check-suite). + * You must have admin permissions in the repository to set preferences for check suites. + */ + patch: operations["checks/set-suites-preferences"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}": { + /** + * Get a check suite + * @description Gets a single check suite using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/get-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": { + /** + * List check runs in a check suite + * @description Lists check runs for a check suite using its `id`. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/list-for-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": { + /** + * Rerequest a check suite + * @description Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + post: operations["checks/rerequest-suite"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts": { + /** + * List code scanning alerts for a repository + * @description Lists all open code scanning alerts for the default branch (usually `main` + * or `master`). You must use an access token with the `security_events` scope to use + * this endpoint with private repos, the `public_repo` scope also grants permission to read + * security events on public repos only. GitHub Apps must have the `security_events` read + * permission to use this endpoint. + * + * The response includes a `most_recent_instance` object. + * This provides details of the most recent instance of this alert + * for the default branch or for the specified Git reference + * (if you used `ref` in the request). + */ + get: operations["code-scanning/list-alerts-for-repo"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": { + /** + * Get a code scanning alert + * @description Gets a single code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-alert"]; + /** + * Update a code scanning alert + * @description Updates the status of a single code scanning alert. + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + patch: operations["code-scanning/update-alert"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": { + /** + * List instances of a code scanning alert + * @description Lists all instances of the specified code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/list-alert-instances"]; + }; + "/repos/{owner}/{repo}/code-scanning/analyses": { + /** + * List code scanning analyses for a repository + * @description Lists the details of all code scanning analyses for a repository, + * starting with the most recent. + * The response is paginated and you can use the `page` and `per_page` parameters + * to list the analyses you're interested in. + * By default 30 analyses are listed per page. + * + * The `rules_count` field in the response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * **Deprecation notice**: + * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/list-recent-analyses"]; + }; + "/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}": { + /** + * Get a code scanning analysis for a repository + * @description Gets a specified code scanning analysis for a repository. + * + * The default JSON response contains fields that describe the analysis. + * This includes the Git reference and commit SHA to which the analysis relates, + * the datetime of the analysis, the name of the code scanning tool, + * and the number of alerts. + * + * The `rules_count` field in the default response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/sarif+json`**: Instead of returning a summary of the analysis, this endpoint returns a subset of the analysis data that was uploaded. The data is formatted as [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). It also returns additional data such as the `github/alertNumber` and `github/alertUrl` properties. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-analysis"]; + /** + * Delete a code scanning analysis from a repository + * @description Deletes a specified code scanning analysis from a repository. + * + * You can delete one analysis at a time. + * To delete a series of analyses, start with the most recent analysis and work backwards. + * Conceptually, the process is similar to the undo function in a text editor. + * + * When you list the analyses for a repository, + * one or more will be identified as deletable in the response: + * + * ``` + * "deletable": true + * ``` + * + * An analysis is deletable when it's the most recent in a set of analyses. + * Typically, a repository will have multiple sets of analyses + * for each enabled code scanning tool, + * where a set is determined by a unique combination of analysis values: + * + * * `ref` + * * `tool` + * * `category` + * + * If you attempt to delete an analysis that is not the most recent in a set, + * you'll get a 400 response with the message: + * + * ``` + * Analysis specified is not deletable. + * ``` + * + * The response from a successful `DELETE` operation provides you with + * two alternative URLs for deleting the next analysis in the set: + * `next_analysis_url` and `confirm_delete_url`. + * Use the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis + * in a set. This is a useful option if you want to preserve at least one analysis + * for the specified tool in your repository. + * Use the `confirm_delete_url` URL if you are content to remove all analyses for a tool. + * When you delete the last analysis in a set, the value of `next_analysis_url` and `confirm_delete_url` + * in the 200 response is `null`. + * + * As an example of the deletion process, + * let's imagine that you added a workflow that configured a particular code scanning tool + * to analyze the code in a repository. This tool has added 15 analyses: + * 10 on the default branch, and another 5 on a topic branch. + * You therefore have two separate sets of analyses for this tool. + * You've now decided that you want to remove all of the analyses for the tool. + * To do this you must make 15 separate deletion requests. + * To start, you must find an analysis that's identified as deletable. + * Each set of analyses always has one that's identified as deletable. + * Having found the deletable analysis for one of the two sets, + * delete this analysis and then continue deleting the next analysis in the set until they're all deleted. + * Then repeat the process for the second set. + * The procedure therefore consists of a nested loop: + * + * **Outer loop**: + * * List the analyses for the repository, filtered by tool. + * * Parse this list to find a deletable analysis. If found: + * + * **Inner loop**: + * * Delete the identified analysis. + * * Parse the response for the value of `confirm_delete_url` and, if found, use this in the next iteration. + * + * The above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + delete: operations["code-scanning/delete-analysis"]; + }; + "/repos/{owner}/{repo}/code-scanning/codeql/databases": { + /** + * List CodeQL databases for a repository + * @description Lists the CodeQL databases that are available in a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/list-codeql-databases"]; + }; + "/repos/{owner}/{repo}/code-scanning/codeql/databases/{language}": { + /** + * Get a CodeQL database for a repository + * @description Gets a CodeQL database for a language in a repository. + * + * By default this endpoint returns JSON metadata about the CodeQL database. To + * download the CodeQL database binary content, set the `Accept` header of the request + * to [`application/zip`](https://docs.github.com/rest/overview/media-types), and make sure + * your HTTP client is configured to follow redirects or use the `Location` header + * to make a second request to get the redirect URL. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-codeql-database"]; + }; + "/repos/{owner}/{repo}/code-scanning/default-setup": { + /** + * Get a code scanning default setup configuration + * @description Gets a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-default-setup"]; + /** + * Update a code scanning default setup configuration + * @description Updates a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + patch: operations["code-scanning/update-default-setup"]; + }; + "/repos/{owner}/{repo}/code-scanning/sarifs": { + /** + * Upload an analysis as SARIF data + * @description Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. For troubleshooting information, see "[Troubleshooting SARIF uploads](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif)." + * + * There are two places where you can upload code scanning results. + * - If you upload to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)." + * - If you upload to a branch, for example `--ref refs/heads/my-branch`, then the results appear in the **Security** tab for your repository. For more information, see "[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)." + * + * You must compress the SARIF-formatted analysis data that you want to upload, using `gzip`, and then encode it as a Base64 format string. For example: + * + * ``` + * gzip -c analysis-data.sarif | base64 -w0 + * ``` + * + * SARIF upload supports a maximum number of entries per the following data objects, and an analysis will be rejected if any of these objects is above its maximum value. For some objects, there are additional values over which the entries will be ignored while keeping the most important entries whenever applicable. + * To get the most out of your analysis when it includes data above the supported limits, try to optimize the analysis configuration. For example, for the CodeQL tool, identify and remove the most noisy queries. For more information, see "[SARIF results exceed one or more limits](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif/results-exceed-limit)." + * + * + * | **SARIF data** | **Maximum values** | **Additional limits** | + * |----------------------------------|:------------------:|----------------------------------------------------------------------------------| + * | Runs per file | 20 | | + * | Results per run | 25,000 | Only the top 5,000 results will be included, prioritized by severity. | + * | Rules per run | 25,000 | | + * | Tool extensions per run | 100 | | + * | Thread Flow Locations per result | 10,000 | Only the top 1,000 Thread Flow Locations will be included, using prioritization. | + * | Location per result | 1,000 | Only 100 locations will be included. | + * | Tags per rule | 20 | Only 10 tags will be included. | + * + * + * The `202 Accepted` response includes an `id` value. + * You can use this ID to check the status of the upload by using it in the `/sarifs/{sarif_id}` endpoint. + * For more information, see "[Get information about a SARIF upload](/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + post: operations["code-scanning/upload-sarif"]; + }; + "/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}": { + /** + * Get information about a SARIF upload + * @description Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see "[Get a code scanning analysis for a repository](/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository)." + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + get: operations["code-scanning/get-sarif"]; + }; + "/repos/{owner}/{repo}/codeowners/errors": { + /** + * List CODEOWNERS errors + * @description List any syntax errors that are detected in the CODEOWNERS + * file. + * + * For more information about the correct CODEOWNERS syntax, + * see "[About code owners](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)." + */ + get: operations["repos/codeowners-errors"]; + }; + "/repos/{owner}/{repo}/codespaces": { + /** + * List codespaces in a repository for the authenticated user + * @description Lists the codespaces associated to a specified repository and the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/list-in-repository-for-authenticated-user"]; + /** + * Create a codespace in a repository + * @description Creates a codespace owned by the authenticated user in the specified repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/create-with-repo-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/devcontainers": { + /** + * List devcontainer configurations in a repository for the authenticated user + * @description Lists the devcontainer.json files associated with a specified repository and the authenticated user. These files + * specify launchpoint configurations for codespaces created within the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/list-devcontainers-in-repository-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/machines": { + /** + * List available machine types for a repository + * @description List the machine types available for a given repository based on its configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/repo-machines-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/new": { + /** + * Get default attributes for a codespace + * @description Gets the default attributes for codespaces created by the user with the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/pre-flight-with-repo-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/permissions_check": { + /** + * Check if permissions defined by a devcontainer have been accepted by the authenticated user + * @description Checks whether the permissions defined by a given devcontainer configuration have been accepted by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/check-permissions-for-devcontainer"]; + }; + "/repos/{owner}/{repo}/codespaces/secrets": { + /** + * List repository secrets + * @description Lists all development environment secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["codespaces/list-repo-secrets"]; + }; + "/repos/{owner}/{repo}/codespaces/secrets/public-key": { + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["codespaces/get-repo-public-key"]; + }; + "/repos/{owner}/{repo}/codespaces/secrets/{secret_name}": { + /** + * Get a repository secret + * @description Gets a single repository development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["codespaces/get-repo-secret"]; + /** + * Create or update a repository secret + * @description Creates or updates a repository development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["codespaces/create-or-update-repo-secret"]; + /** + * Delete a repository secret + * @description Deletes a development environment secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["codespaces/delete-repo-secret"]; + }; + "/repos/{owner}/{repo}/collaborators": { + /** + * List repository collaborators + * @description For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * Organization members with write, maintain, or admin privileges on the organization-owned repository can use this endpoint. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + get: operations["repos/list-collaborators"]; + }; + "/repos/{owner}/{repo}/collaborators/{username}": { + /** + * Check if a user is a repository collaborator + * @description For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + get: operations["repos/check-collaborator"]; + /** + * Add a repository collaborator + * @description This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Adding an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + * + * For more information on permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with: + * + * ``` + * Cannot assign {member} permission of {role name} + * ``` + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [API](https://docs.github.com/rest/collaborators/invitations). + * + * **Updating an existing collaborator's permission level** + * + * The endpoint can also be used to change the permissions of an existing collaborator without first removing and re-adding the collaborator. To change the permissions, use the same endpoint and pass a different `permission` parameter. The response will be a `204`, with no other indication that the permission level changed. + * + * **Rate limits** + * + * You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + */ + put: operations["repos/add-collaborator"]; + /** + * Remove a repository collaborator + * @description Removes a collaborator from a repository. + * + * To use this endpoint, the authenticated user must either be an administrator of the repository or target themselves for removal. + * + * This endpoint also: + * - Cancels any outstanding invitations + * - Unasigns the user from any issues + * - Removes access to organization projects if the user is not an organization member and is not a collaborator on any other organization repositories. + * - Unstars the repository + * - Updates access permissions to packages + * + * Removing a user as a collaborator has the following effects on forks: + * - If the user had access to a fork through their membership to this repository, the user will also be removed from the fork. + * - If the user had their own fork of the repository, the fork will be deleted. + * - If the user still has read access to the repository, open pull requests by this user from a fork will be denied. + * + * **Note**: A user can still have access to the repository through organization permissions like base repository permissions. + * + * Although the API responds immediately, the additional permission updates might take some extra time to complete in the background. + * + * For more information on fork permissions, see "[About permissions and visibility of forks](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks)". + */ + delete: operations["repos/remove-collaborator"]; + }; + "/repos/{owner}/{repo}/collaborators/{username}/permission": { + /** + * Get repository permissions for a user + * @description Checks the repository permission of a collaborator. The possible repository + * permissions are `admin`, `write`, `read`, and `none`. + * + * *Note*: The `permission` attribute provides the legacy base roles of `admin`, `write`, `read`, and `none`, where the + * `maintain` role is mapped to `write` and the `triage` role is mapped to `read`. To determine the role assigned to the + * collaborator, see the `role_name` attribute, which will provide the full role name, including custom roles. The + * `permissions` hash can also be used to determine which base level of access the collaborator has to the repository. + */ + get: operations["repos/get-collaborator-permission-level"]; + }; + "/repos/{owner}/{repo}/comments": { + /** + * List commit comments for a repository + * @description Lists the commit comments for a specified repository. Comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["repos/list-commit-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}": { + /** + * Get a commit comment + * @description Gets a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["repos/get-commit-comment"]; + /** Delete a commit comment */ + delete: operations["repos/delete-commit-comment"]; + /** + * Update a commit comment + * @description Updates the contents of a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + patch: operations["repos/update-commit-comment"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}/reactions": { + /** + * List reactions for a commit comment + * @description List the reactions to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + get: operations["reactions/list-for-commit-comment"]; + /** + * Create reaction for a commit comment + * @description Create a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). A response with an HTTP `200` status means that you already added the reaction type to this commit comment. + */ + post: operations["reactions/create-for-commit-comment"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": { + /** + * Delete a commit comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + delete: operations["reactions/delete-for-commit-comment"]; + }; + "/repos/{owner}/{repo}/commits": { + /** + * List commits + * @description **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/list-commits"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": { + /** + * List branches for HEAD commit + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + */ + get: operations["repos/list-branches-for-head-commit"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/comments": { + /** + * List commit comments + * @description Lists the comments for a specified commit. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["repos/list-comments-for-commit"]; + /** + * Create a commit comment + * @description Create a comment for a commit using its `:commit_sha`. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["repos/create-commit-comment"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/pulls": { + /** + * List pull requests associated with a commit + * @description Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, will only return open pull requests associated with the commit. + * + * To list the open or merged pull requests associated with a branch, you can set the `commit_sha` parameter to the branch name. + */ + get: operations["repos/list-pull-requests-associated-with-commit"]; + }; + "/repos/{owner}/{repo}/commits/{ref}": { + /** + * Get a commit + * @description Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * **Note:** If there are more than 300 files in the commit diff and the default JSON media type is requested, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." Pagination query parameters are not supported for these media types. + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.sha`**: Returns the commit's SHA-1 hash. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/get-commit"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/check-runs": { + /** + * List check runs for a Git reference + * @description Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * If there are more than 1000 check suites on a single git reference, this endpoint will limit check runs to the 1000 most recent check suites. To iterate over all possible check runs, use the [List check suites for a Git reference](https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference) endpoint and provide the `check_suite_id` parameter to the [List check runs in a check suite](https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite) endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/list-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/check-suites": { + /** + * List check suites for a Git reference + * @description Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + get: operations["checks/list-suites-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/status": { + /** + * Get the combined status for a specific reference + * @description Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + */ + get: operations["repos/get-combined-status-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/statuses": { + /** + * List commit statuses for a reference + * @description Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + */ + get: operations["repos/list-commit-statuses-for-ref"]; + }; + "/repos/{owner}/{repo}/community/profile": { + /** + * Get community profile metrics + * @description Returns all community profile metrics for a repository. The repository cannot be a fork. + * + * The returned metrics include an overall health score, the repository description, the presence of documentation, the + * detected code of conduct, the detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + * README, and CONTRIBUTING files. + * + * The `health_percentage` score is defined as a percentage of how many of + * the recommended community health files are present. For more information, see + * "[About community profiles for public repositories](https://docs.github.com/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories)." + * + * `content_reports_enabled` is only returned for organization-owned repositories. + */ + get: operations["repos/get-community-profile-metrics"]; + }; + "/repos/{owner}/{repo}/compare/{basehead}": { + /** + * Compare two commits + * @description Compares two commits against one another. You can compare branches in the same repository, or you can compare branches that exist in different repositories within the same repository network, including fork branches. For more information about how to view a repository's network, see "[Understanding connections between repositories](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository/understanding-connections-between-repositories)." + * + * This endpoint is equivalent to running the `git log BASE..HEAD` command, but it returns commits in a different order. The `git log BASE..HEAD` command returns commits in reverse chronological order, whereas the API returns commits in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. + * + * The API response includes details about the files that were changed between the two commits. This includes the status of the change (if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * When calling this endpoint without any paging parameter (`per_page` or `page`), the returned list is limited to 250 commits, and the last commit in the list is the most recent of the entire comparison. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, use a query parameter (`per_page` or `page`) to paginate the results. When using pagination: + * + * - The list of changed files is only shown on the first page of results, but it includes all changed files for the entire comparison. + * - The results are returned in chronological order, but the last commit in the returned list may not be the most recent one in the entire set if there are more pages of results. + * + * For more information on working with pagination, see "[Using pagination in the REST API](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The `verification` object includes the following fields: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/compare-commits-with-basehead"]; + }; + "/repos/{owner}/{repo}/contents/{path}": { + /** + * Get repository content + * @description Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks. + * - **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * - **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects. + * + * If the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + * + * If the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself. + * + * If the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + * + * **Notes**: + * + * - To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree). + * - This API has an upper limit of 1,000 files for a directory. If you need to retrieve + * more files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree). + * - Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. + * - If the requested file's size is: + * - 1 MB or smaller: All features of this endpoint are supported. + * - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty + * string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * - Greater than 100 MB: This endpoint is not supported. + */ + get: operations["repos/get-content"]; + /** + * Create or update file contents + * @description Creates a new file or replaces an existing file in a repository. + * + * **Note:** If you use this endpoint and the "[Delete a file](https://docs.github.com/rest/repos/contents/#delete-a-file)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The `workflow` scope is also required in order to modify files in the `.github/workflows` directory. + */ + put: operations["repos/create-or-update-file-contents"]; + /** + * Delete a file + * @description Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + * + * **Note:** If you use this endpoint and the "[Create or update file contents](https://docs.github.com/rest/repos/contents/#create-or-update-file-contents)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + */ + delete: operations["repos/delete-file"]; + }; + "/repos/{owner}/{repo}/contributors": { + /** + * List repository contributors + * @description Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + */ + get: operations["repos/list-contributors"]; + }; + "/repos/{owner}/{repo}/dependabot/alerts": { + /** + * List Dependabot alerts for a repository + * @description OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["dependabot/list-alerts-for-repo"]; + }; + "/repos/{owner}/{repo}/dependabot/alerts/{alert_number}": { + /** + * Get a Dependabot alert + * @description OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["dependabot/get-alert"]; + /** + * Update a Dependabot alert + * @description The authenticated user must have access to security alerts for the repository to use this endpoint. For more information, see "[Granting access to security alerts](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + patch: operations["dependabot/update-alert"]; + }; + "/repos/{owner}/{repo}/dependabot/secrets": { + /** + * List repository secrets + * @description Lists all secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["dependabot/list-repo-secrets"]; + }; + "/repos/{owner}/{repo}/dependabot/secrets/public-key": { + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. Anyone with read access + * to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the repository is private. + */ + get: operations["dependabot/get-repo-public-key"]; + }; + "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}": { + /** + * Get a repository secret + * @description Gets a single repository secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["dependabot/get-repo-secret"]; + /** + * Create or update a repository secret + * @description Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["dependabot/create-or-update-repo-secret"]; + /** + * Delete a repository secret + * @description Deletes a secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["dependabot/delete-repo-secret"]; + }; + "/repos/{owner}/{repo}/dependency-graph/compare/{basehead}": { + /** + * Get a diff of the dependencies between commits + * @description Gets the diff of the dependency changes between two commits of a repository, based on the changes to the dependency manifests made in those commits. + */ + get: operations["dependency-graph/diff-range"]; + }; + "/repos/{owner}/{repo}/dependency-graph/sbom": { + /** + * Export a software bill of materials (SBOM) for a repository. + * @description Exports the software bill of materials (SBOM) for a repository in SPDX JSON format. + */ + get: operations["dependency-graph/export-sbom"]; + }; + "/repos/{owner}/{repo}/dependency-graph/snapshots": { + /** + * Create a snapshot of dependencies for a repository + * @description Create a new snapshot of a repository's dependencies. + * + * The authenticated user must have access to the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["dependency-graph/create-repository-snapshot"]; + }; + "/repos/{owner}/{repo}/deployments": { + /** + * List deployments + * @description Simple filtering of deployments is available via query parameters: + */ + get: operations["repos/list-deployments"]; + /** + * Create a deployment + * @description Deployments offer a few configurable parameters with certain defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + * before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + * makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + * return a failure response. + * + * By default, [commit statuses](https://docs.github.com/rest/commits/statuses) for every submitted context must be in a `success` + * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + * not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + * field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + * application with debugging enabled. + * + * Merged branch response: + * + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + * a deployment. This auto-merge happens when: + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful + * response. + * + * Merge conflict response: + * + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * Failed commit status checks: + * + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + post: operations["repos/create-deployment"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}": { + /** Get a deployment */ + get: operations["repos/get-deployment"]; + /** + * Delete a deployment + * @description If the repository only has one deployment, you can delete the deployment regardless of its status. If the repository has more than one deployment, you can only delete inactive deployments. This ensures that repositories with multiple deployments will always have an active deployment. + * + * To set a deployment as inactive, you must: + * + * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * * Mark the active deployment as inactive by adding any non-successful deployment status. + * + * For more information, see "[Create a deployment](https://docs.github.com/rest/deployments/deployments/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/deployments/statuses#create-a-deployment-status)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + delete: operations["repos/delete-deployment"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses": { + /** + * List deployment statuses + * @description Users with pull access can view deployment statuses for a deployment: + */ + get: operations["repos/list-deployment-statuses"]; + /** + * Create a deployment status + * @description Users with `push` access can create deployment statuses for a given deployment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo_deployment` scope to use this endpoint. + */ + post: operations["repos/create-deployment-status"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": { + /** + * Get a deployment status + * @description Users with pull access can view a deployment status for a deployment: + */ + get: operations["repos/get-deployment-status"]; + }; + "/repos/{owner}/{repo}/dispatches": { + /** + * Create a repository dispatch event + * @description You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["repos/create-dispatch-event"]; + }; + "/repos/{owner}/{repo}/environments": { + /** + * List environments + * @description Lists the environments for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-all-environments"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}": { + /** + * Get an environment + * @description **Note:** To get information about name patterns that branches must match in order to deploy to this environment, see "[Get a deployment branch policy](/rest/deployments/branch-policies#get-a-deployment-branch-policy)." + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-environment"]; + /** + * Create or update an environment + * @description Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "[Environments](/actions/reference/environments#environment-protection-rules)." + * + * **Note:** To create or update name patterns that branches must match in order to deploy to this environment, see "[Deployment branch policies](/rest/deployments/branch-policies)." + * + * **Note:** To create or update secrets for an environment, see "[GitHub Actions secrets](/rest/actions/secrets)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["repos/create-or-update-environment"]; + /** + * Delete an environment + * @description OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["repos/delete-an-environment"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": { + /** + * List deployment branch policies + * @description Lists the deployment branch policies for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/list-deployment-branch-policies"]; + /** + * Create a deployment branch policy + * @description Creates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["repos/create-deployment-branch-policy"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": { + /** + * Get a deployment branch policy + * @description Gets a deployment branch or tag policy for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-deployment-branch-policy"]; + /** + * Update a deployment branch policy + * @description Updates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["repos/update-deployment-branch-policy"]; + /** + * Delete a deployment branch policy + * @description Deletes a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["repos/delete-deployment-branch-policy"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules": { + /** + * Get all deployment protection rules for an environment + * @description Gets all custom deployment protection rules that are enabled for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-all-deployment-protection-rules"]; + /** + * Create a custom deployment protection rule on an environment + * @description Enable a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["repos/create-deployment-protection-rule"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps": { + /** + * List custom deployment rule integrations available for an environment + * @description Gets all custom deployment protection rule integrations that are available for an environment. Anyone with read access to the repository can use this endpoint. + * + * For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see "[GET an app](https://docs.github.com/rest/apps/apps#get-an-app)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/list-custom-deployment-rule-integrations"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}": { + /** + * Get a custom deployment protection rule + * @description Gets an enabled custom deployment protection rule for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see [`GET /apps/{app_slug}`](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/get-custom-deployment-protection-rule"]; + /** + * Disable a custom protection rule for an environment + * @description Disables a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["repos/disable-deployment-protection-rule"]; + }; + "/repos/{owner}/{repo}/events": { + /** + * List repository events + * @description **Note**: This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + */ + get: operations["activity/list-repo-events"]; + }; + "/repos/{owner}/{repo}/forks": { + /** List forks */ + get: operations["repos/list-forks"]; + /** + * Create a fork + * @description Create a fork for the authenticated user. + * + * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * + * **Note**: Although this endpoint works with GitHub Apps, the GitHub App must be installed on the destination account with access to all repositories and on the source account with access to the source repository. + */ + post: operations["repos/create-fork"]; + }; + "/repos/{owner}/{repo}/git/blobs": { + /** Create a blob */ + post: operations["git/create-blob"]; + }; + "/repos/{owner}/{repo}/git/blobs/{file_sha}": { + /** + * Get a blob + * @description The `content` in the response will always be Base64 encoded. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw blob data. + * - **`application/vnd.github+json`**: Returns a JSON representation of the blob with `content` as a base64 encoded string. This is the default if no media type is specified. + * + * **Note** This endpoint supports blobs up to 100 megabytes in size. + */ + get: operations["git/get-blob"]; + }; + "/repos/{owner}/{repo}/git/commits": { + /** + * Create a commit + * @description Creates a new Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + post: operations["git/create-commit"]; + }; + "/repos/{owner}/{repo}/git/commits/{commit_sha}": { + /** + * Get a commit object + * @description Gets a Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * To get the contents of a commit, see "[Get a commit](/rest/commits/commits#get-a-commit)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["git/get-commit"]; + }; + "/repos/{owner}/{repo}/git/matching-refs/{ref}": { + /** + * List matching references + * @description Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + * + * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + */ + get: operations["git/list-matching-refs"]; + }; + "/repos/{owner}/{repo}/git/ref/{ref}": { + /** + * Get a reference + * @description Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + */ + get: operations["git/get-ref"]; + }; + "/repos/{owner}/{repo}/git/refs": { + /** + * Create a reference + * @description Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. + */ + post: operations["git/create-ref"]; + }; + "/repos/{owner}/{repo}/git/refs/{ref}": { + /** Delete a reference */ + delete: operations["git/delete-ref"]; + /** Update a reference */ + patch: operations["git/update-ref"]; + }; + "/repos/{owner}/{repo}/git/tags": { + /** + * Create a tag object + * @description Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/git/refs#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/git/refs#create-a-reference) the tag reference - this call would be unnecessary. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + post: operations["git/create-tag"]; + }; + "/repos/{owner}/{repo}/git/tags/{tag_sha}": { + /** + * Get a tag + * @description **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["git/get-tag"]; + }; + "/repos/{owner}/{repo}/git/trees": { + /** + * Create a tree + * @description The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + * + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/git/commits#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/git/refs#update-a-reference)." + * + * Returns an error if you try to delete a file that does not exist. + */ + post: operations["git/create-tree"]; + }; + "/repos/{owner}/{repo}/git/trees/{tree_sha}": { + /** + * Get a tree + * @description Returns a single tree using the SHA1 value or ref name for that tree. + * + * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. + * + * + * **Note**: The limit for the `tree` array is 100,000 entries with a maximum size of 7 MB when using the `recursive` parameter. + */ + get: operations["git/get-tree"]; + }; + "/repos/{owner}/{repo}/hooks": { + /** + * List repository webhooks + * @description Lists webhooks for a repository. `last response` may return null if there have not been any deliveries within 30 days. + */ + get: operations["repos/list-webhooks"]; + /** + * Create a repository webhook + * @description Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + * share the same `config` as long as those webhooks do not have any `events` that overlap. + */ + post: operations["repos/create-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}": { + /** + * Get a repository webhook + * @description Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository)." + */ + get: operations["repos/get-webhook"]; + /** Delete a repository webhook */ + delete: operations["repos/delete-webhook"]; + /** + * Update a repository webhook + * @description Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/webhooks/repo-config#update-a-webhook-configuration-for-a-repository)." + */ + patch: operations["repos/update-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/config": { + /** + * Get a webhook configuration for a repository + * @description Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/webhooks/repos#get-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:repo_hook` or `repo` scope to use this endpoint. + */ + get: operations["repos/get-webhook-config-for-repo"]; + /** + * Update a webhook configuration for a repository + * @description Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/webhooks/repos#update-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:repo_hook` or `repo` scope to use this endpoint. + */ + patch: operations["repos/update-webhook-config-for-repo"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries": { + /** + * List deliveries for a repository webhook + * @description Returns a list of webhook deliveries for a webhook configured in a repository. + */ + get: operations["repos/list-webhook-deliveries"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}": { + /** + * Get a delivery for a repository webhook + * @description Returns a delivery for a webhook configured in a repository. + */ + get: operations["repos/get-webhook-delivery"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": { + /** + * Redeliver a delivery for a repository webhook + * @description Redeliver a webhook delivery for a webhook configured in a repository. + */ + post: operations["repos/redeliver-webhook-delivery"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/pings": { + /** + * Ping a repository webhook + * @description This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + post: operations["repos/ping-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/tests": { + /** + * Test the push repository webhook + * @description This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * + * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + */ + post: operations["repos/test-push-webhook"]; + }; + "/repos/{owner}/{repo}/import": { + /** + * Get an import status + * @deprecated + * @description View the progress of an import. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * **Import status** + * + * This section includes details about the possible values of the `status` field of the Import Progress response. + * + * An import that does not have errors will progress through these steps: + * + * * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * * `complete` - the import is complete, and the repository is ready on GitHub. + * + * If there are problems, you will see one of these in the `status` field: + * + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/migrations/source-imports#cancel-an-import) and [retry](https://docs.github.com/rest/migrations/source-imports#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * + * **The project_choices field** + * + * When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + * + * **Git LFS related fields** + * + * This section includes details about Git LFS related fields that may be present in the Import Progress response. + * + * * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + */ + get: operations["migrations/get-import-status"]; + /** + * Start an import + * @deprecated + * @description Start a source import to a GitHub repository using GitHub Importer. + * Importing into a GitHub repository with GitHub Actions enabled is not supported and will + * return a status `422 Unprocessable Entity` response. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + put: operations["migrations/start-import"]; + /** + * Cancel an import + * @deprecated + * @description Stop an import for a repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + delete: operations["migrations/cancel-import"]; + /** + * Update an import + * @deprecated + * @description An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API + * request. If no parameters are provided, the import will be restarted. + * + * Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will + * have the status `detection_found_multiple` and the Import Progress response will include a `project_choices` array. + * You can select the project to import by providing one of the objects in the `project_choices` array in the update request. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + patch: operations["migrations/update-import"]; + }; + "/repos/{owner}/{repo}/import/authors": { + /** + * Get commit authors + * @deprecated + * @description Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + * + * This endpoint and the [Map a commit author](https://docs.github.com/rest/migrations/source-imports#map-a-commit-author) endpoint allow you to provide correct Git author information. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + get: operations["migrations/get-commit-authors"]; + }; + "/repos/{owner}/{repo}/import/authors/{author_id}": { + /** + * Map a commit author + * @deprecated + * @description Update an author's identity for the import. Your application can continue updating authors any time before you push + * new commits to the repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + patch: operations["migrations/map-commit-author"]; + }; + "/repos/{owner}/{repo}/import/large_files": { + /** + * Get large files + * @deprecated + * @description List files larger than 100MB found during the import + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + get: operations["migrations/get-large-files"]; + }; + "/repos/{owner}/{repo}/import/lfs": { + /** + * Update Git LFS preference + * @deprecated + * @description You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability + * is powered by [Git LFS](https://git-lfs.com). + * + * You can learn more about our LFS feature and working with large files [on our help + * site](https://docs.github.com/repositories/working-with-files/managing-large-files). + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + patch: operations["migrations/set-lfs-preference"]; + }; + "/repos/{owner}/{repo}/installation": { + /** + * Get a repository installation for the authenticated app + * @description Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-repo-installation"]; + }; + "/repos/{owner}/{repo}/interaction-limits": { + /** + * Get interaction restrictions for a repository + * @description Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + get: operations["interactions/get-restrictions-for-repo"]; + /** + * Set interaction restrictions for a repository + * @description Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + put: operations["interactions/set-restrictions-for-repo"]; + /** + * Remove interaction restrictions for a repository + * @description Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + delete: operations["interactions/remove-restrictions-for-repo"]; + }; + "/repos/{owner}/{repo}/invitations": { + /** + * List repository invitations + * @description When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. + */ + get: operations["repos/list-invitations"]; + }; + "/repos/{owner}/{repo}/invitations/{invitation_id}": { + /** Delete a repository invitation */ + delete: operations["repos/delete-invitation"]; + /** Update a repository invitation */ + patch: operations["repos/update-invitation"]; + }; + "/repos/{owner}/{repo}/issues": { + /** + * List repository issues + * @description List issues in a repository. Only open issues will be listed. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-for-repo"]; + /** + * Create an issue + * @description Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://docs.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["issues/create"]; + }; + "/repos/{owner}/{repo}/issues/comments": { + /** + * List issue comments for a repository + * @description You can use the REST API to list comments on issues and pull requests for a repository. Every pull request is an issue, but not every issue is a pull request. + * + * By default, issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}": { + /** + * Get an issue comment + * @description You can use the REST API to get comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/get-comment"]; + /** + * Delete an issue comment + * @description You can use the REST API to delete comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + */ + delete: operations["issues/delete-comment"]; + /** + * Update an issue comment + * @description You can use the REST API to update comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + patch: operations["issues/update-comment"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": { + /** + * List reactions for an issue comment + * @description List the reactions to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + get: operations["reactions/list-for-issue-comment"]; + /** + * Create reaction for an issue comment + * @description Create a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). A response with an HTTP `200` status means that you already added the reaction type to this issue comment. + */ + post: operations["reactions/create-for-issue-comment"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": { + /** + * Delete an issue comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + delete: operations["reactions/delete-for-issue-comment"]; + }; + "/repos/{owner}/{repo}/issues/events": { + /** + * List issue events for a repository + * @description Lists events for a repository. + */ + get: operations["issues/list-events-for-repo"]; + }; + "/repos/{owner}/{repo}/issues/events/{event_id}": { + /** + * Get an issue event + * @description Gets a single event by the event id. + */ + get: operations["issues/get-event"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}": { + /** + * Get an issue + * @description The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api#follow-redirects) if the issue was + * [transferred](https://docs.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API + * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read + * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe + * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/get"]; + /** + * Update an issue + * @description Issue owners and users with push access can edit an issue. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + patch: operations["issues/update"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/assignees": { + /** + * Add assignees to an issue + * @description Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. + */ + post: operations["issues/add-assignees"]; + /** + * Remove assignees from an issue + * @description Removes one or more assignees from an issue. + */ + delete: operations["issues/remove-assignees"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}": { + /** + * Check if a user can be assigned to a issue + * @description Checks if a user has permission to be assigned to a specific issue. + * + * If the `assignee` can be assigned to this issue, a `204` status code with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + get: operations["issues/check-user-can-be-assigned-to-issue"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/comments": { + /** + * List issue comments + * @description You can use the REST API to list comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * Issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-comments"]; + /** + * Create an issue comment + * @description You can use the REST API to create comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + * Creating content too quickly using this endpoint may result in secondary rate limiting. + * For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["issues/create-comment"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/events": { + /** + * List issue events + * @description Lists all events for an issue. + */ + get: operations["issues/list-events"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/labels": { + /** + * List labels for an issue + * @description Lists all labels for an issue. + */ + get: operations["issues/list-labels-on-issue"]; + /** + * Set labels for an issue + * @description Removes any previous labels and sets the new labels for an issue. + */ + put: operations["issues/set-labels"]; + /** + * Add labels to an issue + * @description Adds labels to an issue. If you provide an empty array of labels, all labels are removed from the issue. + */ + post: operations["issues/add-labels"]; + /** + * Remove all labels from an issue + * @description Removes all labels from an issue. + */ + delete: operations["issues/remove-all-labels"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": { + /** + * Remove a label from an issue + * @description Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. + */ + delete: operations["issues/remove-label"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/lock": { + /** + * Lock an issue + * @description Users with push access can lock an issue or pull request's conversation. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["issues/lock"]; + /** + * Unlock an issue + * @description Users with push access can unlock an issue's conversation. + */ + delete: operations["issues/unlock"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/reactions": { + /** + * List reactions for an issue + * @description List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + get: operations["reactions/list-for-issue"]; + /** + * Create reaction for an issue + * @description Create a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). A response with an HTTP `200` status means that you already added the reaction type to this issue. + */ + post: operations["reactions/create-for-issue"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": { + /** + * Delete an issue reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + * + * Delete a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + delete: operations["reactions/delete-for-issue"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/timeline": { + /** + * List timeline events for an issue + * @description List all timeline events for an issue. + */ + get: operations["issues/list-events-for-timeline"]; + }; + "/repos/{owner}/{repo}/keys": { + /** List deploy keys */ + get: operations["repos/list-deploy-keys"]; + /** + * Create a deploy key + * @description You can create a read-only deploy key. + */ + post: operations["repos/create-deploy-key"]; + }; + "/repos/{owner}/{repo}/keys/{key_id}": { + /** Get a deploy key */ + get: operations["repos/get-deploy-key"]; + /** + * Delete a deploy key + * @description Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. + */ + delete: operations["repos/delete-deploy-key"]; + }; + "/repos/{owner}/{repo}/labels": { + /** + * List labels for a repository + * @description Lists all labels for a repository. + */ + get: operations["issues/list-labels-for-repo"]; + /** + * Create a label + * @description Creates a label for the specified repository with the given name and color. The name and color parameters are required. The color must be a valid [hexadecimal color code](http://www.color-hex.com/). + */ + post: operations["issues/create-label"]; + }; + "/repos/{owner}/{repo}/labels/{name}": { + /** + * Get a label + * @description Gets a label using the given name. + */ + get: operations["issues/get-label"]; + /** + * Delete a label + * @description Deletes a label using the given label name. + */ + delete: operations["issues/delete-label"]; + /** + * Update a label + * @description Updates a label using the given label name. + */ + patch: operations["issues/update-label"]; + }; + "/repos/{owner}/{repo}/languages": { + /** + * List repository languages + * @description Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. + */ + get: operations["repos/list-languages"]; + }; + "/repos/{owner}/{repo}/license": { + /** + * Get the license for a repository + * @description This method returns the contents of the repository's license file, if one is detected. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw contents of the license. + * - **`application/vnd.github.html+json`**: Returns the license contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + get: operations["licenses/get-for-repo"]; + }; + "/repos/{owner}/{repo}/merge-upstream": { + /** + * Sync a fork branch with the upstream repository + * @description Sync a branch of a forked repository to keep it up-to-date with the upstream repository. + */ + post: operations["repos/merge-upstream"]; + }; + "/repos/{owner}/{repo}/merges": { + /** Merge a branch */ + post: operations["repos/merge"]; + }; + "/repos/{owner}/{repo}/milestones": { + /** + * List milestones + * @description Lists milestones for a repository. + */ + get: operations["issues/list-milestones"]; + /** + * Create a milestone + * @description Creates a milestone. + */ + post: operations["issues/create-milestone"]; + }; + "/repos/{owner}/{repo}/milestones/{milestone_number}": { + /** + * Get a milestone + * @description Gets a milestone using the given milestone number. + */ + get: operations["issues/get-milestone"]; + /** + * Delete a milestone + * @description Deletes a milestone using the given milestone number. + */ + delete: operations["issues/delete-milestone"]; + /** Update a milestone */ + patch: operations["issues/update-milestone"]; + }; + "/repos/{owner}/{repo}/milestones/{milestone_number}/labels": { + /** + * List labels for issues in a milestone + * @description Lists labels for issues in a milestone. + */ + get: operations["issues/list-labels-for-milestone"]; + }; + "/repos/{owner}/{repo}/notifications": { + /** + * List repository notifications for the authenticated user + * @description Lists all notifications for the current user in the specified repository. + */ + get: operations["activity/list-repo-notifications-for-authenticated-user"]; + /** + * Mark repository notifications as read + * @description Marks all notifications in a repository as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + put: operations["activity/mark-repo-notifications-as-read"]; + }; + "/repos/{owner}/{repo}/pages": { + /** + * Get a GitHub Pages site + * @description Gets information about a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/get-pages"]; + /** + * Update information about a GitHub Pages site + * @description Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["repos/update-information-about-pages-site"]; + /** + * Create a GitHub Pages site + * @description Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["repos/create-pages-site"]; + /** + * Delete a GitHub Pages site + * @description Deletes a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["repos/delete-pages-site"]; + }; + "/repos/{owner}/{repo}/pages/builds": { + /** + * List GitHub Pages builds + * @description Lists builts of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/list-pages-builds"]; + /** + * Request a GitHub Pages build + * @description You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + */ + post: operations["repos/request-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/builds/latest": { + /** + * Get latest Pages build + * @description Gets information about the single most recent build of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/get-latest-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/builds/{build_id}": { + /** + * Get GitHub Pages build + * @description Gets information about a GitHub Pages build. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/get-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/deployments": { + /** + * Create a GitHub Pages deployment + * @description Create a GitHub Pages deployment for a repository. + * + * The authenticated user must have write permission to the repository. + */ + post: operations["repos/create-pages-deployment"]; + }; + "/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}": { + /** + * Get the status of a GitHub Pages deployment + * @description Gets the current status of a GitHub Pages deployment. + * + * The authenticated user must have read permission for the GitHub Pages site. + */ + get: operations["repos/get-pages-deployment"]; + }; + "/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel": { + /** + * Cancel a GitHub Pages deployment + * @description Cancels a GitHub Pages deployment. + * + * The authenticated user must have write permissions for the GitHub Pages site. + */ + post: operations["repos/cancel-pages-deployment"]; + }; + "/repos/{owner}/{repo}/pages/health": { + /** + * Get a DNS health check for GitHub Pages + * @description Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages. + * + * The first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response. + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["repos/get-pages-health-check"]; + }; + "/repos/{owner}/{repo}/private-vulnerability-reporting": { + /** + * Enable private vulnerability reporting for a repository + * @description Enables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)." + */ + put: operations["repos/enable-private-vulnerability-reporting"]; + /** + * Disable private vulnerability reporting for a repository + * @description Disables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)". + */ + delete: operations["repos/disable-private-vulnerability-reporting"]; + }; + "/repos/{owner}/{repo}/projects": { + /** + * List repository projects + * @description Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + get: operations["projects/list-for-repo"]; + /** + * Create a repository project + * @description Creates a repository project board. Returns a `410 Gone` status if projects are disabled in the repository or if the repository does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + post: operations["projects/create-for-repo"]; + }; + "/repos/{owner}/{repo}/properties/values": { + /** + * Get all custom property values for a repository + * @description Gets all custom property values that are set for a repository. + * Users with read access to the repository can use this endpoint. + */ + get: operations["repos/get-custom-properties-values"]; + /** + * Create or update custom property values for a repository + * @description Create new or update existing custom property values for a repository. + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * Repository admins and other users with the repository-level "edit custom property values" fine-grained permission can use this endpoint. + */ + patch: operations["repos/create-or-update-custom-properties-values"]; + }; + "/repos/{owner}/{repo}/pulls": { + /** + * List pull requests + * @description Lists pull requests in a specified repository. + * + * Draft pull requests are available in public repositories with GitHub + * Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing + * plans, and in public and private repositories with GitHub Team and GitHub Enterprise + * Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + * in the GitHub Help documentation. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + * - **`application/vnd.github.patch`**: For more information, see "[git-format-patch](https://git-scm.com/docs/git-format-patch)" in the Git documentation. + */ + get: operations["pulls/list"]; + /** + * Create a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + post: operations["pulls/create"]; + }; + "/repos/{owner}/{repo}/pulls/comments": { + /** + * List review comments in a repository + * @description Lists review comments for all pull requests in a repository. By default, + * review comments are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-review-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}": { + /** + * Get a review comment for a pull request + * @description Provides details for a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/get-review-comment"]; + /** + * Delete a review comment for a pull request + * @description Deletes a review comment. + */ + delete: operations["pulls/delete-review-comment"]; + /** + * Update a review comment for a pull request + * @description Edits the content of a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + patch: operations["pulls/update-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": { + /** + * List reactions for a pull request review comment + * @description List the reactions to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + get: operations["reactions/list-for-pull-request-review-comment"]; + /** + * Create reaction for a pull request review comment + * @description Create a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment. + */ + post: operations["reactions/create-for-pull-request-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": { + /** + * Delete a pull request comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + * + * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + delete: operations["reactions/delete-for-pull-request-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}": { + /** + * Get a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists details of a pull request by providing its number. + * + * When you get, [create](https://docs.github.com/rest/pulls/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/pulls/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + * + * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + * + * * If merged as a [merge commit](https://docs.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://docs.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://docs.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + get: operations["pulls/get"]; + /** + * Update a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + patch: operations["pulls/update"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/codespaces": { + /** + * Create a codespace from a pull request + * @description Creates a codespace owned by the authenticated user for the specified pull request. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/create-with-pr-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/comments": { + /** + * List review comments on a pull request + * @description Lists all review comments for a specified pull request. By default, review comments + * are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-review-comments"]; + /** + * Create a review comment for a pull request + * @description Creates a review comment on the diff of a specified pull request. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/issues/comments#create-an-issue-comment)." + * + * If your comment applies to more than one line in the pull request diff, you should use the parameters `line`, `side`, and optionally `start_line` and `start_side` in your request. + * + * The `position` parameter is deprecated. If you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["pulls/create-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": { + /** + * Create a reply for a review comment + * @description Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["pulls/create-reply-for-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/commits": { + /** + * List commits on a pull request + * @description Lists a maximum of 250 commits for a pull request. To receive a complete + * commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/commits/commits#list-commits) + * endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + get: operations["pulls/list-commits"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/files": { + /** + * List pull requests files + * @description Lists the files in a specified pull request. + * + * **Note:** Responses include a maximum of 3000 files. The paginated response + * returns 30 files per page by default. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + get: operations["pulls/list-files"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/merge": { + /** + * Check if a pull request has been merged + * @description Checks if a pull request has been merged into the base branch. The HTTP status of the response indicates whether or not the pull request has been merged; the response body is empty. + */ + get: operations["pulls/check-if-merged"]; + /** + * Merge a pull request + * @description Merges a pull request into the base branch. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + put: operations["pulls/merge"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": { + /** + * Get all requested reviewers for a pull request + * @description Gets the users or teams whose review is requested for a pull request. Once a requested reviewer submits a review, they are no longer considered a requested reviewer. Their review will instead be returned by the [List reviews for a pull request](https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request) operation. + */ + get: operations["pulls/list-requested-reviewers"]; + /** + * Request reviewers for a pull request + * @description This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + post: operations["pulls/request-reviewers"]; + /** + * Remove requested reviewers from a pull request + * @description Removes review requests from a pull request for a given set of users and/or teams. + */ + delete: operations["pulls/remove-requested-reviewers"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews": { + /** + * List reviews for a pull request + * @description Lists all reviews for a specified pull request. The list of reviews returns in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-reviews"]; + /** + * Create a review for a pull request + * @description Creates a review on a specified pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Pull request reviews created in the `PENDING` state are not submitted and therefore do not include the `submitted_at` property in the response. To create a pending review for a pull request, leave the `event` parameter blank. For more information about submitting a `PENDING` review, see "[Submit a review for a pull request](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request)." + * + * **Note:** To comment on a specific line in a file, you need to first determine the position of that line in the diff. To see a pull request diff, add the `application/vnd.github.v3.diff` media type to the `Accept` header of a call to the [Get a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) endpoint. + * + * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["pulls/create-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": { + /** + * Get a review for a pull request + * @description Retrieves a pull request review by its ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/get-review"]; + /** + * Update a review for a pull request + * @description Updates the contents of a specified review summary comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + put: operations["pulls/update-review"]; + /** + * Delete a pending review for a pull request + * @description Deletes a pull request review that has not been submitted. Submitted reviews cannot be deleted. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + delete: operations["pulls/delete-pending-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": { + /** + * List comments for a pull request review + * @description Lists comments for a specific pull request review. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["pulls/list-comments-for-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": { + /** + * Dismiss a review for a pull request + * @description Dismisses a specified review on a pull request. + * + * **Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/branches/branch-protection), + * you must be a repository administrator or be included in the list of people or teams + * who can dismiss pull request reviews. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + put: operations["pulls/dismiss-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": { + /** + * Submit a review for a pull request + * @description Submits a pending review for a pull request. For more information about creating a pending review for a pull request, see "[Create a review for a pull request](https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + post: operations["pulls/submit-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/update-branch": { + /** + * Update a pull request branch + * @description Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. + */ + put: operations["pulls/update-branch"]; + }; + "/repos/{owner}/{repo}/readme": { + /** + * Get a repository README + * @description Gets the preferred README for a repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + get: operations["repos/get-readme"]; + }; + "/repos/{owner}/{repo}/readme/{dir}": { + /** + * Get a repository README for a directory + * @description Gets the README from a repository directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + get: operations["repos/get-readme-in-directory"]; + }; + "/repos/{owner}/{repo}/releases": { + /** + * List releases + * @description This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/repos/repos#list-repository-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + */ + get: operations["repos/list-releases"]; + /** + * Create a release + * @description Users with push access to the repository can create a release. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + post: operations["repos/create-release"]; + }; + "/repos/{owner}/{repo}/releases/assets/{asset_id}": { + /** + * Get a release asset + * @description To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. + */ + get: operations["repos/get-release-asset"]; + /** Delete a release asset */ + delete: operations["repos/delete-release-asset"]; + /** + * Update a release asset + * @description Users with push access to the repository can edit a release asset. + */ + patch: operations["repos/update-release-asset"]; + }; + "/repos/{owner}/{repo}/releases/generate-notes": { + /** + * Generate release notes content for a release + * @description Generate a name and body describing a [release](https://docs.github.com/rest/releases/releases#get-a-release). The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release. + */ + post: operations["repos/generate-release-notes"]; + }; + "/repos/{owner}/{repo}/releases/latest": { + /** + * Get the latest release + * @description View the latest published full release for the repository. + * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + */ + get: operations["repos/get-latest-release"]; + }; + "/repos/{owner}/{repo}/releases/tags/{tag}": { + /** + * Get a release by tag name + * @description Get a published release with the specified tag. + */ + get: operations["repos/get-release-by-tag"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}": { + /** + * Get a release + * @description Gets a public release with the specified release ID. + * + * **Note:** This returns an `upload_url` key corresponding to the endpoint + * for uploading release assets. This key is a hypermedia resource. For more information, see + * "[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + */ + get: operations["repos/get-release"]; + /** + * Delete a release + * @description Users with push access to the repository can delete a release. + */ + delete: operations["repos/delete-release"]; + /** + * Update a release + * @description Users with push access to the repository can edit a release. + */ + patch: operations["repos/update-release"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}/assets": { + /** List release assets */ + get: operations["repos/list-release-assets"]; + /** + * Upload a release asset + * @description This endpoint makes use of a [Hypermedia relation](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in + * the response of the [Create a release endpoint](https://docs.github.com/rest/releases/releases#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, + * you'll still need to pass your authentication to be able to upload an asset. + * + * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. + * + * **Notes:** + * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List release assets](https://docs.github.com/rest/releases/assets#list-release-assets)" + * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * * To find the `release_id` query the [`GET /repos/{owner}/{repo}/releases/latest` endpoint](https://docs.github.com/rest/releases/releases#get-the-latest-release). + * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. + */ + post: operations["repos/upload-release-asset"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}/reactions": { + /** + * List reactions for a release + * @description List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + get: operations["reactions/list-for-release"]; + /** + * Create reaction for a release + * @description Create a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). A response with a `Status: 200 OK` means that you already added the reaction type to this release. + */ + post: operations["reactions/create-for-release"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}": { + /** + * Delete a release reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id`. + * + * Delete a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + delete: operations["reactions/delete-for-release"]; + }; + "/repos/{owner}/{repo}/rules/branches/{branch}": { + /** + * Get rules for a branch + * @description Returns all active rules that apply to the specified branch. The branch does not need to exist; rules that would apply + * to a branch with that name will be returned. All active rules that apply will be returned, regardless of the level + * at which they are configured (e.g. repository or organization). Rules in rulesets with "evaluate" or "disabled" + * enforcement statuses are not returned. + */ + get: operations["repos/get-branch-rules"]; + }; + "/repos/{owner}/{repo}/rulesets": { + /** + * Get all repository rulesets + * @description Get all the rulesets for a repository. + */ + get: operations["repos/get-repo-rulesets"]; + /** + * Create a repository ruleset + * @description Create a ruleset for a repository. + */ + post: operations["repos/create-repo-ruleset"]; + }; + "/repos/{owner}/{repo}/rulesets/rule-suites": { + /** + * List repository rule suites + * @description Lists suites of rule evaluations at the repository level. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + get: operations["repos/get-repo-rule-suites"]; + }; + "/repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}": { + /** + * Get a repository rule suite + * @description Gets information about a suite of rule evaluations from within a repository. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + get: operations["repos/get-repo-rule-suite"]; + }; + "/repos/{owner}/{repo}/rulesets/{ruleset_id}": { + /** + * Get a repository ruleset + * @description Get a ruleset for a repository. + */ + get: operations["repos/get-repo-ruleset"]; + /** + * Update a repository ruleset + * @description Update a ruleset for a repository. + */ + put: operations["repos/update-repo-ruleset"]; + /** + * Delete a repository ruleset + * @description Delete a ruleset for a repository. + */ + delete: operations["repos/delete-repo-ruleset"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts": { + /** + * List secret scanning alerts for a repository + * @description Lists secret scanning alerts for an eligible repository, from newest to oldest. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["secret-scanning/list-alerts-for-repo"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": { + /** + * Get a secret scanning alert + * @description Gets a single secret scanning alert detected in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["secret-scanning/get-alert"]; + /** + * Update a secret scanning alert + * @description Updates the status of a secret scanning alert in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + patch: operations["secret-scanning/update-alert"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations": { + /** + * List locations for a secret scanning alert + * @description Lists all locations for a given secret scanning alert for an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + get: operations["secret-scanning/list-locations-for-alert"]; + }; + "/repos/{owner}/{repo}/security-advisories": { + /** + * List repository security advisories + * @description Lists security advisories in a repository. + * + * The authenticated user can access unpublished security advisories from a repository if they are a security manager or administrator of that repository, or if they are a collaborator on any security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + get: operations["security-advisories/list-repository-advisories"]; + /** + * Create a repository security advisory + * @description Creates a new repository security advisory. + * + * In order to create a draft repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + post: operations["security-advisories/create-repository-advisory"]; + }; + "/repos/{owner}/{repo}/security-advisories/reports": { + /** + * Privately report a security vulnerability + * @description Report a security vulnerability to the maintainers of the repository. + * See "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)" for more information about private vulnerability reporting. + */ + post: operations["security-advisories/create-private-vulnerability-report"]; + }; + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}": { + /** + * Get a repository security advisory + * @description Get a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * Anyone can access any published security advisory on a public repository. + * + * The authenticated user can access an unpublished security advisory from a repository if they are a security manager or administrator of that repository, or if they are a + * collaborator on the security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + get: operations["security-advisories/get-repository-advisory"]; + /** + * Update a repository security advisory + * @description Update a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * In order to update any security advisory, the authenticated user must be a security manager or administrator of that repository, + * or a collaborator on the repository security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + patch: operations["security-advisories/update-repository-advisory"]; + }; + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve": { + /** + * Request a CVE for a repository security advisory + * @description If you want a CVE identification number for the security vulnerability in your project, and don't already have one, you can request a CVE identification number from GitHub. For more information see "[Requesting a CVE identification number](https://docs.github.com/code-security/security-advisories/repository-security-advisories/publishing-a-repository-security-advisory#requesting-a-cve-identification-number-optional)." + * + * You may request a CVE for public repositories, but cannot do so for private repositories. + * + * In order to request a CVE for a repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + post: operations["security-advisories/create-repository-advisory-cve-request"]; + }; + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks": { + /** + * Create a temporary private fork + * @description Create a temporary private fork to collaborate on fixing a security vulnerability in your repository. + * + * **Note**: Forking a repository happens asynchronously. You may have to wait up to 5 minutes before you can access the fork. + */ + post: operations["security-advisories/create-fork"]; + }; + "/repos/{owner}/{repo}/stargazers": { + /** + * List stargazers + * @description Lists the people that have starred the repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + get: operations["activity/list-stargazers-for-repo"]; + }; + "/repos/{owner}/{repo}/stats/code_frequency": { + /** + * Get the weekly commit activity + * @description + * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. + * + * **Note:** This endpoint can only be used for repositories with fewer than 10,000 commits. If the repository contains + * 10,000 or more commits, a 422 status code will be returned. + */ + get: operations["repos/get-code-frequency-stats"]; + }; + "/repos/{owner}/{repo}/stats/commit_activity": { + /** + * Get the last year of commit activity + * @description Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. + */ + get: operations["repos/get-commit-activity-stats"]; + }; + "/repos/{owner}/{repo}/stats/contributors": { + /** + * Get all contributor commit activity + * @description + * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: + * + * * `w` - Start of the week, given as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + * + * **Note:** This endpoint will return `0` values for all addition and deletion counts in repositories with 10,000 or more commits. + */ + get: operations["repos/get-contributors-stats"]; + }; + "/repos/{owner}/{repo}/stats/participation": { + /** + * Get the weekly commit count + * @description Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + * + * The array order is oldest week (index 0) to most recent week. + * + * The most recent week is seven days ago at UTC midnight to today at UTC midnight. + */ + get: operations["repos/get-participation-stats"]; + }; + "/repos/{owner}/{repo}/stats/punch_card": { + /** + * Get the hourly commit count for each day + * @description Each array contains the day number, hour number, and number of commits: + * + * * `0-6`: Sunday - Saturday + * * `0-23`: Hour of day + * * Number of commits + * + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + get: operations["repos/get-punch-card-stats"]; + }; + "/repos/{owner}/{repo}/statuses/{sha}": { + /** + * Create a commit status + * @description Users with push access in a repository can create commit statuses for a given SHA. + * + * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + */ + post: operations["repos/create-commit-status"]; + }; + "/repos/{owner}/{repo}/subscribers": { + /** + * List watchers + * @description Lists the people watching the specified repository. + */ + get: operations["activity/list-watchers-for-repo"]; + }; + "/repos/{owner}/{repo}/subscription": { + /** + * Get a repository subscription + * @description Gets information about whether the authenticated user is subscribed to the repository. + */ + get: operations["activity/get-repo-subscription"]; + /** + * Set a repository subscription + * @description If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/activity/watching#delete-a-repository-subscription) completely. + */ + put: operations["activity/set-repo-subscription"]; + /** + * Delete a repository subscription + * @description This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/activity/watching#set-a-repository-subscription). + */ + delete: operations["activity/delete-repo-subscription"]; + }; + "/repos/{owner}/{repo}/tags": { + /** List repository tags */ + get: operations["repos/list-tags"]; + }; + "/repos/{owner}/{repo}/tags/protection": { + /** + * List tag protection states for a repository + * @description This returns the tag protection states of a repository. + * + * This information is only available to repository administrators. + */ + get: operations["repos/list-tag-protection"]; + /** + * Create a tag protection state for a repository + * @description This creates a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + post: operations["repos/create-tag-protection"]; + }; + "/repos/{owner}/{repo}/tags/protection/{tag_protection_id}": { + /** + * Delete a tag protection state for a repository + * @description This deletes a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + delete: operations["repos/delete-tag-protection"]; + }; + "/repos/{owner}/{repo}/tarball/{ref}": { + /** + * Download a repository archive (tar) + * @description Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + get: operations["repos/download-tarball-archive"]; + }; + "/repos/{owner}/{repo}/teams": { + /** + * List repository teams + * @description Lists the teams that have access to the specified repository and that are also visible to the authenticated user. + * + * For a public repository, a team is listed only if that team added the public repository explicitly. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to use this endpoint with a public repository, and `repo` scope to use this endpoint with a private repository. + */ + get: operations["repos/list-teams"]; + }; + "/repos/{owner}/{repo}/topics": { + /** Get all repository topics */ + get: operations["repos/get-all-topics"]; + /** Replace all repository topics */ + put: operations["repos/replace-all-topics"]; + }; + "/repos/{owner}/{repo}/traffic/clones": { + /** + * Get repository clones + * @description Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + get: operations["repos/get-clones"]; + }; + "/repos/{owner}/{repo}/traffic/popular/paths": { + /** + * Get top referral paths + * @description Get the top 10 popular contents over the last 14 days. + */ + get: operations["repos/get-top-paths"]; + }; + "/repos/{owner}/{repo}/traffic/popular/referrers": { + /** + * Get top referral sources + * @description Get the top 10 referrers over the last 14 days. + */ + get: operations["repos/get-top-referrers"]; + }; + "/repos/{owner}/{repo}/traffic/views": { + /** + * Get page views + * @description Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + get: operations["repos/get-views"]; + }; + "/repos/{owner}/{repo}/transfer": { + /** + * Transfer a repository + * @description A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://docs.github.com/articles/about-repository-transfers/). + */ + post: operations["repos/transfer"]; + }; + "/repos/{owner}/{repo}/vulnerability-alerts": { + /** + * Check if vulnerability alerts are enabled for a repository + * @description Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin read access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + get: operations["repos/check-vulnerability-alerts"]; + /** + * Enable vulnerability alerts + * @description Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + put: operations["repos/enable-vulnerability-alerts"]; + /** + * Disable vulnerability alerts + * @description Disables dependency alerts and the dependency graph for a repository. + * The authenticated user must have admin access to the repository. For more information, + * see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + delete: operations["repos/disable-vulnerability-alerts"]; + }; + "/repos/{owner}/{repo}/zipball/{ref}": { + /** + * Download a repository archive (zip) + * @description Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * + * **Note**: For private repositories, these links are temporary and expire after five minutes. If the repository is empty, you will receive a 404 when you follow the redirect. + */ + get: operations["repos/download-zipball-archive"]; + }; + "/repos/{template_owner}/{template_repo}/generate": { + /** + * Create a repository using a template + * @description Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. If the repository is not public, the authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + post: operations["repos/create-using-template"]; + }; + "/repositories": { + /** + * List public repositories + * @description Lists all public repositories in the order that they were created. + * + * Note: + * - For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise. + * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of repositories. + */ + get: operations["repos/list-public"]; + }; + "/repositories/{repository_id}/environments/{environment_name}/secrets": { + /** + * List environment secrets + * @description Lists all secrets available in an environment without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-environment-secrets"]; + }; + "/repositories/{repository_id}/environments/{environment_name}/secrets/public-key": { + /** + * Get an environment public key + * @description Get the public key for an environment, which you need to encrypt environment + * secrets. You need to encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-environment-public-key"]; + }; + "/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}": { + /** + * Get an environment secret + * @description Gets a single environment secret without revealing its encrypted value. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-environment-secret"]; + /** + * Create or update an environment secret + * @description Creates or updates an environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + put: operations["actions/create-or-update-environment-secret"]; + /** + * Delete an environment secret + * @description Deletes a secret in an environment using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-environment-secret"]; + }; + "/repositories/{repository_id}/environments/{environment_name}/variables": { + /** + * List environment variables + * @description Lists all environment variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/list-environment-variables"]; + /** + * Create an environment variable + * @description Create an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + post: operations["actions/create-environment-variable"]; + }; + "/repositories/{repository_id}/environments/{environment_name}/variables/{name}": { + /** + * Get an environment variable + * @description Gets a specific variable in an environment. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["actions/get-environment-variable"]; + /** + * Delete an environment variable + * @description Deletes an environment variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + delete: operations["actions/delete-environment-variable"]; + /** + * Update an environment variable + * @description Updates an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + patch: operations["actions/update-environment-variable"]; + }; + "/search/code": { + /** + * Search code + * @description Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: + * + * `q=addClass+in:file+language:js+repo:jquery/jquery` + * + * This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. + * + * Considerations for code search: + * + * Due to the complexity of searching code, there are a few restrictions on how searches are performed: + * + * * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * * Only files smaller than 384 KB are searchable. + * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing + * language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + * + * This endpoint requires you to authenticate and limits you to 10 requests per minute. + */ + get: operations["search/code"]; + }; + "/search/commits": { + /** + * Search commits + * @description Find commits via various criteria on the default branch (usually `main`). This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match + * metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + * + * `q=repo:octocat/Spoon-Knife+css` + */ + get: operations["search/commits"]; + }; + "/search/issues": { + /** + * Search issues and pull requests + * @description Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted + * search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * `q=windows+label:bug+language:python+state:open&sort=created&order=asc` + * + * This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. + * + * **Note:** For requests made by GitHub Apps with a user access token, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + */ + get: operations["search/issues-and-pull-requests"]; + }; + "/search/labels": { + /** + * Search labels + * @description Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + * + * `q=bug+defect+enhancement&repository_id=64778136` + * + * The labels that best match the query appear first in the search results. + */ + get: operations["search/labels"]; + }; + "/search/repositories": { + /** + * Search repositories + * @description Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: + * + * `q=tetris+language:assembly&sort=stars&order=desc` + * + * This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. + */ + get: operations["search/repos"]; + }; + "/search/topics": { + /** + * Search topics + * @description Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). See "[Searching topics](https://docs.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: + * + * `q=ruby+is:featured` + * + * This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + */ + get: operations["search/topics"]; + }; + "/search/users": { + /** + * Search users + * @description Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for users, you can get text match metadata for the issue **login**, public **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you're looking for a list of popular users, you might try this query: + * + * `q=tom+repos:%3E42+followers:%3E1000` + * + * This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. + * + * This endpoint does not accept authentication and will only include publicly visible users. As an alternative, you can use the GraphQL API. The GraphQL API requires authentication and will return private users, including Enterprise Managed Users (EMUs), that you are authorized to view. For more information, see "[GraphQL Queries](https://docs.github.com/graphql/reference/queries#search)." + */ + get: operations["search/users"]; + }; + "/teams/{team_id}": { + /** + * Get a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/teams/teams#get-a-team-by-name) endpoint. + */ + get: operations["teams/get-legacy"]; + /** + * Delete a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/teams/teams#delete-a-team) endpoint. + * + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + */ + delete: operations["teams/delete-legacy"]; + /** + * Update a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/teams/teams#update-a-team) endpoint. + * + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** With nested teams, the `privacy` for parent teams cannot be `secret`. + */ + patch: operations["teams/update-legacy"]; + }; + "/teams/{team_id}/discussions": { + /** + * List discussions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List discussions`](https://docs.github.com/rest/teams/discussions#list-discussions) endpoint. + * + * List all discussions on a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/list-discussions-legacy"]; + /** + * Create a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create a discussion`](https://docs.github.com/rest/teams/discussions#create-a-discussion) endpoint. + * + * Creates a new discussion post on a team's page. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["teams/create-discussion-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}": { + /** + * Get a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion) endpoint. + * + * Get a specific discussion on a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/get-discussion-legacy"]; + /** + * Delete a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Delete a discussion`](https://docs.github.com/rest/teams/discussions#delete-a-discussion) endpoint. + * + * Delete a discussion from a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["teams/delete-discussion-legacy"]; + /** + * Update a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion](https://docs.github.com/rest/teams/discussions#update-a-discussion) endpoint. + * + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + patch: operations["teams/update-discussion-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments": { + /** + * List discussion comments (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List discussion comments](https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments) endpoint. + * + * List all comments on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/list-discussion-comments-legacy"]; + /** + * Create a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Create a discussion comment](https://docs.github.com/rest/teams/discussion-comments#create-a-discussion-comment) endpoint. + * + * Creates a new comment on a team discussion. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["teams/create-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": { + /** + * Get a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment) endpoint. + * + * Get a specific comment on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["teams/get-discussion-comment-legacy"]; + /** + * Delete a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a discussion comment](https://docs.github.com/rest/teams/discussion-comments#delete-a-discussion-comment) endpoint. + * + * Deletes a comment on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + delete: operations["teams/delete-discussion-comment-legacy"]; + /** + * Update a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion comment](https://docs.github.com/rest/teams/discussion-comments#update-a-discussion-comment) endpoint. + * + * Edits the body text of a discussion comment. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + patch: operations["teams/update-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + /** + * List reactions for a team discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment) endpoint. + * + * List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["reactions/list-for-team-discussion-comment-legacy"]; + /** + * Create reaction for a team discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Create reaction for a team discussion comment](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment)" endpoint. + * + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["reactions/create-for-team-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/reactions": { + /** + * List reactions for a team discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion) endpoint. + * + * List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + get: operations["reactions/list-for-team-discussion-legacy"]; + /** + * Create reaction for a team discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion`](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion) endpoint. + * + * Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + post: operations["reactions/create-for-team-discussion-legacy"]; + }; + "/teams/{team_id}/invitations": { + /** + * List pending team invitations (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/teams/members#list-pending-team-invitations) endpoint. + * + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + get: operations["teams/list-pending-invitations-legacy"]; + }; + "/teams/{team_id}/members": { + /** + * List team members (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/teams/members#list-team-members) endpoint. + * + * Team members will include the members of child teams. + */ + get: operations["teams/list-members-legacy"]; + }; + "/teams/{team_id}/members/{username}": { + /** + * Get team member (Legacy) + * @deprecated + * @description The "Get team member" endpoint (described below) is deprecated. + * + * We recommend using the [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + get: operations["teams/get-member-legacy"]; + /** + * Add team member (Legacy) + * @deprecated + * @description The "Add team member" endpoint (described below) is deprecated. + * + * We recommend using the [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["teams/add-member-legacy"]; + /** + * Remove team member (Legacy) + * @deprecated + * @description The "Remove team member" endpoint (described below) is deprecated. + * + * We recommend using the [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + delete: operations["teams/remove-member-legacy"]; + }; + "/teams/{team_id}/memberships/{username}": { + /** + * Get team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint. + * + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + */ + get: operations["teams/get-membership-for-user-legacy"]; + /** + * Add or update team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + */ + put: operations["teams/add-or-update-membership-for-user-legacy"]; + /** + * Remove team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + delete: operations["teams/remove-membership-for-user-legacy"]; + }; + "/teams/{team_id}/projects": { + /** + * List team projects (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team projects`](https://docs.github.com/rest/teams/teams#list-team-projects) endpoint. + * + * Lists the organization projects for a team. + */ + get: operations["teams/list-projects-legacy"]; + }; + "/teams/{team_id}/projects/{project_id}": { + /** + * Check team permissions for a project (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a project](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-project) endpoint. + * + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + */ + get: operations["teams/check-permissions-for-project-legacy"]; + /** + * Add or update team project permissions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team project permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-project-permissions) endpoint. + * + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + */ + put: operations["teams/add-or-update-project-permissions-legacy"]; + /** + * Remove a project from a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a project from a team](https://docs.github.com/rest/teams/teams#remove-a-project-from-a-team) endpoint. + * + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. **Note:** This endpoint removes the project from the team, but does not delete it. + */ + delete: operations["teams/remove-project-legacy"]; + }; + "/teams/{team_id}/repos": { + /** + * List team repositories (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/teams/teams#list-team-repositories) endpoint. + */ + get: operations["teams/list-repos-legacy"]; + }; + "/teams/{team_id}/repos/{owner}/{repo}": { + /** + * Check team permissions for a repository (Legacy) + * @deprecated + * @description **Note**: Repositories inherited through a parent team will also be checked. + * + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository) endpoint. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + get: operations["teams/check-permissions-for-repo-legacy"]; + /** + * Add or update team repository permissions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Add or update team repository permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions)" endpoint. + * + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["teams/add-or-update-repo-permissions-legacy"]; + /** + * Remove a repository from a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team) endpoint. + * + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team. + */ + delete: operations["teams/remove-repo-legacy"]; + }; + "/teams/{team_id}/teams": { + /** + * List child teams (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/teams/teams#list-child-teams) endpoint. + */ + get: operations["teams/list-child-legacy"]; + }; + "/user": { + /** + * Get the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information. + */ + get: operations["users/get-authenticated"]; + /** + * Update the authenticated user + * @description **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API. + */ + patch: operations["users/update-authenticated"]; + }; + "/user/blocks": { + /** + * List users blocked by the authenticated user + * @description List the users you've blocked on your personal account. + */ + get: operations["users/list-blocked-by-authenticated-user"]; + }; + "/user/blocks/{username}": { + /** + * Check if a user is blocked by the authenticated user + * @description Returns a 204 if the given user is blocked by the authenticated user. Returns a 404 if the given user is not blocked by the authenticated user, or if the given user account has been identified as spam by GitHub. + */ + get: operations["users/check-blocked"]; + /** + * Block a user + * @description Blocks the given user and returns a 204. If the authenticated user cannot block the given user a 422 is returned. + */ + put: operations["users/block"]; + /** + * Unblock a user + * @description Unblocks the given user and returns a 204. + */ + delete: operations["users/unblock"]; + }; + "/user/codespaces": { + /** + * List codespaces for the authenticated user + * @description Lists the authenticated user's codespaces. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/list-for-authenticated-user"]; + /** + * Create a codespace for the authenticated user + * @description Creates a new codespace, owned by the authenticated user. + * + * This endpoint requires either a `repository_id` OR a `pull_request` but not both. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/create-for-authenticated-user"]; + }; + "/user/codespaces/secrets": { + /** + * List secrets for the authenticated user + * @description Lists all development environment secrets available for a user's codespaces without revealing their + * encrypted values. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + get: operations["codespaces/list-secrets-for-authenticated-user"]; + }; + "/user/codespaces/secrets/public-key": { + /** + * Get public key for the authenticated user + * @description Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + get: operations["codespaces/get-public-key-for-authenticated-user"]; + }; + "/user/codespaces/secrets/{secret_name}": { + /** + * Get a secret for the authenticated user + * @description Gets a development environment secret available to a user's codespaces without revealing its encrypted value. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + get: operations["codespaces/get-secret-for-authenticated-user"]; + /** + * Create or update a secret for the authenticated user + * @description Creates or updates a development environment secret for a user's codespace with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + put: operations["codespaces/create-or-update-secret-for-authenticated-user"]; + /** + * Delete a secret for the authenticated user + * @description Deletes a development environment secret from a user's codespaces using the secret name. Deleting the secret will remove access from all codespaces that were allowed to access the secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + delete: operations["codespaces/delete-secret-for-authenticated-user"]; + }; + "/user/codespaces/secrets/{secret_name}/repositories": { + /** + * List selected repositories for a user secret + * @description List the repositories that have been granted the ability to use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + get: operations["codespaces/list-repositories-for-secret-for-authenticated-user"]; + /** + * Set selected repositories for a user secret + * @description Select the repositories that will use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + put: operations["codespaces/set-repositories-for-secret-for-authenticated-user"]; + }; + "/user/codespaces/secrets/{secret_name}/repositories/{repository_id}": { + /** + * Add a selected repository to a user secret + * @description Adds a repository to the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + put: operations["codespaces/add-repository-for-secret-for-authenticated-user"]; + /** + * Remove a selected repository from a user secret + * @description Removes a repository from the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + delete: operations["codespaces/remove-repository-for-secret-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}": { + /** + * Get a codespace for the authenticated user + * @description Gets information about a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/get-for-authenticated-user"]; + /** + * Delete a codespace for the authenticated user + * @description Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + delete: operations["codespaces/delete-for-authenticated-user"]; + /** + * Update a codespace for the authenticated user + * @description Updates a codespace owned by the authenticated user. Currently only the codespace's machine type and recent folders can be modified using this endpoint. + * + * If you specify a new machine type it will be applied the next time your codespace is started. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + patch: operations["codespaces/update-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/exports": { + /** + * Export a codespace for the authenticated user + * @description Triggers an export of the specified codespace and returns a URL and ID where the status of the export can be monitored. + * + * If changes cannot be pushed to the codespace's repository, they will be pushed to a new or previously-existing fork instead. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/export-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/exports/{export_id}": { + /** + * Get details about a codespace export + * @description Gets information about an export of a codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/get-export-details-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/machines": { + /** + * List machine types for a codespace + * @description List the machine types a codespace can transition to use. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + get: operations["codespaces/codespace-machines-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/publish": { + /** + * Create a repository from an unpublished codespace + * @description Publishes an unpublished codespace, creating a new repository and assigning it to the codespace. + * + * The codespace's token is granted write permissions to the repository, allowing the user to push their changes. + * + * This will fail for a codespace that is already published, meaning it has an associated repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/publish-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/start": { + /** + * Start a codespace for the authenticated user + * @description Starts a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/start-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/stop": { + /** + * Stop a codespace for the authenticated user + * @description Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + post: operations["codespaces/stop-for-authenticated-user"]; + }; + "/user/docker/conflicts": { + /** + * Get list of conflicting packages during Docker migration for authenticated-user + * @description Lists all packages that are owned by the authenticated user within the user's namespace, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + get: operations["packages/list-docker-migration-conflicting-packages-for-authenticated-user"]; + }; + "/user/email/visibility": { + /** + * Set primary email visibility for the authenticated user + * @description Sets the visibility for your primary email addresses. + */ + patch: operations["users/set-primary-email-visibility-for-authenticated-user"]; + }; + "/user/emails": { + /** + * List email addresses for the authenticated user + * @description Lists all of your email addresses, and specifies which one is visible + * to the public. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + get: operations["users/list-emails-for-authenticated-user"]; + /** + * Add an email address for the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + post: operations["users/add-email-for-authenticated-user"]; + /** + * Delete an email address for the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + delete: operations["users/delete-email-for-authenticated-user"]; + }; + "/user/followers": { + /** + * List followers of the authenticated user + * @description Lists the people following the authenticated user. + */ + get: operations["users/list-followers-for-authenticated-user"]; + }; + "/user/following": { + /** + * List the people the authenticated user follows + * @description Lists the people who the authenticated user follows. + */ + get: operations["users/list-followed-by-authenticated-user"]; + }; + "/user/following/{username}": { + /** Check if a person is followed by the authenticated user */ + get: operations["users/check-person-is-followed-by-authenticated"]; + /** + * Follow a user + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + put: operations["users/follow"]; + /** + * Unfollow a user + * @description OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + delete: operations["users/unfollow"]; + }; + "/user/gpg_keys": { + /** + * List GPG keys for the authenticated user + * @description Lists the current user's GPG keys. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + get: operations["users/list-gpg-keys-for-authenticated-user"]; + /** + * Create a GPG key for the authenticated user + * @description Adds a GPG key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + post: operations["users/create-gpg-key-for-authenticated-user"]; + }; + "/user/gpg_keys/{gpg_key_id}": { + /** + * Get a GPG key for the authenticated user + * @description View extended details for a single GPG key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + get: operations["users/get-gpg-key-for-authenticated-user"]; + /** + * Delete a GPG key for the authenticated user + * @description Removes a GPG key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:gpg_key` scope to use this endpoint. + */ + delete: operations["users/delete-gpg-key-for-authenticated-user"]; + }; + "/user/installations": { + /** + * List app installations accessible to the user access token + * @description Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You can find the permissions for the installation under the `permissions` key. + */ + get: operations["apps/list-installations-for-authenticated-user"]; + }; + "/user/installations/{installation_id}/repositories": { + /** + * List repositories accessible to the user access token + * @description List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + get: operations["apps/list-installation-repos-for-authenticated-user"]; + }; + "/user/installations/{installation_id}/repositories/{repository_id}": { + /** + * Add a repository to an app installation + * @description Add a single repository to an installation. The authenticated user must have admin access to the repository. + */ + put: operations["apps/add-repo-to-installation-for-authenticated-user"]; + /** + * Remove a repository from an app installation + * @description Remove a single repository from an installation. The authenticated user must have admin access to the repository. The installation must have the `repository_selection` of `selected`. + */ + delete: operations["apps/remove-repo-from-installation-for-authenticated-user"]; + }; + "/user/interaction-limits": { + /** + * Get interaction restrictions for your public repositories + * @description Shows which type of GitHub user can interact with your public repositories and when the restriction expires. + */ + get: operations["interactions/get-restrictions-for-authenticated-user"]; + /** + * Set interaction restrictions for your public repositories + * @description Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. + */ + put: operations["interactions/set-restrictions-for-authenticated-user"]; + /** + * Remove interaction restrictions from your public repositories + * @description Removes any interaction restrictions from your public repositories. + */ + delete: operations["interactions/remove-restrictions-for-authenticated-user"]; + }; + "/user/issues": { + /** + * List user account issues assigned to the authenticated user + * @description List issues across owned and member repositories assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + get: operations["issues/list-for-authenticated-user"]; + }; + "/user/keys": { + /** + * List public SSH keys for the authenticated user + * @description Lists the public SSH keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + get: operations["users/list-public-ssh-keys-for-authenticated-user"]; + /** + * Create a public SSH key for the authenticated user + * @description Adds a public SSH key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + post: operations["users/create-public-ssh-key-for-authenticated-user"]; + }; + "/user/keys/{key_id}": { + /** + * Get a public SSH key for the authenticated user + * @description View extended details for a single public SSH key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + get: operations["users/get-public-ssh-key-for-authenticated-user"]; + /** + * Delete a public SSH key for the authenticated user + * @description Removes a public SSH key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:public_key` scope to use this endpoint. + */ + delete: operations["users/delete-public-ssh-key-for-authenticated-user"]; + }; + "/user/marketplace_purchases": { + /** + * List subscriptions for the authenticated user + * @description Lists the active subscriptions for the authenticated user. + */ + get: operations["apps/list-subscriptions-for-authenticated-user"]; + }; + "/user/marketplace_purchases/stubbed": { + /** + * List subscriptions for the authenticated user (stubbed) + * @description Lists the active subscriptions for the authenticated user. + */ + get: operations["apps/list-subscriptions-for-authenticated-user-stubbed"]; + }; + "/user/memberships/orgs": { + /** + * List organization memberships for the authenticated user + * @description Lists all of the authenticated user's organization memberships. + */ + get: operations["orgs/list-memberships-for-authenticated-user"]; + }; + "/user/memberships/orgs/{org}": { + /** + * Get an organization membership for the authenticated user + * @description If the authenticated user is an active or pending member of the organization, this endpoint will return the user's membership. If the authenticated user is not affiliated with the organization, a `404` is returned. This endpoint will return a `403` if the request is made by a GitHub App that is blocked by the organization. + */ + get: operations["orgs/get-membership-for-authenticated-user"]; + /** + * Update an organization membership for the authenticated user + * @description Converts the authenticated user to an active member of the organization, if that user has a pending invitation from the organization. + */ + patch: operations["orgs/update-membership-for-authenticated-user"]; + }; + "/user/migrations": { + /** + * List user migrations + * @description Lists all migrations a user has started. + */ + get: operations["migrations/list-for-authenticated-user"]; + /** + * Start a user migration + * @description Initiates the generation of a user migration archive. + */ + post: operations["migrations/start-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}": { + /** + * Get a user migration status + * @description Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + * + * * `pending` - the migration hasn't started yet. + * * `exporting` - the migration is in progress. + * * `exported` - the migration finished successfully. + * * `failed` - the migration failed. + * + * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/migrations/users#download-a-user-migration-archive). + */ + get: operations["migrations/get-status-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/archive": { + /** + * Download a user migration archive + * @description Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + * + * * attachments + * * bases + * * commit\_comments + * * issue\_comments + * * issue\_events + * * issues + * * milestones + * * organizations + * * projects + * * protected\_branches + * * pull\_request\_reviews + * * pull\_requests + * * releases + * * repositories + * * review\_comments + * * schema + * * users + * + * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + */ + get: operations["migrations/get-archive-for-authenticated-user"]; + /** + * Delete a user migration archive + * @description Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/migrations/users#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/migrations/users#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. + */ + delete: operations["migrations/delete-archive-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/repos/{repo_name}/lock": { + /** + * Unlock a user repository + * @description Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/migrations/users#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/repos/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. + */ + delete: operations["migrations/unlock-repo-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/repositories": { + /** + * List repositories for a user migration + * @description Lists all the repositories for this user migration. + */ + get: operations["migrations/list-repos-for-authenticated-user"]; + }; + "/user/orgs": { + /** + * List organizations for the authenticated user + * @description List organizations for the authenticated user. + * + * For OAuth app tokens and personal access tokens (classic), this endpoint only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope for OAuth app tokens and personal access tokens (classic). Requests with insufficient scope will receive a `403 Forbidden` response. + */ + get: operations["orgs/list-for-authenticated-user"]; + }; + "/user/packages": { + /** + * List packages for the authenticated user's namespace + * @description Lists packages owned by the authenticated user within the user's namespace. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/list-packages-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}": { + /** + * Get a package for the authenticated user + * @description Gets a specific package for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-for-authenticated-user"]; + /** + * Delete a package for the authenticated user + * @description Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, `repo` scope is also required. For the list these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/restore": { + /** + * Restore a package for the authenticated user + * @description Restores a package owned by the authenticated user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/versions": { + /** + * List package versions for a package owned by the authenticated user + * @description Lists package versions for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-all-package-versions-for-package-owned-by-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}": { + /** + * Get a package version for the authenticated user + * @description Gets a specific package version for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-version-for-authenticated-user"]; + /** + * Delete a package version for the authenticated user + * @description Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-version-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + /** + * Restore a package version for the authenticated user + * @description Restores a package version owned by the authenticated user. + * + * You can restore a deleted package version under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-version-for-authenticated-user"]; + }; + "/user/projects": { + /** + * Create a user project + * @description Creates a user project board. Returns a `410 Gone` status if the user does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + post: operations["projects/create-for-authenticated-user"]; + }; + "/user/public_emails": { + /** + * List public email addresses for the authenticated user + * @description Lists your publicly visible email address, which you can set with the + * [Set primary email visibility for the authenticated user](https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user) + * endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + get: operations["users/list-public-emails-for-authenticated-user"]; + }; + "/user/repos": { + /** + * List repositories for the authenticated user + * @description Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + */ + get: operations["repos/list-for-authenticated-user"]; + /** + * Create a repository for the authenticated user + * @description Creates a new repository for the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + post: operations["repos/create-for-authenticated-user"]; + }; + "/user/repository_invitations": { + /** + * List repository invitations for the authenticated user + * @description When authenticating as a user, this endpoint will list all currently open repository invitations for that user. + */ + get: operations["repos/list-invitations-for-authenticated-user"]; + }; + "/user/repository_invitations/{invitation_id}": { + /** Decline a repository invitation */ + delete: operations["repos/decline-invitation-for-authenticated-user"]; + /** Accept a repository invitation */ + patch: operations["repos/accept-invitation-for-authenticated-user"]; + }; + "/user/social_accounts": { + /** + * List social accounts for the authenticated user + * @description Lists all of your social accounts. + */ + get: operations["users/list-social-accounts-for-authenticated-user"]; + /** + * Add social accounts for the authenticated user + * @description Add one or more social accounts to the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + post: operations["users/add-social-account-for-authenticated-user"]; + /** + * Delete social accounts for the authenticated user + * @description Deletes one or more social accounts from the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + delete: operations["users/delete-social-account-for-authenticated-user"]; + }; + "/user/ssh_signing_keys": { + /** + * List SSH signing keys for the authenticated user + * @description Lists the SSH signing keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + get: operations["users/list-ssh-signing-keys-for-authenticated-user"]; + /** + * Create a SSH signing key for the authenticated user + * @description Creates an SSH signing key for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:ssh_signing_key` scope to use this endpoint. + */ + post: operations["users/create-ssh-signing-key-for-authenticated-user"]; + }; + "/user/ssh_signing_keys/{ssh_signing_key_id}": { + /** + * Get an SSH signing key for the authenticated user + * @description Gets extended details for an SSH signing key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + get: operations["users/get-ssh-signing-key-for-authenticated-user"]; + /** + * Delete an SSH signing key for the authenticated user + * @description Deletes an SSH signing key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:ssh_signing_key` scope to use this endpoint. + */ + delete: operations["users/delete-ssh-signing-key-for-authenticated-user"]; + }; + "/user/starred": { + /** + * List repositories starred by the authenticated user + * @description Lists repositories the authenticated user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + get: operations["activity/list-repos-starred-by-authenticated-user"]; + }; + "/user/starred/{owner}/{repo}": { + /** + * Check if a repository is starred by the authenticated user + * @description Whether the authenticated user has starred the repository. + */ + get: operations["activity/check-repo-is-starred-by-authenticated-user"]; + /** + * Star a repository for the authenticated user + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + put: operations["activity/star-repo-for-authenticated-user"]; + /** + * Unstar a repository for the authenticated user + * @description Unstar a repository that the authenticated user has previously starred. + */ + delete: operations["activity/unstar-repo-for-authenticated-user"]; + }; + "/user/subscriptions": { + /** + * List repositories watched by the authenticated user + * @description Lists repositories the authenticated user is watching. + */ + get: operations["activity/list-watched-repos-for-authenticated-user"]; + }; + "/user/teams": { + /** + * List teams for the authenticated user + * @description List all of the teams across all of the organizations to which the authenticated + * user belongs. + * + * OAuth app tokens and personal access tokens (classic) need the `user`, `repo`, or `read:org` scope to use this endpoint. + * + * When using a fine-grained personal access token, the resource owner of the token must be a single organization, and the response will only include the teams from that organization. + */ + get: operations["teams/list-for-authenticated-user"]; + }; + "/users": { + /** + * List users + * @description Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of users. + */ + get: operations["users/list"]; + }; + "/users/{username}": { + /** + * Get a user + * @description Provides publicly available information about someone with a GitHub account. + * + * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#authentication). + * + * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://docs.github.com/rest/users/emails)". + */ + get: operations["users/get-by-username"]; + }; + "/users/{username}/docker/conflicts": { + /** + * Get list of conflicting packages during Docker migration for user + * @description Lists all packages that are in a specific user's namespace, that the requesting user has access to, and that encountered a conflict during Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + get: operations["packages/list-docker-migration-conflicting-packages-for-user"]; + }; + "/users/{username}/events": { + /** + * List events for the authenticated user + * @description If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. + */ + get: operations["activity/list-events-for-authenticated-user"]; + }; + "/users/{username}/events/orgs/{org}": { + /** + * List organization events for the authenticated user + * @description This is the user's organization dashboard. You must be authenticated as the user to view this. + */ + get: operations["activity/list-org-events-for-authenticated-user"]; + }; + "/users/{username}/events/public": { + /** List public events for a user */ + get: operations["activity/list-public-events-for-user"]; + }; + "/users/{username}/followers": { + /** + * List followers of a user + * @description Lists the people following the specified user. + */ + get: operations["users/list-followers-for-user"]; + }; + "/users/{username}/following": { + /** + * List the people a user follows + * @description Lists the people who the specified user follows. + */ + get: operations["users/list-following-for-user"]; + }; + "/users/{username}/following/{target_user}": { + /** Check if a user follows another user */ + get: operations["users/check-following-for-user"]; + }; + "/users/{username}/gists": { + /** + * List gists for a user + * @description Lists public gists for the specified user: + */ + get: operations["gists/list-for-user"]; + }; + "/users/{username}/gpg_keys": { + /** + * List GPG keys for a user + * @description Lists the GPG keys for a user. This information is accessible by anyone. + */ + get: operations["users/list-gpg-keys-for-user"]; + }; + "/users/{username}/hovercard": { + /** + * Get contextual information for a user + * @description Provides hovercard information. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + * + * The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository via cURL, it would look like this: + * + * ```shell + * curl -u username:token + * https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192 + * ``` + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + get: operations["users/get-context-for-user"]; + }; + "/users/{username}/installation": { + /** + * Get a user installation for the authenticated app + * @description Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-user-installation"]; + }; + "/users/{username}/keys": { + /** + * List public keys for a user + * @description Lists the _verified_ public SSH keys for a user. This is accessible by anyone. + */ + get: operations["users/list-public-keys-for-user"]; + }; + "/users/{username}/orgs": { + /** + * List organizations for a user + * @description List [public organization memberships](https://docs.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user) API instead. + */ + get: operations["orgs/list-for-user"]; + }; + "/users/{username}/packages": { + /** + * List packages for a user + * @description Lists all packages in a user's namespace for which the requesting user has access. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/list-packages-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}": { + /** + * Get a package for a user + * @description Gets a specific package metadata for a public package owned by a user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-for-user"]; + /** + * Delete a package for a user + * @description Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/restore": { + /** + * Restore a package for a user + * @description Restores an entire package for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/versions": { + /** + * List package versions for a package owned by a user + * @description Lists package versions for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-all-package-versions-for-package-owned-by-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": { + /** + * Get a package version for a user + * @description Gets a specific package version for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + get: operations["packages/get-package-version-for-user"]; + /** + * Delete package version for a user + * @description Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + delete: operations["packages/delete-package-version-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + /** + * Restore package version for a user + * @description Restores a specific package version for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + post: operations["packages/restore-package-version-for-user"]; + }; + "/users/{username}/projects": { + /** + * List user projects + * @description Lists projects for a user. + */ + get: operations["projects/list-for-user"]; + }; + "/users/{username}/received_events": { + /** + * List events received by the authenticated user + * @description These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. + */ + get: operations["activity/list-received-events-for-user"]; + }; + "/users/{username}/received_events/public": { + /** List public events received by a user */ + get: operations["activity/list-received-public-events-for-user"]; + }; + "/users/{username}/repos": { + /** + * List repositories for a user + * @description Lists public repositories for the specified user. + */ + get: operations["repos/list-for-user"]; + }; + "/users/{username}/settings/billing/actions": { + /** + * Get GitHub Actions billing for a user + * @description Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + get: operations["billing/get-github-actions-billing-user"]; + }; + "/users/{username}/settings/billing/packages": { + /** + * Get GitHub Packages billing for a user + * @description Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + get: operations["billing/get-github-packages-billing-user"]; + }; + "/users/{username}/settings/billing/shared-storage": { + /** + * Get shared storage billing for a user + * @description Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + get: operations["billing/get-shared-storage-billing-user"]; + }; + "/users/{username}/social_accounts": { + /** + * List social accounts for a user + * @description Lists social media accounts for a user. This endpoint is accessible by anyone. + */ + get: operations["users/list-social-accounts-for-user"]; + }; + "/users/{username}/ssh_signing_keys": { + /** + * List SSH signing keys for a user + * @description Lists the SSH signing keys for a user. This operation is accessible by anyone. + */ + get: operations["users/list-ssh-signing-keys-for-user"]; + }; + "/users/{username}/starred": { + /** + * List repositories starred by a user + * @description Lists repositories a user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + get: operations["activity/list-repos-starred-by-user"]; + }; + "/users/{username}/subscriptions": { + /** + * List repositories watched by a user + * @description Lists repositories a user is watching. + */ + get: operations["activity/list-repos-watched-by-user"]; + }; + "/versions": { + /** + * Get all API versions + * @description Get all supported GitHub API versions. + */ + get: operations["meta/get-all-versions"]; + }; + "/zen": { + /** + * Get the Zen of GitHub + * @description Get a random sentence from the Zen of GitHub + */ + get: operations["meta/get-zen"]; + }; + "/repos/{owner}/{repo}/compare/{base}...{head}": { + /** + * Compare two commits + * @description **Deprecated**: Use `repos.compareCommitsWithBasehead()` (`GET /repos/{owner}/{repo}/compare/{basehead}`) instead. Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + * + * When calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/compare-commits"]; + }; +} + +export type webhooks = Record; + +export interface components { + schemas: { + root: { + /** Format: uri-template */ + current_user_url: string; + /** Format: uri-template */ + current_user_authorizations_html_url: string; + /** Format: uri-template */ + authorizations_url: string; + /** Format: uri-template */ + code_search_url: string; + /** Format: uri-template */ + commit_search_url: string; + /** Format: uri-template */ + emails_url: string; + /** Format: uri-template */ + emojis_url: string; + /** Format: uri-template */ + events_url: string; + /** Format: uri-template */ + feeds_url: string; + /** Format: uri-template */ + followers_url: string; + /** Format: uri-template */ + following_url: string; + /** Format: uri-template */ + gists_url: string; + /** Format: uri-template */ + hub_url: string; + /** Format: uri-template */ + issue_search_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + label_search_url: string; + /** Format: uri-template */ + notifications_url: string; + /** Format: uri-template */ + organization_url: string; + /** Format: uri-template */ + organization_repositories_url: string; + /** Format: uri-template */ + organization_teams_url: string; + /** Format: uri-template */ + public_gists_url: string; + /** Format: uri-template */ + rate_limit_url: string; + /** Format: uri-template */ + repository_url: string; + /** Format: uri-template */ + repository_search_url: string; + /** Format: uri-template */ + current_user_repositories_url: string; + /** Format: uri-template */ + starred_url: string; + /** Format: uri-template */ + starred_gists_url: string; + /** Format: uri-template */ + topic_search_url?: string; + /** Format: uri-template */ + user_url: string; + /** Format: uri-template */ + user_organizations_url: string; + /** Format: uri-template */ + user_repositories_url: string; + /** Format: uri-template */ + user_search_url: string; + }; + /** + * @description The package's language or package management ecosystem. + * @enum {string} + */ + "security-advisory-ecosystems": + | "rubygems" + | "npm" + | "pip" + | "maven" + | "nuget" + | "composer" + | "go" + | "rust" + | "erlang" + | "actions" + | "pub" + | "other" + | "swift"; + /** + * Simple User + * @description A GitHub user. + */ + "simple-user": { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + }; + /** + * @description The type of credit the user is receiving. + * @enum {string} + */ + "security-advisory-credit-types": + | "analyst" + | "finder" + | "reporter" + | "coordinator" + | "remediation_developer" + | "remediation_reviewer" + | "remediation_verifier" + | "tool" + | "sponsor" + | "other"; + /** @description A GitHub Security Advisory. */ + "global-advisory": { + /** @description The GitHub Security Advisory ID. */ + ghsa_id: string; + /** @description The Common Vulnerabilities and Exposures (CVE) ID. */ + cve_id: string | null; + /** @description The API URL for the advisory. */ + url: string; + /** + * Format: uri + * @description The URL for the advisory. + */ + html_url: string; + /** + * Format: uri + * @description The API URL for the repository advisory. + */ + repository_advisory_url: string | null; + /** @description A short summary of the advisory. */ + summary: string; + /** @description A detailed description of what the advisory entails. */ + description: string | null; + /** + * @description The type of advisory. + * @enum {string} + */ + type: "reviewed" | "unreviewed" | "malware"; + /** + * @description The severity of the advisory. + * @enum {string} + */ + severity: "critical" | "high" | "medium" | "low" | "unknown"; + /** + * Format: uri + * @description The URL of the advisory's source code. + */ + source_code_location: string | null; + identifiers: + | readonly { + /** + * @description The type of identifier. + * @enum {string} + */ + type: "CVE" | "GHSA"; + /** @description The identifier value. */ + value: string; + }[] + | null; + references: string[] | null; + /** + * Format: date-time + * @description The date and time of when the advisory was published, in ISO 8601 format. + */ + published_at: string; + /** + * Format: date-time + * @description The date and time of when the advisory was last updated, in ISO 8601 format. + */ + updated_at: string; + /** + * Format: date-time + * @description The date and time of when the advisory was reviewed by GitHub, in ISO 8601 format. + */ + github_reviewed_at: string | null; + /** + * Format: date-time + * @description The date and time when the advisory was published in the National Vulnerability Database, in ISO 8601 format. + * This field is only populated when the advisory is imported from the National Vulnerability Database. + */ + nvd_published_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was withdrawn, in ISO 8601 format. + */ + withdrawn_at: string | null; + /** @description The products and respective version ranges affected by the advisory. */ + vulnerabilities: + | { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name: string | null; + } | null; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range: string | null; + /** @description The package version that resolve the vulnerability. */ + first_patched_version: string | null; + /** @description The functions in the package that are affected by the vulnerability. */ + vulnerable_functions: readonly string[] | null; + }[] + | null; + cvss: { + /** @description The CVSS vector. */ + vector_string: string | null; + /** @description The CVSS score. */ + score: number | null; + } | null; + cwes: + | { + /** @description The Common Weakness Enumeration (CWE) identifier. */ + cwe_id: string; + /** @description The name of the CWE. */ + name: string; + }[] + | null; + /** @description The users who contributed to the advisory. */ + credits: + | readonly { + user: components["schemas"]["simple-user"]; + type: components["schemas"]["security-advisory-credit-types"]; + }[] + | null; + }; + /** + * Basic Error + * @description Basic Error + */ + "basic-error": { + message?: string; + documentation_url?: string; + url?: string; + status?: string; + }; + /** + * Validation Error Simple + * @description Validation Error Simple + */ + "validation-error-simple": { + message: string; + documentation_url: string; + errors?: string[]; + }; + /** + * Simple User + * @description A GitHub user. + */ + "nullable-simple-user": { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + } | null; + /** + * GitHub app + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + integration: { + /** + * @description Unique identifier of the GitHub app + * @example 37 + */ + id: number; + /** + * @description The slug name of the GitHub app + * @example probot-owners + */ + slug?: string; + /** @example MDExOkludGVncmF0aW9uMQ== */ + node_id: string; + owner: components["schemas"]["nullable-simple-user"]; + /** + * @description The name of the GitHub app + * @example Probot Owners + */ + name: string; + /** @example The description of the app. */ + description: string | null; + /** + * Format: uri + * @example https://example.com + */ + external_url: string; + /** + * Format: uri + * @example https://github.com/apps/super-ci + */ + html_url: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + created_at: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + updated_at: string; + /** + * @description The set of permissions for the GitHub app + * @example { + * "issues": "read", + * "deployments": "write" + * } + */ + permissions: { + issues?: string; + checks?: string; + metadata?: string; + contents?: string; + deployments?: string; + [key: string]: string | undefined; + }; + /** + * @description The list of events for the GitHub app + * @example [ + * "label", + * "deployment" + * ] + */ + events: string[]; + /** + * @description The number of installations associated with the GitHub app + * @example 5 + */ + installations_count?: number; + /** @example "Iv1.25b5d1e65ffc4022" */ + client_id?: string; + /** @example "1d4b2097ac622ba702d19de498f005747a8b21d3" */ + client_secret?: string; + /** @example "6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b" */ + webhook_secret?: string | null; + /** @example "-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\n-----END RSA PRIVATE KEY-----\n" */ + pem?: string; + }; + /** + * Format: uri + * @description The URL to which the payloads will be delivered. + * @example https://example.com/webhook + */ + "webhook-config-url": string; + /** + * @description The media type used to serialize the payloads. Supported values include `json` and `form`. The default is `form`. + * @example "json" + */ + "webhook-config-content-type": string; + /** + * @description If provided, the `secret` will be used as the `key` to generate the HMAC hex digest value for [delivery signature headers](https://docs.github.com/webhooks/event-payloads/#delivery-headers). + * @example "********" + */ + "webhook-config-secret": string; + "webhook-config-insecure-ssl": string | number; + /** + * Webhook Configuration + * @description Configuration object of the webhook + */ + "webhook-config": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + /** + * Simple webhook delivery + * @description Delivery made by a webhook, without request and response information. + */ + "hook-delivery-item": { + /** + * @description Unique identifier of the webhook delivery. + * @example 42 + */ + id: number; + /** + * @description Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event). + * @example 58474f00-b361-11eb-836d-0e4f3503ccbe + */ + guid: string; + /** + * Format: date-time + * @description Time when the webhook delivery occurred. + * @example 2021-05-12T20:33:44Z + */ + delivered_at: string; + /** + * @description Whether the webhook delivery is a redelivery. + * @example false + */ + redelivery: boolean; + /** + * @description Time spent delivering. + * @example 0.03 + */ + duration: number; + /** + * @description Describes the response returned after attempting the delivery. + * @example failed to connect + */ + status: string; + /** + * @description Status code received when delivery was made. + * @example 502 + */ + status_code: number; + /** + * @description The event that triggered the delivery. + * @example issues + */ + event: string; + /** + * @description The type of activity for the event that triggered the delivery. + * @example opened + */ + action: string | null; + /** + * @description The id of the GitHub App installation associated with this event. + * @example 123 + */ + installation_id: number | null; + /** + * @description The id of the repository associated with this event. + * @example 123 + */ + repository_id: number | null; + }; + /** + * Scim Error + * @description Scim Error + */ + "scim-error": { + message?: string | null; + documentation_url?: string | null; + detail?: string | null; + status?: number; + scimType?: string | null; + schemas?: string[]; + }; + /** + * Validation Error + * @description Validation Error + */ + "validation-error": { + message: string; + documentation_url: string; + errors?: { + resource?: string; + field?: string; + message?: string; + code: string; + index?: number; + value?: (string | null) | (number | null) | (string[] | null); + }[]; + }; + /** + * Webhook delivery + * @description Delivery made by a webhook. + */ + "hook-delivery": { + /** + * @description Unique identifier of the delivery. + * @example 42 + */ + id: number; + /** + * @description Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event). + * @example 58474f00-b361-11eb-836d-0e4f3503ccbe + */ + guid: string; + /** + * Format: date-time + * @description Time when the delivery was delivered. + * @example 2021-05-12T20:33:44Z + */ + delivered_at: string; + /** + * @description Whether the delivery is a redelivery. + * @example false + */ + redelivery: boolean; + /** + * @description Time spent delivering. + * @example 0.03 + */ + duration: number; + /** + * @description Description of the status of the attempted delivery + * @example failed to connect + */ + status: string; + /** + * @description Status code received when delivery was made. + * @example 502 + */ + status_code: number; + /** + * @description The event that triggered the delivery. + * @example issues + */ + event: string; + /** + * @description The type of activity for the event that triggered the delivery. + * @example opened + */ + action: string | null; + /** + * @description The id of the GitHub App installation associated with this event. + * @example 123 + */ + installation_id: number | null; + /** + * @description The id of the repository associated with this event. + * @example 123 + */ + repository_id: number | null; + /** + * @description The URL target of the delivery. + * @example https://www.example.com + */ + url?: string; + request: { + /** @description The request headers sent with the webhook delivery. */ + headers: { + [key: string]: unknown; + } | null; + /** @description The webhook payload. */ + payload: { + [key: string]: unknown; + } | null; + }; + response: { + /** @description The response headers received when the delivery was made. */ + headers: { + [key: string]: unknown; + } | null; + /** @description The response payload received. */ + payload: string | null; + }; + }; + /** + * Enterprise + * @description An enterprise on GitHub. + */ + enterprise: { + /** @description A short description of the enterprise. */ + description?: string | null; + /** + * Format: uri + * @example https://github.com/enterprises/octo-business + */ + html_url: string; + /** + * Format: uri + * @description The enterprise's website URL. + */ + website_url?: string | null; + /** + * @description Unique identifier of the enterprise + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the enterprise. + * @example Octo Business + */ + name: string; + /** + * @description The slug url identifier for the enterprise. + * @example octo-business + */ + slug: string; + /** + * Format: date-time + * @example 2019-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2019-01-26T19:14:43Z + */ + updated_at: string | null; + /** Format: uri */ + avatar_url: string; + }; + /** + * Integration Installation Request + * @description Request to install an integration on a target + */ + "integration-installation-request": { + /** + * @description Unique identifier of the request installation. + * @example 42 + */ + id: number; + /** @example MDExOkludGVncmF0aW9uMQ== */ + node_id?: string; + account: + | components["schemas"]["simple-user"] + | components["schemas"]["enterprise"]; + requester: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @example 2022-07-08T16:18:44-04:00 + */ + created_at: string; + }; + /** + * App Permissions + * @description The permissions granted to the user access token. + * @example { + * "contents": "read", + * "issues": "read", + * "deployments": "write", + * "single_file": "read" + * } + */ + "app-permissions": { + /** + * @description The level of permission to grant the access token for GitHub Actions workflows, workflow runs, and artifacts. + * @enum {string} + */ + actions?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository creation, deletion, settings, teams, and collaborators creation. + * @enum {string} + */ + administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token for checks on code. + * @enum {string} + */ + checks?: "read" | "write"; + /** + * @description The level of permission to grant the access token to create, edit, delete, and list Codespaces. + * @enum {string} + */ + codespaces?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges. + * @enum {string} + */ + contents?: "read" | "write"; + /** + * @description The leve of permission to grant the access token to manage Dependabot secrets. + * @enum {string} + */ + dependabot_secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token for deployments and deployment statuses. + * @enum {string} + */ + deployments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for managing repository environments. + * @enum {string} + */ + environments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for issues and related comments, assignees, labels, and milestones. + * @enum {string} + */ + issues?: "read" | "write"; + /** + * @description The level of permission to grant the access token to search repositories, list collaborators, and access repository metadata. + * @enum {string} + */ + metadata?: "read" | "write"; + /** + * @description The level of permission to grant the access token for packages published to GitHub Packages. + * @enum {string} + */ + packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to retrieve Pages statuses, configuration, and builds, as well as create new builds. + * @enum {string} + */ + pages?: "read" | "write"; + /** + * @description The level of permission to grant the access token for pull requests and related comments, assignees, labels, milestones, and merges. + * @enum {string} + */ + pull_requests?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and edit custom properties for a repository, when allowed by the property. + * @enum {string} + */ + repository_custom_properties?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for a repository. + * @enum {string} + */ + repository_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository projects, columns, and cards. + * @enum {string} + */ + repository_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token to view and manage secret scanning alerts. + * @enum {string} + */ + secret_scanning_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository secrets. + * @enum {string} + */ + secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage security events like code scanning alerts. + * @enum {string} + */ + security_events?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage just a single file. + * @enum {string} + */ + single_file?: "read" | "write"; + /** + * @description The level of permission to grant the access token for commit statuses. + * @enum {string} + */ + statuses?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage Dependabot alerts. + * @enum {string} + */ + vulnerability_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to update GitHub Actions workflow files. + * @enum {string} + */ + workflows?: "write"; + /** + * @description The level of permission to grant the access token for organization teams and members. + * @enum {string} + */ + members?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage access to an organization. + * @enum {string} + */ + organization_administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token for custom repository roles management. + * @enum {string} + */ + organization_custom_roles?: "read" | "write"; + /** + * @description The level of permission to grant the access token for custom organization roles management. + * @enum {string} + */ + organization_custom_org_roles?: "read" | "write"; + /** + * @description The level of permission to grant the access token for custom property management. + * @enum {string} + */ + organization_custom_properties?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token for managing access to GitHub Copilot for members of an organization with a Copilot Business subscription. This property is in beta and is subject to change. + * @enum {string} + */ + organization_copilot_seat_management?: "write"; + /** + * @description The level of permission to grant the access token to view and manage announcement banners for an organization. + * @enum {string} + */ + organization_announcement_banners?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view events triggered by an activity in an organization. + * @enum {string} + */ + organization_events?: "read"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for an organization. + * @enum {string} + */ + organization_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing and managing fine-grained personal access token requests to an organization. + * @enum {string} + */ + organization_personal_access_tokens?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing and managing fine-grained personal access tokens that have been approved by an organization. + * @enum {string} + */ + organization_personal_access_token_requests?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing an organization's plan. + * @enum {string} + */ + organization_plan?: "read"; + /** + * @description The level of permission to grant the access token to manage organization projects and projects beta (where available). + * @enum {string} + */ + organization_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token for organization packages published to GitHub Packages. + * @enum {string} + */ + organization_packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage organization secrets. + * @enum {string} + */ + organization_secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage GitHub Actions self-hosted runners available to an organization. + * @enum {string} + */ + organization_self_hosted_runners?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage users blocked by the organization. + * @enum {string} + */ + organization_user_blocking?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage team discussions and related comments. + * @enum {string} + */ + team_discussions?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the email addresses belonging to a user. + * @enum {string} + */ + email_addresses?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the followers belonging to a user. + * @enum {string} + */ + followers?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage git SSH keys. + * @enum {string} + */ + git_ssh_keys?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage GPG keys belonging to a user. + * @enum {string} + */ + gpg_keys?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage interaction limits on a repository. + * @enum {string} + */ + interaction_limits?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the profile settings belonging to a user. + * @enum {string} + */ + profile?: "write"; + /** + * @description The level of permission to grant the access token to list and manage repositories a user is starring. + * @enum {string} + */ + starring?: "read" | "write"; + }; + /** + * Installation + * @description Installation + */ + installation: { + /** + * @description The ID of the installation. + * @example 1 + */ + id: number; + account: + | ( + | components["schemas"]["simple-user"] + | components["schemas"]["enterprise"] + ) + | null; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** + * Format: uri + * @example https://api.github.com/app/installations/1/access_tokens + */ + access_tokens_url: string; + /** + * Format: uri + * @example https://api.github.com/installation/repositories + */ + repositories_url: string; + /** + * Format: uri + * @example https://github.com/organizations/github/settings/installations/1 + */ + html_url: string; + /** @example 1 */ + app_id: number; + /** @description The ID of the user or organization this token is being scoped to. */ + target_id: number; + /** @example Organization */ + target_type: string; + permissions: components["schemas"]["app-permissions"]; + events: string[]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** @example config.yaml */ + single_file_name: string | null; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + /** @example github-actions */ + app_slug: string; + suspended_by: components["schemas"]["nullable-simple-user"]; + /** Format: date-time */ + suspended_at: string | null; + /** @example "test_13f1e99741e3e004@d7e1eb0bc0a1ba12.com" */ + contact_email?: string | null; + }; + /** + * License Simple + * @description License Simple + */ + "nullable-license-simple": { + /** @example mit */ + key: string; + /** @example MIT License */ + name: string; + /** + * Format: uri + * @example https://api.github.com/licenses/mit + */ + url: string | null; + /** @example MIT */ + spdx_id: string | null; + /** @example MDc6TGljZW5zZW1pdA== */ + node_id: string; + /** Format: uri */ + html_url?: string; + } | null; + /** + * Repository + * @description A repository on GitHub. + */ + repository: { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @deprecated + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + */ + web_commit_signoff_required?: boolean; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + /** @description Whether anonymous git access is enabled for this repository */ + anonymous_access_enabled?: boolean; + }; + /** + * Installation Token + * @description Authentication token for a GitHub App installed on a user or org. + */ + "installation-token": { + token: string; + expires_at: string; + permissions?: components["schemas"]["app-permissions"]; + /** @enum {string} */ + repository_selection?: "all" | "selected"; + repositories?: components["schemas"]["repository"][]; + /** @example README.md */ + single_file?: string; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + }; + /** Scoped Installation */ + "nullable-scoped-installation": { + permissions: components["schemas"]["app-permissions"]; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** @example config.yaml */ + single_file_name: string | null; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repositories_url: string; + account: components["schemas"]["simple-user"]; + } | null; + /** + * Authorization + * @description The authorization for an OAuth app, GitHub App, or a Personal Access Token. + */ + authorization: { + id: number; + /** Format: uri */ + url: string; + /** @description A list of scopes that this authorization is in. */ + scopes: string[] | null; + token: string; + token_last_eight: string | null; + hashed_token: string | null; + app: { + client_id: string; + name: string; + /** Format: uri */ + url: string; + }; + note: string | null; + /** Format: uri */ + note_url: string | null; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + created_at: string; + fingerprint: string | null; + user?: components["schemas"]["nullable-simple-user"]; + installation?: components["schemas"]["nullable-scoped-installation"]; + /** Format: date-time */ + expires_at: string | null; + }; + /** + * Simple Classroom Repository + * @description A GitHub repository view for Classroom + */ + "simple-classroom-repository": { + /** + * @description A unique identifier of the repository. + * @example 1296269 + */ + id: number; + /** + * @description The full, globally unique name of the repository. + * @example octocat/Hello-World + */ + full_name: string; + /** + * Format: uri + * @description The URL to view the repository on GitHub.com. + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** + * @description The GraphQL identifier of the repository. + * @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + */ + node_id: string; + /** @description Whether the repository is private. */ + private: boolean; + /** + * @description The default branch for the repository. + * @example main + */ + default_branch: string; + }; + /** + * Organization Simple for Classroom + * @description A GitHub organization. + */ + "simple-classroom-organization": { + /** @example 1 */ + id: number; + /** @example github */ + login: string; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/github + */ + html_url: string; + /** @example Github - Code thigns happen here */ + name: string | null; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + }; + /** + * Classroom + * @description A GitHub Classroom classroom + */ + classroom: { + /** + * @description Unique identifier of the classroom. + * @example 42 + */ + id: number; + /** + * @description The name of the classroom. + * @example Programming Elixir + */ + name: string; + /** + * @description Whether classroom is archived. + * @example false + */ + archived: boolean; + organization: components["schemas"]["simple-classroom-organization"]; + /** + * @description The URL of the classroom on GitHub Classroom. + * @example https://classroom.github.com/classrooms/1-programming-elixir + */ + url: string; + }; + /** + * Classroom Assignment + * @description A GitHub Classroom assignment + */ + "classroom-assignment": { + /** + * @description Unique identifier of the repository. + * @example 42 + */ + id: number; + /** + * @description Whether an accepted assignment creates a public repository. + * @example true + */ + public_repo: boolean; + /** + * @description Assignment title. + * @example Intro to Binaries + */ + title: string; + /** + * @description Whether it's a group assignment or individual assignment. + * @example individual + * @enum {string} + */ + type: "individual" | "group"; + /** + * @description The link that a student can use to accept the assignment. + * @example https://classroom.github.com/a/Lx7jiUgx + */ + invite_link: string; + /** + * @description Whether the invitation link is enabled. Visiting an enabled invitation link will accept the assignment. + * @example true + */ + invitations_enabled: boolean; + /** + * @description Sluggified name of the assignment. + * @example intro-to-binaries + */ + slug: string; + /** + * @description Whether students are admins on created repository when a student accepts the assignment. + * @example true + */ + students_are_repo_admins: boolean; + /** + * @description Whether feedback pull request will be created when a student accepts the assignment. + * @example true + */ + feedback_pull_requests_enabled: boolean; + /** + * @description The maximum allowable teams for the assignment. + * @example 0 + */ + max_teams: number | null; + /** + * @description The maximum allowable members per team. + * @example 0 + */ + max_members: number | null; + /** + * @description The selected editor for the assignment. + * @example codespaces + */ + editor: string; + /** + * @description The number of students that have accepted the assignment. + * @example 25 + */ + accepted: number; + /** + * @description The number of students that have submitted the assignment. + * @example 10 + */ + submitted: number; + /** + * @description The number of students that have passed the assignment. + * @example 10 + */ + passing: number; + /** + * @description The programming language used in the assignment. + * @example elixir + */ + language: string; + /** + * Format: date-time + * @description The time at which the assignment is due. + * @example 2011-01-26T19:06:43Z + */ + deadline: string | null; + starter_code_repository: components["schemas"]["simple-classroom-repository"]; + classroom: components["schemas"]["classroom"]; + }; + /** + * Simple Classroom User + * @description A GitHub user simplified for Classroom. + */ + "simple-classroom-user": { + /** @example 1 */ + id: number; + /** @example octocat */ + login: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + }; + /** + * Simple Classroom + * @description A GitHub Classroom classroom + */ + "simple-classroom": { + /** + * @description Unique identifier of the classroom. + * @example 42 + */ + id: number; + /** + * @description The name of the classroom. + * @example Programming Elixir + */ + name: string; + /** + * @description Returns whether classroom is archived or not. + * @example false + */ + archived: boolean; + /** + * @description The url of the classroom on GitHub Classroom. + * @example https://classroom.github.com/classrooms/1-programming-elixir + */ + url: string; + }; + /** + * Simple Classroom Assignment + * @description A GitHub Classroom assignment + */ + "simple-classroom-assignment": { + /** + * @description Unique identifier of the repository. + * @example 42 + */ + id: number; + /** + * @description Whether an accepted assignment creates a public repository. + * @example true + */ + public_repo: boolean; + /** + * @description Assignment title. + * @example Intro to Binaries + */ + title: string; + /** + * @description Whether it's a Group Assignment or Individual Assignment. + * @example individual + * @enum {string} + */ + type: "individual" | "group"; + /** + * @description The link that a student can use to accept the assignment. + * @example https://classroom.github.com/a/Lx7jiUgx + */ + invite_link: string; + /** + * @description Whether the invitation link is enabled. Visiting an enabled invitation link will accept the assignment. + * @example true + */ + invitations_enabled: boolean; + /** + * @description Sluggified name of the assignment. + * @example intro-to-binaries + */ + slug: string; + /** + * @description Whether students are admins on created repository on accepted assignment. + * @example true + */ + students_are_repo_admins: boolean; + /** + * @description Whether feedback pull request will be created on assignment acceptance. + * @example true + */ + feedback_pull_requests_enabled: boolean; + /** + * @description The maximum allowable teams for the assignment. + * @example 0 + */ + max_teams?: number | null; + /** + * @description The maximum allowable members per team. + * @example 0 + */ + max_members?: number | null; + /** + * @description The selected editor for the assignment. + * @example codespaces + */ + editor: string; + /** + * @description The number of students that have accepted the assignment. + * @example 25 + */ + accepted: number; + /** + * @description The number of students that have submitted the assignment. + * @example 10 + */ + submitted: number; + /** + * @description The number of students that have passed the assignment. + * @example 10 + */ + passing: number; + /** + * @description The programming language used in the assignment. + * @example elixir + */ + language: string; + /** + * Format: date-time + * @description The time at which the assignment is due. + * @example 2011-01-26T19:06:43Z + */ + deadline: string | null; + classroom: components["schemas"]["simple-classroom"]; + }; + /** + * Classroom Accepted Assignment + * @description A GitHub Classroom accepted assignment + */ + "classroom-accepted-assignment": { + /** + * @description Unique identifier of the repository. + * @example 42 + */ + id: number; + /** + * @description Whether an accepted assignment has been submitted. + * @example true + */ + submitted: boolean; + /** + * @description Whether a submission passed. + * @example true + */ + passing: boolean; + /** + * @description Count of student commits. + * @example 5 + */ + commit_count: number; + /** + * @description Most recent grade. + * @example 10/10 + */ + grade: string; + students: components["schemas"]["simple-classroom-user"][]; + repository: components["schemas"]["simple-classroom-repository"]; + assignment: components["schemas"]["simple-classroom-assignment"]; + }; + /** + * Classroom Assignment Grade + * @description Grade for a student or groups GitHub Classroom assignment + */ + "classroom-assignment-grade": { + /** @description Name of the assignment */ + assignment_name: string; + /** @description URL of the assignment */ + assignment_url: string; + /** @description URL of the starter code for the assignment */ + starter_code_url: string; + /** @description GitHub username of the student */ + github_username: string; + /** @description Roster identifier of the student */ + roster_identifier: string; + /** @description Name of the student's assignment repository */ + student_repository_name: string; + /** @description URL of the student's assignment repository */ + student_repository_url: string; + /** @description Timestamp of the student's assignment submission */ + submission_timestamp: string; + /** @description Number of points awarded to the student */ + points_awarded: number; + /** @description Number of points available for the assignment */ + points_available: number; + /** @description If a group assignment, name of the group the student is in */ + group_name?: string; + }; + /** + * Code Of Conduct + * @description Code Of Conduct + */ + "code-of-conduct": { + /** @example contributor_covenant */ + key: string; + /** @example Contributor Covenant */ + name: string; + /** + * Format: uri + * @example https://api.github.com/codes_of_conduct/contributor_covenant + */ + url: string; + /** + * @example # Contributor Covenant Code of Conduct + * + * ## Our Pledge + * + * 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. + * + * ## Our Standards + * + * Examples of behavior that contributes to creating a positive environment include: + * + * * Using welcoming and inclusive language + * * Being respectful of differing viewpoints and experiences + * * Gracefully accepting constructive criticism + * * Focusing on what is best for the community + * * Showing empathy towards other community members + * + * Examples of unacceptable behavior by participants include: + * + * * The use of sexualized language or imagery and unwelcome sexual attention or advances + * * Trolling, insulting/derogatory comments, and personal or political attacks + * * Public or private harassment + * * Publishing others' private information, such as a physical or electronic address, without explicit permission + * * Other conduct which could reasonably be considered inappropriate in a professional setting + * + * ## Our Responsibilities + * + * 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. + * + * 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. + * + * ## Scope + * + * 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. + * + * ## Enforcement + * + * Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. 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. + * + * 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. + * + * ## Attribution + * + * This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.4, available at [http://contributor-covenant.org/version/1/4](http://contributor-covenant.org/version/1/4/). + */ + body?: string; + /** Format: uri */ + html_url: string | null; + }; + /** @description The security alert number. */ + readonly "alert-number": number; + /** @description Details for the vulnerable package. */ + readonly "dependabot-alert-package": { + /** @description The package's language or package management ecosystem. */ + readonly ecosystem: string; + /** @description The unique package name within its ecosystem. */ + readonly name: string; + }; + /** @description Details pertaining to one vulnerable version range for the advisory. */ + readonly "dependabot-alert-security-vulnerability": { + readonly package: components["schemas"]["dependabot-alert-package"]; + /** + * @description The severity of the vulnerability. + * @enum {string} + */ + readonly severity: "low" | "medium" | "high" | "critical"; + /** @description Conditions that identify vulnerable versions of this vulnerability's package. */ + readonly vulnerable_version_range: string; + /** @description Details pertaining to the package version that patches this vulnerability. */ + readonly first_patched_version: { + /** @description The package version that patches this vulnerability. */ + readonly identifier: string; + } | null; + }; + /** @description Details for the GitHub Security Advisory. */ + readonly "dependabot-alert-security-advisory": { + /** @description The unique GitHub Security Advisory ID assigned to the advisory. */ + readonly ghsa_id: string; + /** @description The unique CVE ID assigned to the advisory. */ + readonly cve_id: string | null; + /** @description A short, plain text summary of the advisory. */ + readonly summary: string; + /** @description A long-form Markdown-supported description of the advisory. */ + readonly description: string; + /** @description Vulnerable version range information for the advisory. */ + readonly vulnerabilities: readonly components["schemas"]["dependabot-alert-security-vulnerability"][]; + /** + * @description The severity of the advisory. + * @enum {string} + */ + readonly severity: "low" | "medium" | "high" | "critical"; + /** @description Details for the advisory pertaining to the Common Vulnerability Scoring System. */ + readonly cvss: { + /** @description The overall CVSS score of the advisory. */ + readonly score: number; + /** @description The full CVSS vector string for the advisory. */ + readonly vector_string: string | null; + }; + /** @description Details for the advisory pertaining to Common Weakness Enumeration. */ + readonly cwes: readonly { + /** @description The unique CWE ID. */ + readonly cwe_id: string; + /** @description The short, plain text name of the CWE. */ + readonly name: string; + }[]; + /** @description Values that identify this advisory among security information sources. */ + readonly identifiers: readonly { + /** + * @description The type of advisory identifier. + * @enum {string} + */ + readonly type: "CVE" | "GHSA"; + /** @description The value of the advisory identifer. */ + readonly value: string; + }[]; + /** @description Links to additional advisory information. */ + readonly references: readonly { + /** + * Format: uri + * @description The URL of the reference. + */ + readonly url: string; + }[]; + /** + * Format: date-time + * @description The time that the advisory was published in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly published_at: string; + /** + * Format: date-time + * @description The time that the advisory was last modified in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly updated_at: string; + /** + * Format: date-time + * @description The time that the advisory was withdrawn in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly withdrawn_at: string | null; + }; + /** + * Format: uri + * @description The REST API URL of the alert resource. + */ + readonly "alert-url": string; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + readonly "alert-html-url": string; + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-created-at": string; + /** + * Format: date-time + * @description The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-updated-at": string; + /** + * Format: date-time + * @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-dismissed-at": string | null; + /** + * Format: date-time + * @description The time that the alert was no longer detected and was considered fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-fixed-at": string | null; + /** + * Format: date-time + * @description The time that the alert was auto-dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "alert-auto-dismissed-at": string | null; + /** + * Simple Repository + * @description A GitHub repository. + */ + "simple-repository": { + /** + * @description A unique identifier of the repository. + * @example 1296269 + */ + id: number; + /** + * @description The GraphQL identifier of the repository. + * @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + */ + node_id: string; + /** + * @description The name of the repository. + * @example Hello-World + */ + name: string; + /** + * @description The full, globally unique, name of the repository. + * @example octocat/Hello-World + */ + full_name: string; + owner: components["schemas"]["simple-user"]; + /** @description Whether the repository is private. */ + private: boolean; + /** + * Format: uri + * @description The URL to view the repository on GitHub.com. + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** + * @description The repository description. + * @example This your first repo! + */ + description: string | null; + /** @description Whether the repository is a fork. */ + fork: boolean; + /** + * Format: uri + * @description The URL to get more information about the repository from the GitHub API. + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** + * @description A template for the API URL to download the repository as an archive. + * @example https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + */ + archive_url: string; + /** + * @description A template for the API URL to list the available assignees for issues in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/assignees{/user} + */ + assignees_url: string; + /** + * @description A template for the API URL to create or retrieve a raw Git blob in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + */ + blobs_url: string; + /** + * @description A template for the API URL to get information about branches in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/branches{/branch} + */ + branches_url: string; + /** + * @description A template for the API URL to get information about collaborators of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + */ + collaborators_url: string; + /** + * @description A template for the API URL to get information about comments on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/comments{/number} + */ + comments_url: string; + /** + * @description A template for the API URL to get information about commits on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/commits{/sha} + */ + commits_url: string; + /** + * @description A template for the API URL to compare two commits or refs. + * @example https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + */ + compare_url: string; + /** + * @description A template for the API URL to get the contents of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/contents/{+path} + */ + contents_url: string; + /** + * Format: uri + * @description A template for the API URL to list the contributors to the repository. + * @example https://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @description The API URL to list the deployments of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @description The API URL to list the downloads on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @description The API URL to list the events of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @description The API URL to list the forks of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** + * @description A template for the API URL to get information about Git commits of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + */ + git_commits_url: string; + /** + * @description A template for the API URL to get information about Git refs of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + */ + git_refs_url: string; + /** + * @description A template for the API URL to get information about Git tags of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + */ + git_tags_url: string; + /** + * @description A template for the API URL to get information about issue comments on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + */ + issue_comment_url: string; + /** + * @description A template for the API URL to get information about issue events on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + */ + issue_events_url: string; + /** + * @description A template for the API URL to get information about issues on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/issues{/number} + */ + issues_url: string; + /** + * @description A template for the API URL to get information about deploy keys on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + */ + keys_url: string; + /** + * @description A template for the API URL to get information about labels of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/labels{/name} + */ + labels_url: string; + /** + * Format: uri + * @description The API URL to get information about the languages of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @description The API URL to merge branches in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** + * @description A template for the API URL to get information about milestones of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/milestones{/number} + */ + milestones_url: string; + /** + * @description A template for the API URL to get information about notifications on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + */ + notifications_url: string; + /** + * @description A template for the API URL to get information about pull requests on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/pulls{/number} + */ + pulls_url: string; + /** + * @description A template for the API URL to get information about releases on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/releases{/id} + */ + releases_url: string; + /** + * Format: uri + * @description The API URL to list the stargazers on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** + * @description A template for the API URL to get information about statuses of a commit. + * @example https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + */ + statuses_url: string; + /** + * Format: uri + * @description The API URL to list the subscribers on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @description The API URL to subscribe to notifications for this repository. + * @example https://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @description The API URL to get information about tags on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @description The API URL to list the teams on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** + * @description A template for the API URL to create or retrieve a raw Git tree of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + */ + trees_url: string; + /** + * Format: uri + * @description The API URL to list the hooks on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + }; + /** @description A Dependabot alert. */ + "dependabot-alert-with-repository": { + number: components["schemas"]["alert-number"]; + /** + * @description The state of the Dependabot alert. + * @enum {string} + */ + state: "auto_dismissed" | "dismissed" | "fixed" | "open"; + /** @description Details for the vulnerable dependency. */ + dependency: { + readonly package?: components["schemas"]["dependabot-alert-package"]; + /** @description The full path to the dependency manifest file, relative to the root of the repository. */ + readonly manifest_path?: string; + /** + * @description The execution scope of the vulnerable dependency. + * @enum {string|null} + */ + readonly scope?: "development" | "runtime" | null; + }; + security_advisory: components["schemas"]["dependabot-alert-security-advisory"]; + security_vulnerability: components["schemas"]["dependabot-alert-security-vulnerability"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at: components["schemas"]["alert-updated-at"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + /** + * @description The reason that the alert was dismissed. + * @enum {string|null} + */ + dismissed_reason: + | "fix_started" + | "inaccurate" + | "no_bandwidth" + | "not_used" + | "tolerable_risk" + | null; + /** @description An optional comment associated with the alert's dismissal. */ + dismissed_comment: string | null; + fixed_at: components["schemas"]["alert-fixed-at"]; + auto_dismissed_at?: components["schemas"]["alert-auto-dismissed-at"]; + repository: components["schemas"]["simple-repository"]; + }; + /** + * Format: date-time + * @description The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "nullable-alert-updated-at": string | null; + /** + * @description Sets the state of the secret scanning alert. You must provide `resolution` when you set the state to `resolved`. + * @enum {string} + */ + "secret-scanning-alert-state": "open" | "resolved"; + /** + * @description **Required when the `state` is `resolved`.** The reason for resolving the alert. + * @enum {string|null} + */ + "secret-scanning-alert-resolution": + | "false_positive" + | "wont_fix" + | "revoked" + | "used_in_tests" + | null; + "organization-secret-scanning-alert": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["nullable-alert-updated-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + /** + * Format: uri + * @description The REST API URL of the code locations for this alert. + */ + locations_url?: string; + state?: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + /** + * Format: date-time + * @description The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + resolved_at?: string | null; + resolved_by?: components["schemas"]["nullable-simple-user"]; + /** @description The type of secret that secret scanning detected. */ + secret_type?: string; + /** + * @description User-friendly name for the detected secret, matching the `secret_type`. + * For a list of built-in patterns, see "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)." + */ + secret_type_display_name?: string; + /** @description The secret that was detected. */ + secret?: string; + repository?: components["schemas"]["simple-repository"]; + /** @description Whether push protection was bypassed for the detected secret. */ + push_protection_bypassed?: boolean | null; + push_protection_bypassed_by?: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + push_protection_bypassed_at?: string | null; + /** @description The comment that was optionally added when this alert was closed */ + resolution_comment?: string | null; + /** + * @description The token status as of the latest validity check. + * @enum {string} + */ + validity?: "active" | "inactive" | "unknown"; + }; + /** + * Actor + * @description Actor + */ + actor: { + id: number; + login: string; + display_login?: string; + gravatar_id: string | null; + /** Format: uri */ + url: string; + /** Format: uri */ + avatar_url: string; + }; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + "nullable-milestone": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1 + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/milestones/v1.0 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + */ + labels_url: string; + /** @example 1002604 */ + id: number; + /** @example MDk6TWlsZXN0b25lMTAwMjYwNA== */ + node_id: string; + /** + * @description The number of the milestone. + * @example 42 + */ + number: number; + /** + * @description The state of the milestone. + * @default open + * @example open + * @enum {string} + */ + state: "open" | "closed"; + /** + * @description The title of the milestone. + * @example v1.0 + */ + title: string; + /** @example Tracking milestone for version 1.0 */ + description: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** @example 4 */ + open_issues: number; + /** @example 8 */ + closed_issues: number; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2013-02-12T13:22:01Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2012-10-09T23:39:01Z + */ + due_on: string | null; + } | null; + /** + * GitHub app + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + "nullable-integration": { + /** + * @description Unique identifier of the GitHub app + * @example 37 + */ + id: number; + /** + * @description The slug name of the GitHub app + * @example probot-owners + */ + slug?: string; + /** @example MDExOkludGVncmF0aW9uMQ== */ + node_id: string; + owner: components["schemas"]["nullable-simple-user"]; + /** + * @description The name of the GitHub app + * @example Probot Owners + */ + name: string; + /** @example The description of the app. */ + description: string | null; + /** + * Format: uri + * @example https://example.com + */ + external_url: string; + /** + * Format: uri + * @example https://github.com/apps/super-ci + */ + html_url: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + created_at: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + updated_at: string; + /** + * @description The set of permissions for the GitHub app + * @example { + * "issues": "read", + * "deployments": "write" + * } + */ + permissions: { + issues?: string; + checks?: string; + metadata?: string; + contents?: string; + deployments?: string; + [key: string]: string | undefined; + }; + /** + * @description The list of events for the GitHub app + * @example [ + * "label", + * "deployment" + * ] + */ + events: string[]; + /** + * @description The number of installations associated with the GitHub app + * @example 5 + */ + installations_count?: number; + /** @example "Iv1.25b5d1e65ffc4022" */ + client_id?: string; + /** @example "1d4b2097ac622ba702d19de498f005747a8b21d3" */ + client_secret?: string; + /** @example "6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b" */ + webhook_secret?: string | null; + /** @example "-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\n-----END RSA PRIVATE KEY-----\n" */ + pem?: string; + } | null; + /** + * author_association + * @description How the author is associated with the repository. + * @example OWNER + * @enum {string} + */ + "author-association": + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** Reaction Rollup */ + "reaction-rollup": { + /** Format: uri */ + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + eyes: number; + rocket: number; + }; + /** + * Issue + * @description Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. + */ + issue: { + /** Format: int64 */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue + * @example https://api.github.com/repositories/42/issues/1 + */ + url: string; + /** Format: uri */ + repository_url: string; + labels_url: string; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** + * @description Number uniquely identifying the issue within its repository + * @example 42 + */ + number: number; + /** + * @description State of the issue; either 'open' or 'closed' + * @example open + */ + state: string; + /** + * @description The reason for the current state + * @example not_planned + * @enum {string|null} + */ + state_reason?: "completed" | "reopened" | "not_planned" | null; + /** + * @description Title of the issue + * @example Widget creation fails in Safari on OS X 10.8 + */ + title: string; + /** + * @description Contents of the issue + * @example It looks like the new widget form is broken on Safari. When I try and create the widget, Safari crashes. This is reproducible on 10.8, but not 10.9. Maybe a browser bug? + */ + body?: string | null; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository + * @example [ + * "bug", + * "registration" + * ] + */ + labels: OneOf< + [ + string, + { + /** Format: int64 */ + id?: number; + node_id?: string; + /** Format: uri */ + url?: string; + name?: string; + description?: string | null; + color?: string | null; + default?: boolean; + }, + ] + >[]; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + milestone: components["schemas"]["nullable-milestone"]; + locked: boolean; + active_lock_reason?: string | null; + comments: number; + pull_request?: { + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + diff_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + patch_url: string | null; + /** Format: uri */ + url: string | null; + }; + /** Format: date-time */ + closed_at: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + draft?: boolean; + closed_by?: components["schemas"]["nullable-simple-user"]; + body_html?: string; + body_text?: string; + /** Format: uri */ + timeline_url?: string; + repository?: components["schemas"]["repository"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + author_association: components["schemas"]["author-association"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Issue Comment + * @description Comments provide a way for people to collaborate on an issue. + */ + "issue-comment": { + /** + * Format: int64 + * @description Unique identifier of the issue comment + * @example 42 + */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue comment + * @example https://api.github.com/repositories/42/issues/comments/1 + */ + url: string; + /** + * @description Contents of the issue comment + * @example What version of Safari were you using when you observed this bug? + */ + body?: string; + body_text?: string; + body_html?: string; + /** Format: uri */ + html_url: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** Format: uri */ + issue_url: string; + author_association: components["schemas"]["author-association"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Event + * @description Event + */ + event: { + id: string; + type: string | null; + actor: components["schemas"]["actor"]; + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + org?: components["schemas"]["actor"]; + payload: { + action?: string; + issue?: components["schemas"]["issue"]; + comment?: components["schemas"]["issue-comment"]; + pages?: { + page_name?: string; + title?: string; + summary?: string | null; + action?: string; + sha?: string; + html_url?: string; + }[]; + }; + public: boolean; + /** Format: date-time */ + created_at: string | null; + }; + /** + * Link With Type + * @description Hypermedia Link with Type + */ + "link-with-type": { + href: string; + type: string; + }; + /** + * Feed + * @description Feed + */ + feed: { + /** @example https://github.com/timeline */ + timeline_url: string; + /** @example https://github.com/{user} */ + user_url: string; + /** @example https://github.com/octocat */ + current_user_public_url?: string; + /** @example https://github.com/octocat.private?token=abc123 */ + current_user_url?: string; + /** @example https://github.com/octocat.private.actor?token=abc123 */ + current_user_actor_url?: string; + /** @example https://github.com/octocat-org */ + current_user_organization_url?: string; + /** + * @example [ + * "https://github.com/organizations/github/octocat.private.atom?token=abc123" + * ] + */ + current_user_organization_urls?: string[]; + /** @example https://github.com/security-advisories */ + security_advisories_url?: string; + /** + * @description A feed of discussions for a given repository. + * @example https://github.com/{user}/{repo}/discussions + */ + repository_discussions_url?: string; + /** + * @description A feed of discussions for a given repository and category. + * @example https://github.com/{user}/{repo}/discussions/categories/{category} + */ + repository_discussions_category_url?: string; + _links: { + timeline: components["schemas"]["link-with-type"]; + user: components["schemas"]["link-with-type"]; + security_advisories?: components["schemas"]["link-with-type"]; + current_user?: components["schemas"]["link-with-type"]; + current_user_public?: components["schemas"]["link-with-type"]; + current_user_actor?: components["schemas"]["link-with-type"]; + current_user_organization?: components["schemas"]["link-with-type"]; + current_user_organizations?: components["schemas"]["link-with-type"][]; + repository_discussions?: components["schemas"]["link-with-type"]; + repository_discussions_category?: components["schemas"]["link-with-type"]; + }; + }; + /** + * Base Gist + * @description Base Gist + */ + "base-gist": { + /** Format: uri */ + url: string; + /** Format: uri */ + forks_url: string; + /** Format: uri */ + commits_url: string; + id: string; + node_id: string; + /** Format: uri */ + git_pull_url: string; + /** Format: uri */ + git_push_url: string; + /** Format: uri */ + html_url: string; + files: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + }; + }; + public: boolean; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + description: string | null; + comments: number; + user: components["schemas"]["nullable-simple-user"]; + /** Format: uri */ + comments_url: string; + owner?: components["schemas"]["simple-user"]; + truncated?: boolean; + forks?: unknown[]; + history?: unknown[]; + }; + /** + * Public User + * @description Public User + */ + "public-user": { + login: string; + id: number; + node_id: string; + /** Format: uri */ + avatar_url: string; + gravatar_id: string | null; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + repos_url: string; + events_url: string; + /** Format: uri */ + received_events_url: string; + type: string; + site_admin: boolean; + name: string | null; + company: string | null; + blog: string | null; + location: string | null; + /** Format: email */ + email: string | null; + hireable: boolean | null; + bio: string | null; + twitter_username?: string | null; + public_repos: number; + public_gists: number; + followers: number; + following: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + plan?: { + collaborators: number; + name: string; + space: number; + private_repos: number; + }; + /** Format: date-time */ + suspended_at?: string | null; + /** @example 1 */ + private_gists?: number; + /** @example 2 */ + total_private_repos?: number; + /** @example 2 */ + owned_private_repos?: number; + /** @example 1 */ + disk_usage?: number; + /** @example 3 */ + collaborators?: number; + }; + /** + * Gist History + * @description Gist History + */ + "gist-history": { + user?: components["schemas"]["nullable-simple-user"]; + version?: string; + /** Format: date-time */ + committed_at?: string; + change_status?: { + total?: number; + additions?: number; + deletions?: number; + }; + /** Format: uri */ + url?: string; + }; + /** + * Gist Simple + * @description Gist Simple + */ + "gist-simple": { + /** @deprecated */ + forks?: + | { + id?: string; + /** Format: uri */ + url?: string; + user?: components["schemas"]["public-user"]; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + updated_at?: string; + }[] + | null; + /** @deprecated */ + history?: components["schemas"]["gist-history"][] | null; + /** + * Gist + * @description Gist + */ + fork_of?: { + /** Format: uri */ + url: string; + /** Format: uri */ + forks_url: string; + /** Format: uri */ + commits_url: string; + id: string; + node_id: string; + /** Format: uri */ + git_pull_url: string; + /** Format: uri */ + git_push_url: string; + /** Format: uri */ + html_url: string; + files: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + }; + }; + public: boolean; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + description: string | null; + comments: number; + user: components["schemas"]["nullable-simple-user"]; + /** Format: uri */ + comments_url: string; + owner?: components["schemas"]["nullable-simple-user"]; + truncated?: boolean; + forks?: unknown[]; + history?: unknown[]; + } | null; + url?: string; + forks_url?: string; + commits_url?: string; + id?: string; + node_id?: string; + git_pull_url?: string; + git_push_url?: string; + html_url?: string; + files?: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + truncated?: boolean; + content?: string; + } | null; + }; + public?: boolean; + created_at?: string; + updated_at?: string; + description?: string | null; + comments?: number; + user?: string | null; + comments_url?: string; + owner?: components["schemas"]["simple-user"]; + truncated?: boolean; + }; + /** + * Gist Comment + * @description A comment made to a gist. + */ + "gist-comment": { + /** @example 1 */ + id: number; + /** @example MDExOkdpc3RDb21tZW50MQ== */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/gists/a6db0bec360bb87e9418/comments/1 + */ + url: string; + /** + * @description The comment text. + * @example Body of the attachment + */ + body: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2011-04-18T23:23:56Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-18T23:23:56Z + */ + updated_at: string; + author_association: components["schemas"]["author-association"]; + }; + /** + * Gist Commit + * @description Gist Commit + */ + "gist-commit": { + /** + * Format: uri + * @example https://api.github.com/gists/aa5a315d61ae9438b18d/57a7f021a713b1c5a6a199b54cc514735d2d462f + */ + url: string; + /** @example 57a7f021a713b1c5a6a199b54cc514735d2d462f */ + version: string; + user: components["schemas"]["nullable-simple-user"]; + change_status: { + total?: number; + additions?: number; + deletions?: number; + }; + /** + * Format: date-time + * @example 2010-04-14T02:15:15Z + */ + committed_at: string; + }; + /** + * Gitignore Template + * @description Gitignore Template + */ + "gitignore-template": { + /** @example C */ + name: string; + /** + * @example # Object files + * *.o + * + * # Libraries + * *.lib + * *.a + * + * # Shared objects (inc. Windows DLLs) + * *.dll + * *.so + * *.so.* + * *.dylib + * + * # Executables + * *.exe + * *.out + * *.app + */ + source: string; + }; + /** + * License Simple + * @description License Simple + */ + "license-simple": { + /** @example mit */ + key: string; + /** @example MIT License */ + name: string; + /** + * Format: uri + * @example https://api.github.com/licenses/mit + */ + url: string | null; + /** @example MIT */ + spdx_id: string | null; + /** @example MDc6TGljZW5zZW1pdA== */ + node_id: string; + /** Format: uri */ + html_url?: string; + }; + /** + * License + * @description License + */ + license: { + /** @example mit */ + key: string; + /** @example MIT License */ + name: string; + /** @example MIT */ + spdx_id: string | null; + /** + * Format: uri + * @example https://api.github.com/licenses/mit + */ + url: string | null; + /** @example MDc6TGljZW5zZW1pdA== */ + node_id: string; + /** + * Format: uri + * @example http://choosealicense.com/licenses/mit/ + */ + html_url: string; + /** @example A permissive license that is short and to the point. It lets people do anything with your code with proper attribution and without warranty. */ + description: string; + /** @example Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. Replace [year] with the current year and [fullname] with the name (or names) of the copyright holders. */ + implementation: string; + /** + * @example [ + * "commercial-use", + * "modifications", + * "distribution", + * "sublicense", + * "private-use" + * ] + */ + permissions: string[]; + /** + * @example [ + * "include-copyright" + * ] + */ + conditions: string[]; + /** + * @example [ + * "no-liability" + * ] + */ + limitations: string[]; + /** + * @example + * + * The MIT License (MIT) + * + * Copyright (c) [year] [fullname] + * + * 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: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * 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. + */ + body: string; + /** @example true */ + featured: boolean; + }; + /** + * Marketplace Listing Plan + * @description Marketplace Listing Plan + */ + "marketplace-listing-plan": { + /** + * Format: uri + * @example https://api.github.com/marketplace_listing/plans/1313 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/marketplace_listing/plans/1313/accounts + */ + accounts_url: string; + /** @example 1313 */ + id: number; + /** @example 3 */ + number: number; + /** @example Pro */ + name: string; + /** @example A professional-grade CI solution */ + description: string; + /** @example 1099 */ + monthly_price_in_cents: number; + /** @example 11870 */ + yearly_price_in_cents: number; + /** + * @example FLAT_RATE + * @enum {string} + */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + /** @example true */ + has_free_trial: boolean; + unit_name: string | null; + /** @example published */ + state: string; + /** + * @example [ + * "Up to 25 private repositories", + * "11 concurrent builds" + * ] + */ + bullets: string[]; + }; + /** + * Marketplace Purchase + * @description Marketplace Purchase + */ + "marketplace-purchase": { + url: string; + type: string; + id: number; + login: string; + organization_billing_email?: string; + email?: string | null; + marketplace_pending_change?: { + is_installed?: boolean; + effective_date?: string; + unit_count?: number | null; + id?: number; + plan?: components["schemas"]["marketplace-listing-plan"]; + } | null; + marketplace_purchase: { + billing_cycle?: string; + next_billing_date?: string | null; + is_installed?: boolean; + unit_count?: number | null; + on_free_trial?: boolean; + free_trial_ends_on?: string | null; + updated_at?: string; + plan?: components["schemas"]["marketplace-listing-plan"]; + }; + }; + /** + * Api Overview + * @description Api Overview + */ + "api-overview": { + /** @example true */ + verifiable_password_authentication: boolean; + ssh_key_fingerprints?: { + SHA256_RSA?: string; + SHA256_DSA?: string; + SHA256_ECDSA?: string; + SHA256_ED25519?: string; + }; + /** + * @example [ + * "ssh-ed25519 ABCDEFGHIJKLMNOPQRSTUVWXYZ" + * ] + */ + ssh_keys?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + hooks?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + github_enterprise_importer?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + web?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + api?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + git?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + packages?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + pages?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + importer?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + actions?: string[]; + /** + * @example [ + * "192.0.2.1" + * ] + */ + dependabot?: string[]; + domains?: { + website?: string[]; + codespaces?: string[]; + copilot?: string[]; + packages?: string[]; + actions?: string[]; + }; + }; + "security-and-analysis": { + advanced_security?: { + /** @enum {string} */ + status?: "enabled" | "disabled"; + }; + /** @description Enable or disable Dependabot security updates for the repository. */ + dependabot_security_updates?: { + /** + * @description The enablement status of Dependabot security updates for the repository. + * @enum {string} + */ + status?: "enabled" | "disabled"; + }; + secret_scanning?: { + /** @enum {string} */ + status?: "enabled" | "disabled"; + }; + secret_scanning_push_protection?: { + /** @enum {string} */ + status?: "enabled" | "disabled"; + }; + } | null; + /** + * Minimal Repository + * @description Minimal Repository + */ + "minimal-repository": { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** @example Hello-World */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + owner: components["schemas"]["simple-user"]; + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + git_url?: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + ssh_url?: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + clone_url?: string; + mirror_url?: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + svn_url?: string; + homepage?: string | null; + language?: string | null; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + /** @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. */ + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + has_discussions?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at?: string | null; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + /** @example admin */ + role_name?: string; + temp_clone_token?: string; + delete_branch_on_merge?: boolean; + subscribers_count?: number; + network_count?: number; + code_of_conduct?: components["schemas"]["code-of-conduct"]; + license?: { + key?: string; + name?: string; + spdx_id?: string; + url?: string; + node_id?: string; + } | null; + /** @example 0 */ + forks?: number; + /** @example 0 */ + open_issues?: number; + /** @example 0 */ + watchers?: number; + allow_forking?: boolean; + /** @example false */ + web_commit_signoff_required?: boolean; + security_and_analysis?: components["schemas"]["security-and-analysis"]; + }; + /** + * Thread + * @description Thread + */ + thread: { + id: string; + repository: components["schemas"]["minimal-repository"]; + subject: { + title: string; + url: string; + latest_comment_url: string; + type: string; + }; + reason: string; + unread: boolean; + updated_at: string; + last_read_at: string | null; + url: string; + /** @example https://api.github.com/notifications/threads/2/subscription */ + subscription_url: string; + }; + /** + * Thread Subscription + * @description Thread Subscription + */ + "thread-subscription": { + /** @example true */ + subscribed: boolean; + ignored: boolean; + reason: string | null; + /** + * Format: date-time + * @example 2012-10-06T21:34:12Z + */ + created_at: string | null; + /** + * Format: uri + * @example https://api.github.com/notifications/threads/1/subscription + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/notifications/threads/1 + */ + thread_url?: string; + /** + * Format: uri + * @example https://api.github.com/repos/1 + */ + repository_url?: string; + }; + /** + * Organization Simple + * @description A GitHub organization. + */ + "organization-simple": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + }; + /** + * Organization Full + * @description Organization Full + */ + "organization-full": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + /** @example github */ + name?: string; + /** @example GitHub */ + company?: string; + /** + * Format: uri + * @example https://github.com/blog + */ + blog?: string; + /** @example San Francisco */ + location?: string; + /** + * Format: email + * @example octocat@github.com + */ + email?: string; + /** @example github */ + twitter_username?: string | null; + /** @example true */ + is_verified?: boolean; + /** @example true */ + has_organization_projects: boolean; + /** @example true */ + has_repository_projects: boolean; + /** @example 2 */ + public_repos: number; + /** @example 1 */ + public_gists: number; + /** @example 20 */ + followers: number; + /** @example 0 */ + following: number; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** @example Organization */ + type: string; + /** @example 100 */ + total_private_repos?: number; + /** @example 100 */ + owned_private_repos?: number; + /** @example 81 */ + private_gists?: number | null; + /** @example 10000 */ + disk_usage?: number | null; + /** @example 8 */ + collaborators?: number | null; + /** + * Format: email + * @example org@example.com + */ + billing_email?: string | null; + plan?: { + name: string; + space: number; + private_repos: number; + filled_seats?: number; + seats?: number; + }; + default_repository_permission?: string | null; + /** @example true */ + members_can_create_repositories?: boolean | null; + /** @example true */ + two_factor_requirement_enabled?: boolean | null; + /** @example all */ + members_allowed_repository_creation_type?: string; + /** @example true */ + members_can_create_public_repositories?: boolean; + /** @example true */ + members_can_create_private_repositories?: boolean; + /** @example true */ + members_can_create_internal_repositories?: boolean; + /** @example true */ + members_can_create_pages?: boolean; + /** @example true */ + members_can_create_public_pages?: boolean; + /** @example true */ + members_can_create_private_pages?: boolean; + /** @example false */ + members_can_fork_private_repositories?: boolean | null; + /** @example false */ + web_commit_signoff_required?: boolean; + /** + * @description Whether GitHub Advanced Security is enabled for new repositories and repositories transferred to this organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + advanced_security_enabled_for_new_repositories?: boolean; + /** + * @description Whether GitHub Advanced Security is automatically enabled for new repositories and repositories transferred to + * this organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + dependabot_alerts_enabled_for_new_repositories?: boolean; + /** + * @description Whether dependabot security updates are automatically enabled for new repositories and repositories transferred + * to this organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + dependabot_security_updates_enabled_for_new_repositories?: boolean; + /** + * @description Whether dependency graph is automatically enabled for new repositories and repositories transferred to this + * organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + dependency_graph_enabled_for_new_repositories?: boolean; + /** + * @description Whether secret scanning is automatically enabled for new repositories and repositories transferred to this + * organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + secret_scanning_enabled_for_new_repositories?: boolean; + /** + * @description Whether secret scanning push protection is automatically enabled for new repositories and repositories + * transferred to this organization. + * + * This field is only visible to organization owners or members of a team with the security manager role. + * @example false + */ + secret_scanning_push_protection_enabled_for_new_repositories?: boolean; + /** + * @description Whether a custom link is shown to contributors who are blocked from pushing a secret by push protection. + * @example false + */ + secret_scanning_push_protection_custom_link_enabled?: boolean; + /** + * @description An optional URL string to display to contributors who are blocked from pushing a secret. + * @example https://github.com/test-org/test-repo/blob/main/README.md + */ + secret_scanning_push_protection_custom_link?: string | null; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + archived_at: string | null; + }; + "actions-cache-usage-org-enterprise": { + /** @description The count of active caches across all repositories of an enterprise or an organization. */ + total_active_caches_count: number; + /** @description The total size in bytes of all active cache items across all repositories of an enterprise or an organization. */ + total_active_caches_size_in_bytes: number; + }; + /** + * Actions Cache Usage by repository + * @description GitHub Actions Cache Usage by repository. + */ + "actions-cache-usage-by-repository": { + /** + * @description The repository owner and name for the cache usage being shown. + * @example octo-org/Hello-World + */ + full_name: string; + /** + * @description The sum of the size in bytes of all the active cache items in the repository. + * @example 2322142 + */ + active_caches_size_in_bytes: number; + /** + * @description The number of active caches in the repository. + * @example 3 + */ + active_caches_count: number; + }; + /** + * Actions OIDC Subject customization + * @description Actions OIDC Subject customization + */ + "oidc-custom-sub": { + /** @description Array of unique strings. Each claim key can only contain alphanumeric characters and underscores. */ + include_claim_keys: string[]; + }; + /** + * Empty Object + * @description An object without any properties. + */ + "empty-object": Record; + /** + * @description The policy that controls the repositories in the organization that are allowed to run GitHub Actions. + * @enum {string} + */ + "enabled-repositories": "all" | "none" | "selected"; + /** + * @description The permissions policy that controls the actions and reusable workflows that are allowed to run. + * @enum {string} + */ + "allowed-actions": "all" | "local_only" | "selected"; + /** @description The API URL to use to get or set the actions and reusable workflows that are allowed to run, when `allowed_actions` is set to `selected`. */ + "selected-actions-url": string; + "actions-organization-permissions": { + enabled_repositories: components["schemas"]["enabled-repositories"]; + /** @description The API URL to use to get or set the selected repositories that are allowed to run GitHub Actions, when `enabled_repositories` is set to `selected`. */ + selected_repositories_url?: string; + allowed_actions?: components["schemas"]["allowed-actions"]; + selected_actions_url?: components["schemas"]["selected-actions-url"]; + }; + "selected-actions": { + /** @description Whether GitHub-owned actions are allowed. For example, this includes the actions in the `actions` organization. */ + github_owned_allowed?: boolean; + /** @description Whether actions from GitHub Marketplace verified creators are allowed. Set to `true` to allow all actions by GitHub Marketplace verified creators. */ + verified_allowed?: boolean; + /** + * @description Specifies a list of string-matching patterns to allow specific action(s) and reusable workflow(s). Wildcards, tags, and SHAs are allowed. For example, `monalisa/octocat@*`, `monalisa/octocat@v2`, `monalisa/*`. + * + * **Note**: The `patterns_allowed` setting only applies to public repositories. + */ + patterns_allowed?: string[]; + }; + /** + * @description The default workflow permissions granted to the GITHUB_TOKEN when running workflows. + * @enum {string} + */ + "actions-default-workflow-permissions": "read" | "write"; + /** @description Whether GitHub Actions can approve pull requests. Enabling this can be a security risk. */ + "actions-can-approve-pull-request-reviews": boolean; + "actions-get-default-workflow-permissions": { + default_workflow_permissions: components["schemas"]["actions-default-workflow-permissions"]; + can_approve_pull_request_reviews: components["schemas"]["actions-can-approve-pull-request-reviews"]; + }; + "actions-set-default-workflow-permissions": { + default_workflow_permissions?: components["schemas"]["actions-default-workflow-permissions"]; + can_approve_pull_request_reviews?: components["schemas"]["actions-can-approve-pull-request-reviews"]; + }; + /** + * Self hosted runner label + * @description A label for a self hosted runner + */ + "runner-label": { + /** @description Unique identifier of the label. */ + id?: number; + /** @description Name of the label. */ + name: string; + /** + * @description The type of label. Read-only labels are applied automatically when the runner is configured. + * @enum {string} + */ + type?: "read-only" | "custom"; + }; + /** + * Self hosted runners + * @description A self hosted runner + */ + runner: { + /** + * @description The id of the runner. + * @example 5 + */ + id: number; + /** + * @description The id of the runner group. + * @example 1 + */ + runner_group_id?: number; + /** + * @description The name of the runner. + * @example iMac + */ + name: string; + /** + * @description The Operating System of the runner. + * @example macos + */ + os: string; + /** + * @description The status of the runner. + * @example online + */ + status: string; + busy: boolean; + labels: components["schemas"]["runner-label"][]; + }; + /** + * Runner Application + * @description Runner Application + */ + "runner-application": { + os: string; + architecture: string; + download_url: string; + filename: string; + /** @description A short lived bearer token used to download the runner, if needed. */ + temp_download_token?: string; + sha256_checksum?: string; + }; + /** + * Authentication Token + * @description Authentication Token + */ + "authentication-token": { + /** + * @description The token used for authentication + * @example v1.1f699f1069f60xxx + */ + token: string; + /** + * Format: date-time + * @description The time this token expires + * @example 2016-07-11T22:14:10Z + */ + expires_at: string; + /** + * @example { + * "issues": "read", + * "deployments": "write" + * } + */ + permissions?: Record; + /** @description The repositories this token has access to */ + repositories?: components["schemas"]["repository"][]; + /** @example config.yaml */ + single_file?: string | null; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection?: "all" | "selected"; + }; + /** + * Actions Secret for an Organization + * @description Secrets for GitHub Actions for an organization. + */ + "organization-actions-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** + * @description Visibility of a secret + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @example https://api.github.com/organizations/org/secrets/my_secret/repositories + */ + selected_repositories_url?: string; + }; + /** + * ActionsPublicKey + * @description The public key used for setting Actions Secrets. + */ + "actions-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + /** @example 2 */ + id?: number; + /** @example https://api.github.com/user/keys/2 */ + url?: string; + /** @example ssh-rsa AAAAB3NzaC1yc2EAAA */ + title?: string; + /** @example 2011-01-26T19:01:12Z */ + created_at?: string; + }; + /** + * Actions Variable for an Organization + * @description Organization variable for GitHub Actions. + */ + "organization-actions-variable": { + /** + * @description The name of the variable. + * @example USERNAME + */ + name: string; + /** + * @description The value of the variable. + * @example octocat + */ + value: string; + /** + * Format: date-time + * @description The date and time at which the variable was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + * @example 2019-01-24T22:45:36.000Z + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the variable was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + * @example 2019-01-24T22:45:36.000Z + */ + updated_at: string; + /** + * @description Visibility of a variable + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @example https://api.github.com/organizations/org/variables/USERNAME/repositories + */ + selected_repositories_url?: string; + }; + /** @description The name of the tool used to generate the code scanning analysis. */ + "code-scanning-analysis-tool-name": string; + /** @description The GUID of the tool used to generate the code scanning analysis, if provided in the uploaded SARIF data. */ + "code-scanning-analysis-tool-guid": string | null; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + "code-scanning-alert-state-query": + | "open" + | "closed" + | "dismissed" + | "fixed"; + /** + * @description Severity of a code scanning alert. + * @enum {string} + */ + "code-scanning-alert-severity": + | "critical" + | "high" + | "medium" + | "low" + | "warning" + | "note" + | "error"; + /** + * Format: uri + * @description The REST API URL for fetching the list of instances for an alert. + */ + readonly "alert-instances-url": string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + "code-scanning-alert-state": "open" | "dismissed" | "fixed"; + /** + * @description **Required when the state is dismissed.** The reason for dismissing or closing the alert. + * @enum {string|null} + */ + "code-scanning-alert-dismissed-reason": + | null + | "false positive" + | "won't fix" + | "used in tests"; + /** @description The dismissal comment associated with the dismissal of the alert. */ + "code-scanning-alert-dismissed-comment": string | null; + "code-scanning-alert-rule-summary": { + /** @description A unique identifier for the rule used to detect the alert. */ + id?: string | null; + /** @description The name of the rule used to detect the alert. */ + name?: string; + /** @description A set of tags applicable for the rule. */ + tags?: string[] | null; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity?: "none" | "note" | "warning" | "error" | null; + /** + * @description The security severity of the alert. + * @enum {string|null} + */ + security_severity_level?: "low" | "medium" | "high" | "critical" | null; + /** @description A short description of the rule used to detect the alert. */ + description?: string; + }; + /** @description The version of the tool used to generate the code scanning analysis. */ + "code-scanning-analysis-tool-version": string | null; + "code-scanning-analysis-tool": { + name?: components["schemas"]["code-scanning-analysis-tool-name"]; + version?: components["schemas"]["code-scanning-analysis-tool-version"]; + guid?: components["schemas"]["code-scanning-analysis-tool-guid"]; + }; + /** + * @description The Git reference, formatted as `refs/pull//merge`, `refs/pull//head`, + * `refs/heads/` or simply ``. + */ + "code-scanning-ref": string; + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + "code-scanning-analysis-analysis-key": string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + "code-scanning-alert-environment": string; + /** @description Identifies the configuration under which the analysis was executed. Used to distinguish between multiple analyses for the same tool and commit, but performed on different languages or different parts of the code. */ + "code-scanning-analysis-category": string; + /** @description Describe a region within a file for the alert. */ + "code-scanning-alert-location": { + path?: string; + start_line?: number; + end_line?: number; + start_column?: number; + end_column?: number; + }; + /** + * @description A classification of the file. For example to identify it as generated. + * @enum {string|null} + */ + "code-scanning-alert-classification": + | "source" + | "generated" + | "test" + | "library" + | null; + "code-scanning-alert-instance": { + ref?: components["schemas"]["code-scanning-ref"]; + analysis_key?: components["schemas"]["code-scanning-analysis-analysis-key"]; + environment?: components["schemas"]["code-scanning-alert-environment"]; + category?: components["schemas"]["code-scanning-analysis-category"]; + state?: components["schemas"]["code-scanning-alert-state"]; + commit_sha?: string; + message?: { + text?: string; + }; + location?: components["schemas"]["code-scanning-alert-location"]; + html_url?: string; + /** + * @description Classifications that have been applied to the file that triggered the alert. + * For example identifying it as documentation, or a generated file. + */ + classifications?: components["schemas"]["code-scanning-alert-classification"][]; + }; + "code-scanning-organization-alert-items": { + number: components["schemas"]["alert-number"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["alert-updated-at"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + instances_url: components["schemas"]["alert-instances-url"]; + state: components["schemas"]["code-scanning-alert-state"]; + fixed_at?: components["schemas"]["alert-fixed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_reason: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + rule: components["schemas"]["code-scanning-alert-rule-summary"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + most_recent_instance: components["schemas"]["code-scanning-alert-instance"]; + repository: components["schemas"]["simple-repository"]; + }; + /** + * Codespace machine + * @description A description of the machine powering a codespace. + */ + "nullable-codespace-machine": { + /** + * @description The name of the machine. + * @example standardLinux + */ + name: string; + /** + * @description The display name of the machine includes cores, memory, and storage. + * @example 4 cores, 16 GB RAM, 64 GB storage + */ + display_name: string; + /** + * @description The operating system of the machine. + * @example linux + */ + operating_system: string; + /** + * @description How much storage is available to the codespace. + * @example 68719476736 + */ + storage_in_bytes: number; + /** + * @description How much memory is available to the codespace. + * @example 17179869184 + */ + memory_in_bytes: number; + /** + * @description How many cores are available to the codespace. + * @example 4 + */ + cpus: number; + /** + * @description Whether a prebuild is currently available when creating a codespace for this machine and repository. If a branch was not specified as a ref, the default branch will be assumed. Value will be "null" if prebuilds are not supported or prebuild availability could not be determined. Value will be "none" if no prebuild is available. Latest values "ready" and "in_progress" indicate the prebuild availability status. + * @example ready + * @enum {string|null} + */ + prebuild_availability: "none" | "ready" | "in_progress" | null; + } | null; + /** + * Codespace + * @description A codespace. + */ + codespace: { + /** @example 1 */ + id: number; + /** + * @description Automatically generated name of this codespace. + * @example monalisa-octocat-hello-world-g4wpq6h95q + */ + name: string; + /** + * @description Display name for this codespace. + * @example bookish space pancake + */ + display_name?: string | null; + /** + * @description UUID identifying this codespace's environment. + * @example 26a7c758-7299-4a73-b978-5a92a7ae98a0 + */ + environment_id: string | null; + owner: components["schemas"]["simple-user"]; + billable_owner: components["schemas"]["simple-user"]; + repository: components["schemas"]["minimal-repository"]; + machine: components["schemas"]["nullable-codespace-machine"]; + /** + * @description Path to devcontainer.json from repo root used to create Codespace. + * @example .devcontainer/example/devcontainer.json + */ + devcontainer_path?: string | null; + /** + * @description Whether the codespace was created from a prebuild. + * @example false + */ + prebuild: boolean | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @description Last known time this codespace was started. + * @example 2011-01-26T19:01:12Z + */ + last_used_at: string; + /** + * @description State of this codespace. + * @example Available + * @enum {string} + */ + state: + | "Unknown" + | "Created" + | "Queued" + | "Provisioning" + | "Available" + | "Awaiting" + | "Unavailable" + | "Deleted" + | "Moved" + | "Shutdown" + | "Archived" + | "Starting" + | "ShuttingDown" + | "Failed" + | "Exporting" + | "Updating" + | "Rebuilding"; + /** + * Format: uri + * @description API URL for this codespace. + */ + url: string; + /** @description Details about the codespace's git repository. */ + git_status: { + /** + * @description The number of commits the local repository is ahead of the remote. + * @example 0 + */ + ahead?: number; + /** + * @description The number of commits the local repository is behind the remote. + * @example 0 + */ + behind?: number; + /** @description Whether the local repository has unpushed changes. */ + has_unpushed_changes?: boolean; + /** @description Whether the local repository has uncommitted changes. */ + has_uncommitted_changes?: boolean; + /** + * @description The current branch (or SHA if in detached HEAD state) of the local repository. + * @example main + */ + ref?: string; + }; + /** + * @description The initally assigned location of a new codespace. + * @example WestUs2 + * @enum {string} + */ + location: "EastUs" | "SouthEastAsia" | "WestEurope" | "WestUs2"; + /** + * @description The number of minutes of inactivity after which this codespace will be automatically stopped. + * @example 60 + */ + idle_timeout_minutes: number | null; + /** + * Format: uri + * @description URL to access this codespace on the web. + */ + web_url: string; + /** + * Format: uri + * @description API URL to access available alternate machine types for this codespace. + */ + machines_url: string; + /** + * Format: uri + * @description API URL to start this codespace. + */ + start_url: string; + /** + * Format: uri + * @description API URL to stop this codespace. + */ + stop_url: string; + /** + * Format: uri + * @description API URL to publish this codespace to a new repository. + */ + publish_url?: string | null; + /** + * Format: uri + * @description API URL for the Pull Request associated with this codespace, if any. + */ + pulls_url: string | null; + recent_folders: string[]; + runtime_constraints?: { + /** @description The privacy settings a user can select from when forwarding a port. */ + allowed_port_privacy_settings?: string[] | null; + }; + /** @description Whether or not a codespace has a pending async operation. This would mean that the codespace is temporarily unavailable. The only thing that you can do with a codespace in this state is delete it. */ + pending_operation?: boolean | null; + /** @description Text to show user when codespace is disabled by a pending operation */ + pending_operation_disabled_reason?: string | null; + /** @description Text to show user when codespace idle timeout minutes has been overriden by an organization policy */ + idle_timeout_notice?: string | null; + /** + * @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). + * @example 60 + */ + retention_period_minutes?: number | null; + /** + * Format: date-time + * @description When a codespace will be auto-deleted based on the "retention_period_minutes" and "last_used_at" + * @example 2011-01-26T20:01:12Z + */ + retention_expires_at?: string | null; + /** + * @description The text to display to a user when a codespace has been stopped for a potentially actionable reason. + * @example you've used 100% of your spending limit for Codespaces + */ + last_known_stop_notice?: string | null; + }; + /** + * Codespaces Secret + * @description Secrets for a GitHub Codespace. + */ + "codespaces-org-secret": { + /** + * @description The name of the secret + * @example SECRET_NAME + */ + name: string; + /** + * Format: date-time + * @description The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + updated_at: string; + /** + * @description The type of repositories in the organization that the secret is visible to + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @description The API URL at which the list of repositories this secret is visible to can be retrieved + * @example https://api.github.com/orgs/ORGANIZATION/codespaces/secrets/SECRET_NAME/repositories + */ + selected_repositories_url?: string; + }; + /** + * CodespacesPublicKey + * @description The public key used for setting Codespaces secrets. + */ + "codespaces-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + /** @example 2 */ + id?: number; + /** @example https://api.github.com/user/keys/2 */ + url?: string; + /** @example ssh-rsa AAAAB3NzaC1yc2EAAA */ + title?: string; + /** @example 2011-01-26T19:01:12Z */ + created_at?: string; + }; + /** + * Copilot Business Seat Breakdown + * @description The breakdown of Copilot Business seats for the organization. + */ + "copilot-seat-breakdown": { + /** @description The total number of seats being billed for the organization as of the current billing cycle. */ + total?: number; + /** @description Seats added during the current billing cycle. */ + added_this_cycle?: number; + /** @description The number of seats that are pending cancellation at the end of the current billing cycle. */ + pending_cancellation?: number; + /** @description The number of seats that have been assigned to users that have not yet accepted an invitation to this organization. */ + pending_invitation?: number; + /** @description The number of seats that have used Copilot during the current billing cycle. */ + active_this_cycle?: number; + /** @description The number of seats that have not used Copilot during the current billing cycle. */ + inactive_this_cycle?: number; + }; + /** + * Copilot Business Organization Details + * @description Information about the seat breakdown and policies set for an organization with a Copilot Business subscription. + */ + "copilot-organization-details": { + seat_breakdown: components["schemas"]["copilot-seat-breakdown"]; + /** + * @description The organization policy for allowing or disallowing Copilot to make suggestions that match public code. + * @enum {string} + */ + public_code_suggestions: "allow" | "block" | "unconfigured" | "unknown"; + /** + * @description The organization policy for allowing or disallowing organization members to use Copilot Chat within their editor. + * @enum {string} + */ + ide_chat?: "enabled" | "disabled" | "unconfigured"; + /** + * @description The organization policy for allowing or disallowing organization members to use Copilot features within github.com. + * @enum {string} + */ + platform_chat?: "enabled" | "disabled" | "unconfigured"; + /** + * @description The organization policy for allowing or disallowing organization members to use Copilot within their CLI. + * @enum {string} + */ + cli?: "enabled" | "disabled" | "unconfigured"; + /** + * @description The mode of assigning new seats. + * @enum {string} + */ + seat_management_setting: + | "assign_all" + | "assign_selected" + | "disabled" + | "unconfigured"; + [key: string]: unknown; + }; + /** + * Team Simple + * @description Groups of organization members that gives permissions on specified repositories. + */ + "nullable-team-simple": { + /** + * @description Unique identifier of the team + * @example 1 + */ + id: number; + /** @example MDQ6VGVhbTE= */ + node_id: string; + /** + * Format: uri + * @description URL for the team + * @example https://api.github.com/organizations/1/team/1 + */ + url: string; + /** @example https://api.github.com/organizations/1/team/1/members{/member} */ + members_url: string; + /** + * @description Name of the team + * @example Justice League + */ + name: string; + /** + * @description Description of the team + * @example A great team. + */ + description: string | null; + /** + * @description Permission that the team will have for its repositories + * @example admin + */ + permission: string; + /** + * @description The level of privacy this team should have + * @example closed + */ + privacy?: string; + /** + * @description The notification setting the team has set + * @example notifications_enabled + */ + notification_setting?: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/1/repos + */ + repositories_url: string; + /** @example justice-league */ + slug: string; + /** + * @description Distinguished Name (DN) that team maps to within LDAP environment + * @example uid=example,ou=users,dc=github,dc=com + */ + ldap_dn?: string; + } | null; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + id: number; + node_id: string; + name: string; + slug: string; + description: string | null; + privacy?: string; + notification_setting?: string; + permission: string; + permissions?: { + pull: boolean; + triage: boolean; + push: boolean; + maintain: boolean; + admin: boolean; + }; + /** Format: uri */ + url: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + members_url: string; + /** Format: uri */ + repositories_url: string; + parent: components["schemas"]["nullable-team-simple"]; + }; + /** + * Organization + * @description GitHub account for managing multiple users, teams, and repositories + */ + organization: { + /** + * @description Unique login name of the organization + * @example new-org + */ + login: string; + /** + * Format: uri + * @description URL for the organization + * @example https://api.github.com/orgs/github + */ + url: string; + id: number; + node_id: string; + /** Format: uri */ + repos_url: string; + /** Format: uri */ + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string | null; + /** + * Format: uri + * @description Display blog url for the organization + * @example blog.example-org.com + */ + blog?: string; + /** Format: uri */ + html_url: string; + /** + * @description Display name for the organization + * @example New Org + */ + name?: string; + /** + * @description Display company name for the organization + * @example Acme corporation + */ + company?: string; + /** + * @description Display location for the organization + * @example Berlin, Germany + */ + location?: string; + /** + * Format: email + * @description Display email for the organization + * @example org@example.com + */ + email?: string; + /** @description Specifies if organization projects are enabled for this org */ + has_organization_projects: boolean; + /** @description Specifies if repository projects are enabled for repositories that belong to this org */ + has_repository_projects: boolean; + is_verified?: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + type: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + plan?: { + name?: string; + space?: number; + private_repos?: number; + filled_seats?: number; + seats?: number; + }; + }; + /** + * Copilot Business Seat Detail + * @description Information about a Copilot Business seat assignment for a user, team, or organization. + */ + "copilot-seat-details": { + /** @description The assignee that has been granted access to GitHub Copilot. */ + assignee: { + [key: string]: unknown; + } & ( + | components["schemas"]["simple-user"] + | components["schemas"]["team"] + | components["schemas"]["organization"] + ); + /** @description The team that granted access to GitHub Copilot to the assignee. This will be null if the user was assigned a seat individually. */ + assigning_team?: components["schemas"]["team"] | null; + /** + * Format: date + * @description The pending cancellation date for the seat, in `YYYY-MM-DD` format. This will be null unless the assignee's Copilot access has been canceled during the current billing cycle. If the seat has been cancelled, this corresponds to the start of the organization's next billing cycle. + */ + pending_cancellation_date?: string | null; + /** + * Format: date-time + * @description Timestamp of user's last GitHub Copilot activity, in ISO 8601 format. + */ + last_activity_at?: string | null; + /** @description Last editor that was used by the user for a GitHub Copilot completion. */ + last_activity_editor?: string | null; + /** + * Format: date-time + * @description Timestamp of when the assignee was last granted access to GitHub Copilot, in ISO 8601 format. + */ + created_at: string; + /** + * Format: date-time + * @description Timestamp of when the assignee's GitHub Copilot access was last updated, in ISO 8601 format. + */ + updated_at?: string; + }; + /** + * Dependabot Secret for an Organization + * @description Secrets for GitHub Dependabot for an organization. + */ + "organization-dependabot-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** + * @description Visibility of a secret + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @example https://api.github.com/organizations/org/dependabot/secrets/my_secret/repositories + */ + selected_repositories_url?: string; + }; + /** + * DependabotPublicKey + * @description The public key used for setting Dependabot Secrets. + */ + "dependabot-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + }; + /** + * Minimal Repository + * @description Minimal Repository + */ + "nullable-minimal-repository": { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** @example Hello-World */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + owner: components["schemas"]["simple-user"]; + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + git_url?: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + ssh_url?: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + clone_url?: string; + mirror_url?: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + svn_url?: string; + homepage?: string | null; + language?: string | null; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + /** @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. */ + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + has_discussions?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at?: string | null; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + /** @example admin */ + role_name?: string; + temp_clone_token?: string; + delete_branch_on_merge?: boolean; + subscribers_count?: number; + network_count?: number; + code_of_conduct?: components["schemas"]["code-of-conduct"]; + license?: { + key?: string; + name?: string; + spdx_id?: string; + url?: string; + node_id?: string; + } | null; + /** @example 0 */ + forks?: number; + /** @example 0 */ + open_issues?: number; + /** @example 0 */ + watchers?: number; + allow_forking?: boolean; + /** @example false */ + web_commit_signoff_required?: boolean; + security_and_analysis?: components["schemas"]["security-and-analysis"]; + } | null; + /** + * Package + * @description A software package + */ + package: { + /** + * @description Unique identifier of the package. + * @example 1 + */ + id: number; + /** + * @description The name of the package. + * @example super-linter + */ + name: string; + /** + * @example docker + * @enum {string} + */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** @example https://api.github.com/orgs/github/packages/container/super-linter */ + url: string; + /** @example https://github.com/orgs/github/packages/container/package/super-linter */ + html_url: string; + /** + * @description The number of versions of the package. + * @example 1 + */ + version_count: number; + /** + * @example private + * @enum {string} + */ + visibility: "private" | "public"; + owner?: components["schemas"]["nullable-simple-user"]; + repository?: components["schemas"]["nullable-minimal-repository"]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Organization Invitation + * @description Organization Invitation + */ + "organization-invitation": { + id: number; + login: string | null; + email: string | null; + role: string; + created_at: string; + failed_at?: string | null; + failed_reason?: string | null; + inviter: components["schemas"]["simple-user"]; + team_count: number; + /** @example "MDIyOk9yZ2FuaXphdGlvbkludml0YXRpb24x" */ + node_id: string; + /** @example "https://api.github.com/organizations/16/invitations/1/teams" */ + invitation_teams_url: string; + /** @example "member" */ + invitation_source?: string; + }; + /** + * Org Hook + * @description Org Hook + */ + "org-hook": { + /** @example 1 */ + id: number; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/hooks/1 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/hooks/1/pings + */ + ping_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/hooks/1/deliveries + */ + deliveries_url?: string; + /** @example web */ + name: string; + /** + * @example [ + * "push", + * "pull_request" + * ] + */ + events: string[]; + /** @example true */ + active: boolean; + config: { + /** @example "http://example.com/2" */ + url?: string; + /** @example "0" */ + insecure_ssl?: string; + /** @example "form" */ + content_type?: string; + /** @example "********" */ + secret?: string; + }; + /** + * Format: date-time + * @example 2011-09-06T20:39:23Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-09-06T17:26:27Z + */ + created_at: string; + type: string; + }; + /** + * @description The type of GitHub user that can comment, open issues, or create pull requests while the interaction limit is in effect. + * @example collaborators_only + * @enum {string} + */ + "interaction-group": + | "existing_users" + | "contributors_only" + | "collaborators_only"; + /** + * Interaction Limits + * @description Interaction limit settings. + */ + "interaction-limit-response": { + limit: components["schemas"]["interaction-group"]; + /** @example repository */ + origin: string; + /** + * Format: date-time + * @example 2018-08-17T04:18:39Z + */ + expires_at: string; + }; + /** + * @description The duration of the interaction restriction. Default: `one_day`. + * @example one_month + * @enum {string} + */ + "interaction-expiry": + | "one_day" + | "three_days" + | "one_week" + | "one_month" + | "six_months"; + /** + * Interaction Restrictions + * @description Limit interactions to a specific type of user for a specified duration + */ + "interaction-limit": { + limit: components["schemas"]["interaction-group"]; + expiry?: components["schemas"]["interaction-expiry"]; + }; + /** + * Org Membership + * @description Org Membership + */ + "org-membership": { + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/memberships/defunkt + */ + url: string; + /** + * @description The state of the member in the organization. The `pending` state indicates the user has not yet accepted an invitation. + * @example active + * @enum {string} + */ + state: "active" | "pending"; + /** + * @description The user's membership type in the organization. + * @example admin + * @enum {string} + */ + role: "admin" | "member" | "billing_manager"; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat + */ + organization_url: string; + organization: components["schemas"]["organization-simple"]; + user: components["schemas"]["nullable-simple-user"]; + permissions?: { + can_create_repository: boolean; + }; + }; + /** + * Migration + * @description A migration. + */ + migration: { + /** @example 79 */ + id: number; + owner: components["schemas"]["nullable-simple-user"]; + /** @example 0b989ba4-242f-11e5-81e1-c7b6966d2516 */ + guid: string; + /** @example pending */ + state: string; + /** @example true */ + lock_repositories: boolean; + exclude_metadata: boolean; + exclude_git_data: boolean; + exclude_attachments: boolean; + exclude_releases: boolean; + exclude_owner_projects: boolean; + org_metadata_only: boolean; + /** @description The repositories included in the migration. Only returned for export migrations. */ + repositories: components["schemas"]["repository"][]; + /** + * Format: uri + * @example https://api.github.com/orgs/octo-org/migrations/79 + */ + url: string; + /** + * Format: date-time + * @example 2015-07-06T15:33:38-07:00 + */ + created_at: string; + /** + * Format: date-time + * @example 2015-07-06T15:33:38-07:00 + */ + updated_at: string; + node_id: string; + /** Format: uri */ + archive_url?: string; + /** @description Exclude related items from being returned in the response in order to improve performance of the request. The array can include any of: `"repositories"`. */ + exclude?: string[]; + }; + /** + * Organization Fine-Grained Permission + * @description A fine-grained permission that protects organization resources. + */ + "organization-fine-grained-permission": { + name: string; + description: string; + }; + /** + * Organization Role + * @description Organization roles + */ + "organization-role": { + /** @description The unique identifier of the role. */ + id: number; + /** @description The name of the role. */ + name: string; + /** @description A short description about who this role is for or what permissions it grants. */ + description?: string | null; + /** @description A list of permissions included in this role. */ + permissions: string[]; + organization: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The date and time the role was created. + */ + created_at: string; + /** + * Format: date-time + * @description The date and time the role was last updated. + */ + updated_at: string; + }; + /** + * Package Version + * @description A version of a software package + */ + "package-version": { + /** + * @description Unique identifier of the package version. + * @example 1 + */ + id: number; + /** + * @description The name of the package version. + * @example latest + */ + name: string; + /** @example https://api.github.com/orgs/github/packages/container/super-linter/versions/786068 */ + url: string; + /** @example https://github.com/orgs/github/packages/container/package/super-linter */ + package_html_url: string; + /** @example https://github.com/orgs/github/packages/container/super-linter/786068 */ + html_url?: string; + /** @example MIT */ + license?: string; + description?: string; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + deleted_at?: string; + /** Package Version Metadata */ + metadata?: { + /** + * @example docker + * @enum {string} + */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** Container Metadata */ + container?: { + tags: string[]; + }; + /** Docker Metadata */ + docker?: { + tag?: string[]; + }; + }; + }; + /** + * Simple Organization Programmatic Access Grant Request + * @description Minimal representation of an organization programmatic access grant request for enumerations + */ + "organization-programmatic-access-grant-request": { + /** @description Unique identifier of the request for access via fine-grained personal access token. The `pat_request_id` used to review PAT requests. */ + id: number; + /** @description Reason for requesting access. */ + reason: string | null; + owner: components["schemas"]["simple-user"]; + /** + * @description Type of repository selection requested. + * @enum {string} + */ + repository_selection: "none" | "all" | "subset"; + /** @description URL to the list of repositories requested to be accessed via fine-grained personal access token. Should only be followed when `repository_selection` is `subset`. */ + repositories_url: string; + /** @description Permissions requested, categorized by type of permission. */ + permissions: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** @description Date and time when the request for access was created. */ + created_at: string; + /** @description Whether the associated fine-grained personal access token has expired. */ + token_expired: boolean; + /** @description Date and time when the associated fine-grained personal access token expires. */ + token_expires_at: string | null; + /** @description Date and time when the associated fine-grained personal access token was last used for authentication. */ + token_last_used_at: string | null; + }; + /** + * Organization Programmatic Access Grant + * @description Minimal representation of an organization programmatic access grant for enumerations + */ + "organization-programmatic-access-grant": { + /** @description Unique identifier of the fine-grained personal access token. The `pat_id` used to get details about an approved fine-grained personal access token. */ + id: number; + owner: components["schemas"]["simple-user"]; + /** + * @description Type of repository selection requested. + * @enum {string} + */ + repository_selection: "none" | "all" | "subset"; + /** @description URL to the list of repositories the fine-grained personal access token can access. Only follow when `repository_selection` is `subset`. */ + repositories_url: string; + /** @description Permissions requested, categorized by type of permission. */ + permissions: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** @description Date and time when the fine-grained personal access token was approved to access the organization. */ + access_granted_at: string; + /** @description Whether the associated fine-grained personal access token has expired. */ + token_expired: boolean; + /** @description Date and time when the associated fine-grained personal access token expires. */ + token_expires_at: string | null; + /** @description Date and time when the associated fine-grained personal access token was last used for authentication. */ + token_last_used_at: string | null; + }; + /** + * Project + * @description Projects are a way to organize columns and cards of work. + */ + project: { + /** + * Format: uri + * @example https://api.github.com/repos/api-playground/projects-test + */ + owner_url: string; + /** + * Format: uri + * @example https://api.github.com/projects/1002604 + */ + url: string; + /** + * Format: uri + * @example https://github.com/api-playground/projects-test/projects/12 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/projects/1002604/columns + */ + columns_url: string; + /** @example 1002604 */ + id: number; + /** @example MDc6UHJvamVjdDEwMDI2MDQ= */ + node_id: string; + /** + * @description Name of the project + * @example Week One Sprint + */ + name: string; + /** + * @description Body of the project + * @example This project represents the sprint of the first week in January + */ + body: string | null; + /** @example 1 */ + number: number; + /** + * @description State of the project; either 'open' or 'closed' + * @example open + */ + state: string; + creator: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * @description The baseline permission that all organization members have on this project. Only present if owner is an organization. + * @enum {string} + */ + organization_permission?: "read" | "write" | "admin" | "none"; + /** @description Whether or not this project can be seen by everyone. Only present if owner is an organization. */ + private?: boolean; + }; + /** + * Organization Custom Property + * @description Custom property defined on an organization + */ + "org-custom-property": { + /** @description The name of the property */ + property_name: string; + /** + * @description The type of the value for the property + * @example single_select + * @enum {string} + */ + value_type: "string" | "single_select"; + /** @description Whether the property is required. */ + required?: boolean; + /** @description Default value of the property */ + default_value?: string | null; + /** @description Short description of the property */ + description?: string | null; + /** + * @description An ordered list of the allowed values of the property. + * The property can have up to 200 allowed values. + */ + allowed_values?: string[] | null; + /** + * @description Who can edit the values of the property + * @example org_actors + * @enum {string|null} + */ + values_editable_by?: "org_actors" | "org_and_repo_actors" | null; + }; + /** + * Custom Property Value + * @description Custom property name and associated value + */ + "custom-property-value": { + /** @description The name of the property */ + property_name: string; + /** @description The value assigned to the property */ + value: string | string[] | null; + }; + /** + * Organization Repository Custom Property Values + * @description List of custom property values for a repository + */ + "org-repo-custom-property-values": { + /** @example 1296269 */ + repository_id: number; + /** @example Hello-World */ + repository_name: string; + /** @example octocat/Hello-World */ + repository_full_name: string; + /** @description List of custom property names and associated values */ + properties: components["schemas"]["custom-property-value"][]; + }; + /** + * Repository + * @description A repository on GitHub. + */ + "nullable-repository": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @deprecated + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + */ + web_commit_signoff_required?: boolean; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + /** @description Whether anonymous git access is enabled for this repository */ + anonymous_access_enabled?: boolean; + } | null; + /** + * Code Of Conduct Simple + * @description Code of Conduct Simple + */ + "code-of-conduct-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/github/docs/community/code_of_conduct + */ + url: string; + /** @example citizen_code_of_conduct */ + key: string; + /** @example Citizen Code of Conduct */ + name: string; + /** + * Format: uri + * @example https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md + */ + html_url: string | null; + }; + /** + * Full Repository + * @description Full Repository + */ + "full-repository": { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** @example Hello-World */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + owner: components["schemas"]["simple-user"]; + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** @example master */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** @example true */ + is_template?: boolean; + /** + * @example [ + * "octocat", + * "atom", + * "electron", + * "API" + * ] + */ + topics?: string[]; + /** @example true */ + has_issues: boolean; + /** @example true */ + has_projects: boolean; + /** @example true */ + has_wiki: boolean; + has_pages: boolean; + /** @example true */ + has_downloads?: boolean; + /** @example true */ + has_discussions: boolean; + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @example public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + /** @example true */ + allow_rebase_merge?: boolean; + template_repository?: components["schemas"]["nullable-repository"]; + temp_clone_token?: string | null; + /** @example true */ + allow_squash_merge?: boolean; + /** @example false */ + allow_auto_merge?: boolean; + /** @example false */ + delete_branch_on_merge?: boolean; + /** @example true */ + allow_merge_commit?: boolean; + /** @example true */ + allow_update_branch?: boolean; + /** @example false */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @example PR_TITLE + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @example PR_BODY + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @example PR_TITLE + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @example PR_BODY + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** @example true */ + allow_forking?: boolean; + /** @example false */ + web_commit_signoff_required?: boolean; + /** @example 42 */ + subscribers_count: number; + /** @example 0 */ + network_count: number; + license: components["schemas"]["nullable-license-simple"]; + organization?: components["schemas"]["nullable-simple-user"]; + parent?: components["schemas"]["repository"]; + source?: components["schemas"]["repository"]; + forks: number; + master_branch?: string; + open_issues: number; + watchers: number; + /** + * @description Whether anonymous git access is allowed. + * @default true + */ + anonymous_access_enabled?: boolean; + code_of_conduct?: components["schemas"]["code-of-conduct-simple"]; + security_and_analysis?: components["schemas"]["security-and-analysis"]; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + }; + /** + * @description The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise). + * @enum {string} + */ + "repository-rule-enforcement": "disabled" | "active" | "evaluate"; + /** + * Repository Ruleset Bypass Actor + * @description An actor that can bypass rules in a ruleset + */ + "repository-ruleset-bypass-actor": { + /** @description The ID of the actor that can bypass a ruleset. If `actor_type` is `OrganizationAdmin`, this should be `1`. */ + actor_id: number; + /** + * @description The type of actor that can bypass a ruleset + * @enum {string} + */ + actor_type: + | "RepositoryRole" + | "Team" + | "Integration" + | "OrganizationAdmin"; + /** + * @description When the specified actor can bypass the ruleset. `pull_request` means that an actor can only bypass rules on pull requests. + * @enum {string} + */ + bypass_mode: "always" | "pull_request"; + }; + /** + * Repository ruleset conditions for ref names + * @description Parameters for a repository ruleset ref name condition + */ + "repository-ruleset-conditions": { + ref_name?: { + /** @description Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches. */ + include?: string[]; + /** @description Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match. */ + exclude?: string[]; + }; + }; + /** + * Repository ruleset conditions for repository names + * @description Parameters for a repository name condition + */ + "repository-ruleset-conditions-repository-name-target": { + repository_name: { + /** @description Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~ALL` to include all repositories. */ + include?: string[]; + /** @description Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match. */ + exclude?: string[]; + /** @description Whether renaming of target repositories is prevented. */ + protected?: boolean; + }; + }; + /** + * Repository ruleset conditions for repository IDs + * @description Parameters for a repository ID condition + */ + "repository-ruleset-conditions-repository-id-target": { + repository_id: { + /** @description The repository IDs that the ruleset applies to. One of these IDs must match for the condition to pass. */ + repository_ids?: number[]; + }; + }; + /** + * Repository ruleset property targeting definition + * @description Parameters for a targeting a repository property + */ + "repository-ruleset-conditions-repository-property-spec": { + /** @description The name of the repository property to target */ + name: string; + /** @description The values to match for the repository property */ + property_values: string[]; + }; + /** + * Repository ruleset conditions for repository properties + * @description Parameters for a repository property condition + */ + "repository-ruleset-conditions-repository-property-target": { + repository_property: { + /** @description The repository properties and values to include. All of these properties must match for the condition to pass. */ + include?: components["schemas"]["repository-ruleset-conditions-repository-property-spec"][]; + /** @description The repository properties and values to exclude. The condition will not pass if any of these properties match. */ + exclude?: components["schemas"]["repository-ruleset-conditions-repository-property-spec"][]; + }; + }; + /** + * Organization ruleset conditions + * @description Conditions for an organization ruleset. The conditions object should contain both `repository_name` and `ref_name` properties or both `repository_id` and `ref_name` properties. + */ + "org-ruleset-conditions": + | (components["schemas"]["repository-ruleset-conditions"] & + components["schemas"]["repository-ruleset-conditions-repository-name-target"]) + | (components["schemas"]["repository-ruleset-conditions"] & + components["schemas"]["repository-ruleset-conditions-repository-id-target"]) + | (components["schemas"]["repository-ruleset-conditions"] & + components["schemas"]["repository-ruleset-conditions-repository-property-target"]); + /** + * creation + * @description Only allow users with bypass permission to create matching refs. + */ + "repository-rule-creation": { + /** @enum {string} */ + type: "creation"; + }; + /** + * update + * @description Only allow users with bypass permission to update matching refs. + */ + "repository-rule-update": { + /** @enum {string} */ + type: "update"; + parameters?: { + /** @description Branch can pull changes from its upstream repository */ + update_allows_fetch_and_merge: boolean; + }; + }; + /** + * deletion + * @description Only allow users with bypass permissions to delete matching refs. + */ + "repository-rule-deletion": { + /** @enum {string} */ + type: "deletion"; + }; + /** + * required_linear_history + * @description Prevent merge commits from being pushed to matching refs. + */ + "repository-rule-required-linear-history": { + /** @enum {string} */ + type: "required_linear_history"; + }; + /** + * required_deployments + * @description Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule. + */ + "repository-rule-required-deployments": { + /** @enum {string} */ + type: "required_deployments"; + parameters?: { + /** @description The environments that must be successfully deployed to before branches can be merged. */ + required_deployment_environments: string[]; + }; + }; + /** + * required_signatures + * @description Commits pushed to matching refs must have verified signatures. + */ + "repository-rule-required-signatures": { + /** @enum {string} */ + type: "required_signatures"; + }; + /** + * pull_request + * @description Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. + */ + "repository-rule-pull-request": { + /** @enum {string} */ + type: "pull_request"; + parameters?: { + /** @description New, reviewable commits pushed will dismiss previous pull request review approvals. */ + dismiss_stale_reviews_on_push: boolean; + /** @description Require an approving review in pull requests that modify files that have a designated code owner. */ + require_code_owner_review: boolean; + /** @description Whether the most recent reviewable push must be approved by someone other than the person who pushed it. */ + require_last_push_approval: boolean; + /** @description The number of approving reviews that are required before a pull request can be merged. */ + required_approving_review_count: number; + /** @description All conversations on code must be resolved before a pull request can be merged. */ + required_review_thread_resolution: boolean; + }; + }; + /** + * StatusCheckConfiguration + * @description Required status check + */ + "repository-rule-params-status-check-configuration": { + /** @description The status check context name that must be present on the commit. */ + context: string; + /** @description The optional integration ID that this status check must originate from. */ + integration_id?: number; + }; + /** + * required_status_checks + * @description Choose which status checks must pass before the ref is updated. When enabled, commits must first be pushed to another ref where the checks pass. + */ + "repository-rule-required-status-checks": { + /** @enum {string} */ + type: "required_status_checks"; + parameters?: { + /** @description Status checks that are required. */ + required_status_checks: components["schemas"]["repository-rule-params-status-check-configuration"][]; + /** @description Whether pull requests targeting a matching branch must be tested with the latest code. This setting will not take effect unless at least one status check is enabled. */ + strict_required_status_checks_policy: boolean; + }; + }; + /** + * non_fast_forward + * @description Prevent users with push access from force pushing to refs. + */ + "repository-rule-non-fast-forward": { + /** @enum {string} */ + type: "non_fast_forward"; + }; + /** + * commit_message_pattern + * @description Parameters to be used for the commit_message_pattern rule + */ + "repository-rule-commit-message-pattern": { + /** @enum {string} */ + type: "commit_message_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * commit_author_email_pattern + * @description Parameters to be used for the commit_author_email_pattern rule + */ + "repository-rule-commit-author-email-pattern": { + /** @enum {string} */ + type: "commit_author_email_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * committer_email_pattern + * @description Parameters to be used for the committer_email_pattern rule + */ + "repository-rule-committer-email-pattern": { + /** @enum {string} */ + type: "committer_email_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * branch_name_pattern + * @description Parameters to be used for the branch_name_pattern rule + */ + "repository-rule-branch-name-pattern": { + /** @enum {string} */ + type: "branch_name_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * tag_name_pattern + * @description Parameters to be used for the tag_name_pattern rule + */ + "repository-rule-tag-name-pattern": { + /** @enum {string} */ + type: "tag_name_pattern"; + parameters?: { + /** @description How this rule will appear to users. */ + name?: string; + /** @description If true, the rule will fail if the pattern matches. */ + negate?: boolean; + /** + * @description The operator to use for matching. + * @enum {string} + */ + operator: "starts_with" | "ends_with" | "contains" | "regex"; + /** @description The pattern to match with. */ + pattern: string; + }; + }; + /** + * RestrictedCommits + * @description Restricted commit + */ + "repository-rule-params-restricted-commits": { + /** @description Full or abbreviated commit hash to reject */ + oid: string; + /** @description Reason for restriction */ + reason?: string; + }; + /** + * WorkflowFileReference + * @description A workflow that must run for this rule to pass + */ + "repository-rule-params-workflow-file-reference": { + /** @description The path to the workflow file */ + path: string; + /** @description The ref (branch or tag) of the workflow file to use */ + ref?: string; + /** @description The ID of the repository where the workflow is defined */ + repository_id: number; + /** @description The commit SHA of the workflow file to use */ + sha?: string; + }; + /** + * workflows + * @description Require all changes made to a targeted branch to pass the specified workflows before they can be merged. + */ + "repository-rule-workflows": { + /** @enum {string} */ + type: "workflows"; + parameters?: { + /** @description Workflows that must pass for this rule to pass. */ + workflows: components["schemas"]["repository-rule-params-workflow-file-reference"][]; + }; + }; + /** + * Repository Rule + * @description A repository rule. + */ + "repository-rule": + | components["schemas"]["repository-rule-creation"] + | components["schemas"]["repository-rule-update"] + | components["schemas"]["repository-rule-deletion"] + | components["schemas"]["repository-rule-required-linear-history"] + | components["schemas"]["repository-rule-required-deployments"] + | components["schemas"]["repository-rule-required-signatures"] + | components["schemas"]["repository-rule-pull-request"] + | components["schemas"]["repository-rule-required-status-checks"] + | components["schemas"]["repository-rule-non-fast-forward"] + | components["schemas"]["repository-rule-commit-message-pattern"] + | components["schemas"]["repository-rule-commit-author-email-pattern"] + | components["schemas"]["repository-rule-committer-email-pattern"] + | components["schemas"]["repository-rule-branch-name-pattern"] + | components["schemas"]["repository-rule-tag-name-pattern"] + | components["schemas"]["repository-rule-workflows"]; + /** + * Repository ruleset + * @description A set of rules to apply when specified conditions are met. + */ + "repository-ruleset": { + /** @description The ID of the ruleset */ + id: number; + /** @description The name of the ruleset */ + name: string; + /** + * @description The target of the ruleset + * @enum {string} + */ + target?: "branch" | "tag"; + /** + * @description The type of the source of the ruleset + * @enum {string} + */ + source_type?: "Repository" | "Organization"; + /** @description The name of the source */ + source: string; + enforcement: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + /** + * @description The bypass type of the user making the API request for this ruleset. This field is only returned when + * querying the repository-level endpoint. + * @enum {string} + */ + current_user_can_bypass?: "always" | "pull_requests_only" | "never"; + node_id?: string; + _links?: { + self?: { + /** @description The URL of the ruleset */ + href?: string; + }; + html?: { + /** @description The html URL of the ruleset */ + href?: string; + }; + }; + conditions?: + | ( + | components["schemas"]["repository-ruleset-conditions"] + | components["schemas"]["org-ruleset-conditions"] + ) + | null; + rules?: components["schemas"]["repository-rule"][]; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + updated_at?: string; + }; + /** + * Rule Suites + * @description Response + */ + "rule-suites": { + /** @description The unique identifier of the rule insight. */ + id?: number; + /** @description The number that identifies the user. */ + actor_id?: number; + /** @description The handle for the GitHub user account. */ + actor_name?: string; + /** @description The first commit sha before the push evaluation. */ + before_sha?: string; + /** @description The last commit sha in the push evaluation. */ + after_sha?: string; + /** @description The ref name that the evaluation ran on. */ + ref?: string; + /** @description The ID of the repository associated with the rule evaluation. */ + repository_id?: number; + /** @description The name of the repository without the `.git` extension. */ + repository_name?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string; + /** + * @description The result of the rule evaluations for rules with the `active` enforcement status. + * @enum {string} + */ + result?: "pass" | "fail" | "bypass"; + /** + * @description The result of the rule evaluations for rules with the `active` and `evaluate` enforcement statuses, demonstrating whether rules would pass or fail if all rules in the rule suite were `active`. + * @enum {string} + */ + evaluation_result?: "pass" | "fail"; + }[]; + /** + * Rule Suite + * @description Response + */ + "rule-suite": { + /** @description The unique identifier of the rule insight. */ + id?: number; + /** @description The number that identifies the user. */ + actor_id?: number | null; + /** @description The handle for the GitHub user account. */ + actor_name?: string | null; + /** @description The first commit sha before the push evaluation. */ + before_sha?: string; + /** @description The last commit sha in the push evaluation. */ + after_sha?: string; + /** @description The ref name that the evaluation ran on. */ + ref?: string; + /** @description The ID of the repository associated with the rule evaluation. */ + repository_id?: number; + /** @description The name of the repository without the `.git` extension. */ + repository_name?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string; + /** + * @description The result of the rule evaluations for rules with the `active` enforcement status. + * @enum {string} + */ + result?: "pass" | "fail" | "bypass"; + /** + * @description The result of the rule evaluations for rules with the `active` and `evaluate` enforcement statuses, demonstrating whether rules would pass or fail if all rules in the rule suite were `active`. + * @enum {string} + */ + evaluation_result?: "pass" | "fail"; + /** @description Details on the evaluated rules. */ + rule_evaluations?: { + rule_source?: { + /** @description The type of rule source. */ + type?: string; + /** @description The ID of the rule source. */ + id?: number | null; + /** @description The name of the rule source. */ + name?: string | null; + }; + /** + * @description The enforcement level of this rule source. + * @enum {string} + */ + enforcement?: "active" | "evaluate" | "deleted ruleset"; + /** + * @description The result of the evaluation of the individual rule. + * @enum {string} + */ + result?: "pass" | "fail"; + /** @description The type of rule. */ + rule_type?: string; + /** @description Any associated details with the rule evaluation. */ + details?: string; + }[]; + }; + /** @description A product affected by the vulnerability detailed in a repository security advisory. */ + "repository-advisory-vulnerability": { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name: string | null; + } | null; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range: string | null; + /** @description The package version(s) that resolve the vulnerability. */ + patched_versions: string | null; + /** @description The functions in the package that are affected. */ + vulnerable_functions: string[] | null; + }; + /** @description A credit given to a user for a repository security advisory. */ + "repository-advisory-credit": { + user: components["schemas"]["simple-user"]; + type: components["schemas"]["security-advisory-credit-types"]; + /** + * @description The state of the user's acceptance of the credit. + * @enum {string} + */ + state: "accepted" | "declined" | "pending"; + }; + /** @description A repository security advisory. */ + "repository-advisory": { + /** @description The GitHub Security Advisory ID. */ + ghsa_id: string; + /** @description The Common Vulnerabilities and Exposures (CVE) ID. */ + cve_id: string | null; + /** + * Format: uri + * @description The API URL for the advisory. + */ + url: string; + /** + * Format: uri + * @description The URL for the advisory. + */ + html_url: string; + /** @description A short summary of the advisory. */ + summary: string; + /** @description A detailed description of what the advisory entails. */ + description: string | null; + /** + * @description The severity of the advisory. + * @enum {string|null} + */ + severity: "critical" | "high" | "medium" | "low" | null; + /** @description The author of the advisory. */ + author: components["schemas"]["simple-user"] | null; + /** @description The publisher of the advisory. */ + publisher: components["schemas"]["simple-user"] | null; + identifiers: readonly { + /** + * @description The type of identifier. + * @enum {string} + */ + type: "CVE" | "GHSA"; + /** @description The identifier value. */ + value: string; + }[]; + /** + * @description The state of the advisory. + * @enum {string} + */ + state: "published" | "closed" | "withdrawn" | "draft" | "triage"; + /** + * Format: date-time + * @description The date and time of when the advisory was created, in ISO 8601 format. + */ + created_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was last updated, in ISO 8601 format. + */ + updated_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was published, in ISO 8601 format. + */ + published_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was closed, in ISO 8601 format. + */ + closed_at: string | null; + /** + * Format: date-time + * @description The date and time of when the advisory was withdrawn, in ISO 8601 format. + */ + withdrawn_at: string | null; + submission: { + /** @description Whether a private vulnerability report was accepted by the repository's administrators. */ + readonly accepted: boolean; + } | null; + vulnerabilities: + | components["schemas"]["repository-advisory-vulnerability"][] + | null; + cvss: { + /** @description The CVSS vector. */ + vector_string: string | null; + /** @description The CVSS score. */ + score: number | null; + } | null; + cwes: + | readonly { + /** @description The Common Weakness Enumeration (CWE) identifier. */ + cwe_id: string; + /** @description The name of the CWE. */ + name: string; + }[] + | null; + /** @description A list of only the CWE IDs. */ + cwe_ids: string[] | null; + credits: + | { + /** @description The username of the user credited. */ + login?: string; + type?: components["schemas"]["security-advisory-credit-types"]; + }[] + | null; + credits_detailed: + | readonly components["schemas"]["repository-advisory-credit"][] + | null; + /** @description A list of users that collaborate on the advisory. */ + collaborating_users: components["schemas"]["simple-user"][] | null; + /** @description A list of teams that collaborate on the advisory. */ + collaborating_teams: components["schemas"]["team"][] | null; + /** @description A temporary private fork of the advisory's repository for collaborating on a fix. */ + private_fork: components["schemas"]["simple-repository"] | null; + }; + /** + * Team Simple + * @description Groups of organization members that gives permissions on specified repositories. + */ + "team-simple": { + /** + * @description Unique identifier of the team + * @example 1 + */ + id: number; + /** @example MDQ6VGVhbTE= */ + node_id: string; + /** + * Format: uri + * @description URL for the team + * @example https://api.github.com/organizations/1/team/1 + */ + url: string; + /** @example https://api.github.com/organizations/1/team/1/members{/member} */ + members_url: string; + /** + * @description Name of the team + * @example Justice League + */ + name: string; + /** + * @description Description of the team + * @example A great team. + */ + description: string | null; + /** + * @description Permission that the team will have for its repositories + * @example admin + */ + permission: string; + /** + * @description The level of privacy this team should have + * @example closed + */ + privacy?: string; + /** + * @description The notification setting the team has set + * @example notifications_enabled + */ + notification_setting?: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/1/repos + */ + repositories_url: string; + /** @example justice-league */ + slug: string; + /** + * @description Distinguished Name (DN) that team maps to within LDAP environment + * @example uid=example,ou=users,dc=github,dc=com + */ + ldap_dn?: string; + }; + "actions-billing-usage": { + /** @description The sum of the free and paid GitHub Actions minutes used. */ + total_minutes_used: number; + /** @description The total paid GitHub Actions minutes used. */ + total_paid_minutes_used: number; + /** @description The amount of free GitHub Actions minutes available. */ + included_minutes: number; + minutes_used_breakdown: { + /** @description Total minutes used on Ubuntu runner machines. */ + UBUNTU?: number; + /** @description Total minutes used on macOS runner machines. */ + MACOS?: number; + /** @description Total minutes used on Windows runner machines. */ + WINDOWS?: number; + /** @description Total minutes used on Ubuntu 4 core runner machines. */ + ubuntu_4_core?: number; + /** @description Total minutes used on Ubuntu 8 core runner machines. */ + ubuntu_8_core?: number; + /** @description Total minutes used on Ubuntu 16 core runner machines. */ + ubuntu_16_core?: number; + /** @description Total minutes used on Ubuntu 32 core runner machines. */ + ubuntu_32_core?: number; + /** @description Total minutes used on Ubuntu 64 core runner machines. */ + ubuntu_64_core?: number; + /** @description Total minutes used on Windows 4 core runner machines. */ + windows_4_core?: number; + /** @description Total minutes used on Windows 8 core runner machines. */ + windows_8_core?: number; + /** @description Total minutes used on Windows 16 core runner machines. */ + windows_16_core?: number; + /** @description Total minutes used on Windows 32 core runner machines. */ + windows_32_core?: number; + /** @description Total minutes used on Windows 64 core runner machines. */ + windows_64_core?: number; + /** @description Total minutes used on macOS 12 core runner machines. */ + macos_12_core?: number; + /** @description Total minutes used on all runner machines. */ + total?: number; + }; + }; + "packages-billing-usage": { + /** @description Sum of the free and paid storage space (GB) for GitHuub Packages. */ + total_gigabytes_bandwidth_used: number; + /** @description Total paid storage space (GB) for GitHuub Packages. */ + total_paid_gigabytes_bandwidth_used: number; + /** @description Free storage space (GB) for GitHub Packages. */ + included_gigabytes_bandwidth: number; + }; + "combined-billing-usage": { + /** @description Numbers of days left in billing cycle. */ + days_left_in_billing_cycle: number; + /** @description Estimated storage space (GB) used in billing cycle. */ + estimated_paid_storage_for_month: number; + /** @description Estimated sum of free and paid storage space (GB) used in billing cycle. */ + estimated_storage_for_month: number; + }; + /** + * Team Organization + * @description Team Organization + */ + "team-organization": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + /** @example github */ + name?: string; + /** @example GitHub */ + company?: string; + /** + * Format: uri + * @example https://github.com/blog + */ + blog?: string; + /** @example San Francisco */ + location?: string; + /** + * Format: email + * @example octocat@github.com + */ + email?: string; + /** @example github */ + twitter_username?: string | null; + /** @example true */ + is_verified?: boolean; + /** @example true */ + has_organization_projects: boolean; + /** @example true */ + has_repository_projects: boolean; + /** @example 2 */ + public_repos: number; + /** @example 1 */ + public_gists: number; + /** @example 20 */ + followers: number; + /** @example 0 */ + following: number; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + created_at: string; + /** @example Organization */ + type: string; + /** @example 100 */ + total_private_repos?: number; + /** @example 100 */ + owned_private_repos?: number; + /** @example 81 */ + private_gists?: number | null; + /** @example 10000 */ + disk_usage?: number | null; + /** @example 8 */ + collaborators?: number | null; + /** + * Format: email + * @example org@example.com + */ + billing_email?: string | null; + plan?: { + name: string; + space: number; + private_repos: number; + filled_seats?: number; + seats?: number; + }; + default_repository_permission?: string | null; + /** @example true */ + members_can_create_repositories?: boolean | null; + /** @example true */ + two_factor_requirement_enabled?: boolean | null; + /** @example all */ + members_allowed_repository_creation_type?: string; + /** @example true */ + members_can_create_public_repositories?: boolean; + /** @example true */ + members_can_create_private_repositories?: boolean; + /** @example true */ + members_can_create_internal_repositories?: boolean; + /** @example true */ + members_can_create_pages?: boolean; + /** @example true */ + members_can_create_public_pages?: boolean; + /** @example true */ + members_can_create_private_pages?: boolean; + /** @example false */ + members_can_fork_private_repositories?: boolean | null; + /** @example false */ + web_commit_signoff_required?: boolean; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + archived_at: string | null; + }; + /** + * Full Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + "team-full": { + /** + * @description Unique identifier of the team + * @example 42 + */ + id: number; + /** @example MDQ6VGVhbTE= */ + node_id: string; + /** + * Format: uri + * @description URL for the team + * @example https://api.github.com/organizations/1/team/1 + */ + url: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + /** + * @description Name of the team + * @example Developers + */ + name: string; + /** @example justice-league */ + slug: string; + /** @example A great team. */ + description: string | null; + /** + * @description The level of privacy this team should have + * @example closed + * @enum {string} + */ + privacy?: "closed" | "secret"; + /** + * @description The notification setting the team has set + * @example notifications_enabled + * @enum {string} + */ + notification_setting?: "notifications_enabled" | "notifications_disabled"; + /** + * @description Permission that the team will have for its repositories + * @example push + */ + permission: string; + /** @example https://api.github.com/organizations/1/team/1/members{/member} */ + members_url: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/1/repos + */ + repositories_url: string; + parent?: components["schemas"]["nullable-team-simple"]; + /** @example 3 */ + members_count: number; + /** @example 10 */ + repos_count: number; + /** + * Format: date-time + * @example 2017-07-14T16:53:42Z + */ + created_at: string; + /** + * Format: date-time + * @example 2017-08-17T12:37:15Z + */ + updated_at: string; + organization: components["schemas"]["team-organization"]; + /** + * @description Distinguished Name (DN) that team maps to within LDAP environment + * @example uid=example,ou=users,dc=github,dc=com + */ + ldap_dn?: string; + }; + /** + * Team Discussion + * @description A team discussion is a persistent record of a free-form conversation within a team. + */ + "team-discussion": { + author: components["schemas"]["nullable-simple-user"]; + /** + * @description The main text of the discussion. + * @example Please suggest improvements to our workflow in comments. + */ + body: string; + /** @example

Hi! This is an area for us to collaborate as a team

*/ + body_html: string; + /** + * @description The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server. + * @example 0307116bbf7ced493b8d8a346c650b71 + */ + body_version: string; + /** @example 0 */ + comments_count: number; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2343027/discussions/1/comments + */ + comments_url: string; + /** + * Format: date-time + * @example 2018-01-25T18:56:31Z + */ + created_at: string; + /** Format: date-time */ + last_edited_at: string | null; + /** + * Format: uri + * @example https://github.com/orgs/github/teams/justice-league/discussions/1 + */ + html_url: string; + /** @example MDE0OlRlYW1EaXNjdXNzaW9uMQ== */ + node_id: string; + /** + * @description The unique sequence number of a team discussion. + * @example 42 + */ + number: number; + /** + * @description Whether or not this discussion should be pinned for easy retrieval. + * @example true + */ + pinned: boolean; + /** + * @description Whether or not this discussion should be restricted to team members and organization owners. + * @example true + */ + private: boolean; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2343027 + */ + team_url: string; + /** + * @description The title of the discussion. + * @example How can we improve our workflow? + */ + title: string; + /** + * Format: date-time + * @example 2018-01-25T18:56:31Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2343027/discussions/1 + */ + url: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Team Discussion Comment + * @description A reply to a discussion within a team. + */ + "team-discussion-comment": { + author: components["schemas"]["nullable-simple-user"]; + /** + * @description The main text of the comment. + * @example I agree with this suggestion. + */ + body: string; + /** @example

Do you like apples?

*/ + body_html: string; + /** + * @description The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server. + * @example 0307116bbf7ced493b8d8a346c650b71 + */ + body_version: string; + /** + * Format: date-time + * @example 2018-01-15T23:53:58Z + */ + created_at: string; + /** Format: date-time */ + last_edited_at: string | null; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2403582/discussions/1 + */ + discussion_url: string; + /** + * Format: uri + * @example https://github.com/orgs/github/teams/justice-league/discussions/1/comments/1 + */ + html_url: string; + /** @example MDIxOlRlYW1EaXNjdXNzaW9uQ29tbWVudDE= */ + node_id: string; + /** + * @description The unique sequence number of a team discussion comment. + * @example 42 + */ + number: number; + /** + * Format: date-time + * @example 2018-01-15T23:53:58Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2403582/discussions/1/comments/1 + */ + url: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Reaction + * @description Reactions to conversations provide a way to help people express their feelings more simply and effectively. + */ + reaction: { + /** @example 1 */ + id: number; + /** @example MDg6UmVhY3Rpb24x */ + node_id: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description The reaction to use + * @example heart + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** + * Format: date-time + * @example 2016-05-20T20:09:31Z + */ + created_at: string; + }; + /** + * Team Membership + * @description Team Membership + */ + "team-membership": { + /** Format: uri */ + url: string; + /** + * @description The role of the user in the team. + * @default member + * @example member + * @enum {string} + */ + role: "member" | "maintainer"; + /** + * @description The state of the user's membership in the team. + * @enum {string} + */ + state: "active" | "pending"; + }; + /** + * Team Project + * @description A team's access to a project. + */ + "team-project": { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string | null; + number: number; + state: string; + creator: components["schemas"]["simple-user"]; + created_at: string; + updated_at: string; + /** @description The organization permission for this project. Only present when owner is an organization. */ + organization_permission?: string; + /** @description Whether the project is private or not. Only present when owner is an organization. */ + private?: boolean; + permissions: { + read: boolean; + write: boolean; + admin: boolean; + }; + }; + /** + * Team Repository + * @description A team's access to a repository. + */ + "team-repository": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + /** @example admin */ + role_name?: string; + owner: components["schemas"]["nullable-simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** @example 108 */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow forking this repo + * @default false + * @example false + */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + * @example false + */ + web_commit_signoff_required?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + }; + /** + * Project Card + * @description Project cards represent a scope of work. + */ + "project-card": { + /** + * Format: uri + * @example https://api.github.com/projects/columns/cards/1478 + */ + url: string; + /** + * @description The project card's ID + * @example 42 + */ + id: number; + /** @example MDExOlByb2plY3RDYXJkMTQ3OA== */ + node_id: string; + /** @example Add payload for delete Project column */ + note: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2016-09-05T14:21:06Z + */ + created_at: string; + /** + * Format: date-time + * @example 2016-09-05T14:20:22Z + */ + updated_at: string; + /** + * @description Whether or not the card is archived + * @example false + */ + archived?: boolean; + column_name?: string; + project_id?: string; + /** + * Format: uri + * @example https://api.github.com/projects/columns/367 + */ + column_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/api-playground/projects-test/issues/3 + */ + content_url?: string; + /** + * Format: uri + * @example https://api.github.com/projects/120 + */ + project_url: string; + }; + /** + * Project Column + * @description Project columns contain cards of work. + */ + "project-column": { + /** + * Format: uri + * @example https://api.github.com/projects/columns/367 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/projects/120 + */ + project_url: string; + /** + * Format: uri + * @example https://api.github.com/projects/columns/367/cards + */ + cards_url: string; + /** + * @description The unique identifier of the project column + * @example 42 + */ + id: number; + /** @example MDEzOlByb2plY3RDb2x1bW4zNjc= */ + node_id: string; + /** + * @description Name of the project column + * @example Remaining tasks + */ + name: string; + /** + * Format: date-time + * @example 2016-09-05T14:18:44Z + */ + created_at: string; + /** + * Format: date-time + * @example 2016-09-05T14:22:28Z + */ + updated_at: string; + }; + /** + * Project Collaborator Permission + * @description Project Collaborator Permission + */ + "project-collaborator-permission": { + permission: string; + user: components["schemas"]["nullable-simple-user"]; + }; + /** Rate Limit */ + "rate-limit": { + limit: number; + remaining: number; + reset: number; + used: number; + }; + /** + * Rate Limit Overview + * @description Rate Limit Overview + */ + "rate-limit-overview": { + resources: { + core: components["schemas"]["rate-limit"]; + graphql?: components["schemas"]["rate-limit"]; + search: components["schemas"]["rate-limit"]; + code_search?: components["schemas"]["rate-limit"]; + source_import?: components["schemas"]["rate-limit"]; + integration_manifest?: components["schemas"]["rate-limit"]; + code_scanning_upload?: components["schemas"]["rate-limit"]; + actions_runner_registration?: components["schemas"]["rate-limit"]; + scim?: components["schemas"]["rate-limit"]; + dependency_snapshots?: components["schemas"]["rate-limit"]; + }; + rate: components["schemas"]["rate-limit"]; + }; + /** + * Artifact + * @description An artifact + */ + artifact: { + /** @example 5 */ + id: number; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id: string; + /** + * @description The name of the artifact. + * @example AdventureWorks.Framework + */ + name: string; + /** + * @description The size in bytes of the artifact. + * @example 12345 + */ + size_in_bytes: number; + /** @example https://api.github.com/repos/github/hello-world/actions/artifacts/5 */ + url: string; + /** @example https://api.github.com/repos/github/hello-world/actions/artifacts/5/zip */ + archive_download_url: string; + /** @description Whether or not the artifact has expired. */ + expired: boolean; + /** Format: date-time */ + created_at: string | null; + /** Format: date-time */ + expires_at: string | null; + /** Format: date-time */ + updated_at: string | null; + workflow_run?: { + /** @example 10 */ + id?: number; + /** @example 42 */ + repository_id?: number; + /** @example 42 */ + head_repository_id?: number; + /** @example main */ + head_branch?: string; + /** @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d */ + head_sha?: string; + } | null; + }; + /** + * Repository actions caches + * @description Repository actions caches + */ + "actions-cache-list": { + /** + * @description Total number of caches + * @example 2 + */ + total_count: number; + /** @description Array of caches */ + actions_caches: { + /** @example 2 */ + id?: number; + /** @example refs/heads/main */ + ref?: string; + /** @example Linux-node-958aff96db2d75d67787d1e634ae70b659de937b */ + key?: string; + /** @example 73885106f58cc52a7df9ec4d4a5622a5614813162cb516c759a30af6bf56e6f0 */ + version?: string; + /** + * Format: date-time + * @example 2019-01-24T22:45:36.000Z + */ + last_accessed_at?: string; + /** + * Format: date-time + * @example 2019-01-24T22:45:36.000Z + */ + created_at?: string; + /** @example 1024 */ + size_in_bytes?: number; + }[]; + }; + /** + * Job + * @description Information of a job execution in a workflow run + */ + job: { + /** + * @description The id of the job. + * @example 21 + */ + id: number; + /** + * @description The id of the associated workflow run. + * @example 5 + */ + run_id: number; + /** @example https://api.github.com/repos/github/hello-world/actions/runs/5 */ + run_url: string; + /** + * @description Attempt number of the associated workflow run, 1 for first attempt and higher if the workflow was re-run. + * @example 1 + */ + run_attempt?: number; + /** @example MDg6Q2hlY2tSdW40 */ + node_id: string; + /** + * @description The SHA of the commit that is being run. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** @example https://api.github.com/repos/github/hello-world/actions/jobs/21 */ + url: string; + /** @example https://github.com/github/hello-world/runs/4 */ + html_url: string | null; + /** + * @description The phase of the lifecycle that the job is currently in. + * @example queued + * @enum {string} + */ + status: "queued" | "in_progress" | "completed" | "waiting"; + /** + * @description The outcome of the job. + * @example success + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | null; + /** + * Format: date-time + * @description The time that the job created, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + created_at: string; + /** + * Format: date-time + * @description The time that the job started, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + started_at: string; + /** + * Format: date-time + * @description The time that the job finished, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + completed_at: string | null; + /** + * @description The name of the job. + * @example test-coverage + */ + name: string; + /** @description Steps in this job. */ + steps?: { + /** + * @description The phase of the lifecycle that the job is currently in. + * @example queued + * @enum {string} + */ + status: "queued" | "in_progress" | "completed"; + /** + * @description The outcome of the job. + * @example success + */ + conclusion: string | null; + /** + * @description The name of the job. + * @example test-coverage + */ + name: string; + /** @example 1 */ + number: number; + /** + * Format: date-time + * @description The time that the step started, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + started_at?: string | null; + /** + * Format: date-time + * @description The time that the job finished, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + completed_at?: string | null; + }[]; + /** @example https://api.github.com/repos/github/hello-world/check-runs/4 */ + check_run_url: string; + /** + * @description Labels for the workflow job. Specified by the "runs_on" attribute in the action's workflow file. + * @example [ + * "self-hosted", + * "foo", + * "bar" + * ] + */ + labels: string[]; + /** + * @description The ID of the runner to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example 1 + */ + runner_id: number | null; + /** + * @description The name of the runner to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example my runner + */ + runner_name: string | null; + /** + * @description The ID of the runner group to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example 2 + */ + runner_group_id: number | null; + /** + * @description The name of the runner group to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example my runner group + */ + runner_group_name: string | null; + /** + * @description The name of the workflow. + * @example Build + */ + workflow_name: string | null; + /** + * @description The name of the current branch. + * @example main + */ + head_branch: string | null; + }; + /** + * Actions OIDC subject customization for a repository + * @description Actions OIDC subject customization for a repository + */ + "oidc-custom-sub-repo": { + /** @description Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored. */ + use_default: boolean; + /** @description Array of unique strings. Each claim key can only contain alphanumeric characters and underscores. */ + include_claim_keys?: string[]; + }; + /** + * Actions Secret + * @description Set secrets for GitHub Actions. + */ + "actions-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** Actions Variable */ + "actions-variable": { + /** + * @description The name of the variable. + * @example USERNAME + */ + name: string; + /** + * @description The value of the variable. + * @example octocat + */ + value: string; + /** + * Format: date-time + * @description The date and time at which the variable was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + * @example 2019-01-24T22:45:36.000Z + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the variable was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + * @example 2019-01-24T22:45:36.000Z + */ + updated_at: string; + }; + /** @description Whether GitHub Actions is enabled on the repository. */ + "actions-enabled": boolean; + "actions-repository-permissions": { + enabled: components["schemas"]["actions-enabled"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + selected_actions_url?: components["schemas"]["selected-actions-url"]; + }; + "actions-workflow-access-to-repository": { + /** + * @description Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the + * repository. + * + * `none` means the access is only possible from workflows in this repository. `user` level access allows sharing across user owned private repositories only. `organization` level access allows sharing across the organization. + * @enum {string} + */ + access_level: "none" | "user" | "organization"; + }; + /** + * Referenced workflow + * @description A workflow referenced/reused by the initial caller workflow + */ + "referenced-workflow": { + path: string; + sha: string; + ref?: string; + }; + /** Pull Request Minimal */ + "pull-request-minimal": { + id: number; + number: number; + url: string; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }; + /** + * Simple Commit + * @description A commit. + */ + "nullable-simple-commit": { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + id: string; + /** @description SHA for the commit's tree */ + tree_id: string; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + timestamp: string; + /** @description Information about the Git author */ + author: { + /** + * @description Name of the commit's author + * @example Monalisa Octocat + */ + name: string; + /** + * Format: email + * @description Git email address of the commit's author + * @example monalisa.octocat@example.com + */ + email: string; + } | null; + /** @description Information about the Git committer */ + committer: { + /** + * @description Name of the commit's committer + * @example Monalisa Octocat + */ + name: string; + /** + * Format: email + * @description Git email address of the commit's committer + * @example monalisa.octocat@example.com + */ + email: string; + } | null; + } | null; + /** + * Workflow Run + * @description An invocation of a workflow + */ + "workflow-run": { + /** + * @description The ID of the workflow run. + * @example 5 + */ + id: number; + /** + * @description The name of the workflow run. + * @example Build + */ + name?: string | null; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id: string; + /** + * @description The ID of the associated check suite. + * @example 42 + */ + check_suite_id?: number; + /** + * @description The node ID of the associated check suite. + * @example MDEwOkNoZWNrU3VpdGU0Mg== + */ + check_suite_node_id?: string; + /** @example master */ + head_branch: string | null; + /** + * @description The SHA of the head commit that points to the version of the workflow being run. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** + * @description The full path of the workflow + * @example octocat/octo-repo/.github/workflows/ci.yml@main + */ + path: string; + /** + * @description The auto incrementing run number for the workflow run. + * @example 106 + */ + run_number: number; + /** + * @description Attempt number of the run, 1 for first attempt and higher if the workflow was re-run. + * @example 1 + */ + run_attempt?: number; + referenced_workflows?: + | components["schemas"]["referenced-workflow"][] + | null; + /** @example push */ + event: string; + /** @example completed */ + status: string | null; + /** @example neutral */ + conclusion: string | null; + /** + * @description The ID of the parent workflow. + * @example 5 + */ + workflow_id: number; + /** + * @description The URL to the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5 + */ + url: string; + /** @example https://github.com/github/hello-world/suites/4 */ + html_url: string; + /** @description Pull requests that are open with a `head_sha` or `head_branch` that matches the workflow run. The returned pull requests do not necessarily indicate pull requests that triggered the run. */ + pull_requests: components["schemas"]["pull-request-minimal"][] | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + actor?: components["schemas"]["simple-user"]; + triggering_actor?: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @description The start time of the latest run. Resets on re-run. + */ + run_started_at?: string; + /** + * @description The URL to the jobs for the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/jobs + */ + jobs_url: string; + /** + * @description The URL to download the logs for the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/logs + */ + logs_url: string; + /** + * @description The URL to the associated check suite. + * @example https://api.github.com/repos/github/hello-world/check-suites/12 + */ + check_suite_url: string; + /** + * @description The URL to the artifacts for the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/rerun/artifacts + */ + artifacts_url: string; + /** + * @description The URL to cancel the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/cancel + */ + cancel_url: string; + /** + * @description The URL to rerun the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/rerun + */ + rerun_url: string; + /** + * @description The URL to the previous attempted run of this workflow, if one exists. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/attempts/3 + */ + previous_attempt_url?: string | null; + /** + * @description The URL to the workflow. + * @example https://api.github.com/repos/github/hello-world/actions/workflows/main.yaml + */ + workflow_url: string; + head_commit: components["schemas"]["nullable-simple-commit"]; + repository: components["schemas"]["minimal-repository"]; + head_repository: components["schemas"]["minimal-repository"]; + /** @example 5 */ + head_repository_id?: number; + /** + * @description The event-specific title associated with the run or the run-name if set, or the value of `run-name` if it is set in the workflow. + * @example Simple Workflow + */ + display_title: string; + }; + /** + * Environment Approval + * @description An entry in the reviews log for environment deployments + */ + "environment-approvals": { + /** @description The list of environments that were approved or rejected */ + environments: { + /** + * @description The id of the environment. + * @example 56780428 + */ + id?: number; + /** @example MDExOkVudmlyb25tZW50NTY3ODA0Mjg= */ + node_id?: string; + /** + * @description The name of the environment. + * @example staging + */ + name?: string; + /** @example https://api.github.com/repos/github/hello-world/environments/staging */ + url?: string; + /** @example https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging */ + html_url?: string; + /** + * Format: date-time + * @description The time that the environment was created, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + created_at?: string; + /** + * Format: date-time + * @description The time that the environment was last updated, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + updated_at?: string; + }[]; + /** + * @description Whether deployment to the environment(s) was approved or rejected or pending (with comments) + * @example approved + * @enum {string} + */ + state: "approved" | "rejected" | "pending"; + user: components["schemas"]["simple-user"]; + /** + * @description The comment submitted with the deployment review + * @example Ship it! + */ + comment: string; + }; + "review-custom-gates-comment-required": { + /** @description The name of the environment to approve or reject. */ + environment_name: string; + /** @description Comment associated with the pending deployment protection rule. **Required when state is not provided.** */ + comment: string; + }; + "review-custom-gates-state-required": { + /** @description The name of the environment to approve or reject. */ + environment_name: string; + /** + * @description Whether to approve or reject deployment to the specified environments. + * @enum {string} + */ + state: "approved" | "rejected"; + /** @description Optional comment to include with the review. */ + comment?: string; + }; + /** + * @description The type of reviewer. + * @example User + * @enum {string} + */ + "deployment-reviewer-type": "User" | "Team"; + /** + * Pending Deployment + * @description Details of a deployment that is waiting for protection rules to pass + */ + "pending-deployment": { + environment: { + /** + * @description The id of the environment. + * @example 56780428 + */ + id?: number; + /** @example MDExOkVudmlyb25tZW50NTY3ODA0Mjg= */ + node_id?: string; + /** + * @description The name of the environment. + * @example staging + */ + name?: string; + /** @example https://api.github.com/repos/github/hello-world/environments/staging */ + url?: string; + /** @example https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging */ + html_url?: string; + }; + /** + * @description The set duration of the wait timer + * @example 30 + */ + wait_timer: number; + /** + * Format: date-time + * @description The time that the wait timer began. + * @example 2020-11-23T22:00:40Z + */ + wait_timer_started_at: string | null; + /** + * @description Whether the currently authenticated user can approve the deployment + * @example true + */ + current_user_can_approve: boolean; + /** @description The people or teams that may approve jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ + reviewers: { + type?: components["schemas"]["deployment-reviewer-type"]; + reviewer?: + | components["schemas"]["simple-user"] + | components["schemas"]["team"]; + }[]; + }; + /** + * Deployment + * @description A request for a specific ref(branch,sha,tag) to be deployed + */ + deployment: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1 + */ + url: string; + /** + * @description Unique identifier of the deployment + * @example 42 + */ + id: number; + /** @example MDEwOkRlcGxveW1lbnQx */ + node_id: string; + /** @example a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d */ + sha: string; + /** + * @description The ref to deploy. This can be a branch, tag, or sha. + * @example topic-branch + */ + ref: string; + /** + * @description Parameter to specify a task to execute + * @example deploy + */ + task: string; + payload: OneOf< + [ + { + [key: string]: unknown; + }, + string, + ] + >; + /** @example staging */ + original_environment?: string; + /** + * @description Name for the target deployment environment. + * @example production + */ + environment: string; + /** @example Deploy request from hubot */ + description: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + created_at: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1/statuses + */ + statuses_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + /** + * @description Specifies if the given environment is will no longer exist at some point in the future. Default: false. + * @example true + */ + transient_environment?: boolean; + /** + * @description Specifies if the given environment is one that end-users directly interact with. Default: false. + * @example true + */ + production_environment?: boolean; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * Workflow Run Usage + * @description Workflow Run Usage + */ + "workflow-run-usage": { + billable: { + UBUNTU?: { + total_ms: number; + jobs: number; + job_runs?: { + job_id: number; + duration_ms: number; + }[]; + }; + MACOS?: { + total_ms: number; + jobs: number; + job_runs?: { + job_id: number; + duration_ms: number; + }[]; + }; + WINDOWS?: { + total_ms: number; + jobs: number; + job_runs?: { + job_id: number; + duration_ms: number; + }[]; + }; + }; + run_duration_ms?: number; + }; + /** + * Workflow + * @description A GitHub Actions workflow + */ + workflow: { + /** @example 5 */ + id: number; + /** @example MDg6V29ya2Zsb3cxMg== */ + node_id: string; + /** @example CI */ + name: string; + /** @example ruby.yaml */ + path: string; + /** + * @example active + * @enum {string} + */ + state: + | "active" + | "deleted" + | "disabled_fork" + | "disabled_inactivity" + | "disabled_manually"; + /** + * Format: date-time + * @example 2019-12-06T14:20:20.000Z + */ + created_at: string; + /** + * Format: date-time + * @example 2019-12-06T14:20:20.000Z + */ + updated_at: string; + /** @example https://api.github.com/repos/actions/setup-ruby/workflows/5 */ + url: string; + /** @example https://github.com/actions/setup-ruby/blob/master/.github/workflows/ruby.yaml */ + html_url: string; + /** @example https://github.com/actions/setup-ruby/workflows/CI/badge.svg */ + badge_url: string; + /** + * Format: date-time + * @example 2019-12-06T14:20:20.000Z + */ + deleted_at?: string; + }; + /** + * Workflow Usage + * @description Workflow Usage + */ + "workflow-usage": { + billable: { + UBUNTU?: { + total_ms?: number; + }; + MACOS?: { + total_ms?: number; + }; + WINDOWS?: { + total_ms?: number; + }; + }; + }; + /** + * Activity + * @description Activity + */ + activity: { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The SHA of the commit before the activity. + * @example 6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + before: string; + /** + * @description The SHA of the commit after the activity. + * @example 827efc6d56897b048c772eb4087f854f46256132 + */ + after: string; + /** + * @description The full Git reference, formatted as `refs/heads/`. + * @example refs/heads/main + */ + ref: string; + /** + * Format: date-time + * @description The time when the activity occurred. + * @example 2011-01-26T19:06:43Z + */ + timestamp: string; + /** + * @description The type of the activity that was performed. + * @example force_push + * @enum {string} + */ + activity_type: + | "push" + | "force_push" + | "branch_deletion" + | "branch_creation" + | "pr_merge" + | "merge_queue_merge"; + actor: components["schemas"]["nullable-simple-user"]; + }; + /** + * Autolink reference + * @description An autolink reference. + */ + autolink: { + /** @example 3 */ + id: number; + /** + * @description The prefix of a key that is linkified. + * @example TICKET- + */ + key_prefix: string; + /** + * @description A template for the target URL that is generated if a key was found. + * @example https://example.com/TICKET?query= + */ + url_template: string; + /** + * @description Whether this autolink reference matches alphanumeric characters. If false, this autolink reference only matches numeric characters. + * @example true + */ + is_alphanumeric: boolean; + }; + /** + * Check Automated Security Fixes + * @description Check Automated Security Fixes + */ + "check-automated-security-fixes": { + /** + * @description Whether automated security fixes are enabled for the repository. + * @example true + */ + enabled: boolean; + /** + * @description Whether automated security fixes are paused for the repository. + * @example false + */ + paused: boolean; + }; + /** + * Protected Branch Required Status Check + * @description Protected Branch Required Status Check + */ + "protected-branch-required-status-check": { + url?: string; + enforcement_level?: string; + contexts: string[]; + checks: { + context: string; + app_id: number | null; + }[]; + contexts_url?: string; + strict?: boolean; + }; + /** + * Protected Branch Admin Enforced + * @description Protected Branch Admin Enforced + */ + "protected-branch-admin-enforced": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins + */ + url: string; + /** @example true */ + enabled: boolean; + }; + /** + * Protected Branch Pull Request Review + * @description Protected Branch Pull Request Review + */ + "protected-branch-pull-request-review": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions + */ + url?: string; + dismissal_restrictions?: { + /** @description The list of users with review dismissal access. */ + users?: components["schemas"]["simple-user"][]; + /** @description The list of teams with review dismissal access. */ + teams?: components["schemas"]["team"][]; + /** @description The list of apps with review dismissal access. */ + apps?: components["schemas"]["integration"][]; + /** @example "https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions" */ + url?: string; + /** @example "https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/users" */ + users_url?: string; + /** @example "https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/teams" */ + teams_url?: string; + }; + /** @description Allow specific users, teams, or apps to bypass pull request requirements. */ + bypass_pull_request_allowances?: { + /** @description The list of users allowed to bypass pull request requirements. */ + users?: components["schemas"]["simple-user"][]; + /** @description The list of teams allowed to bypass pull request requirements. */ + teams?: components["schemas"]["team"][]; + /** @description The list of apps allowed to bypass pull request requirements. */ + apps?: components["schemas"]["integration"][]; + }; + /** @example true */ + dismiss_stale_reviews: boolean; + /** @example true */ + require_code_owner_reviews: boolean; + /** @example 2 */ + required_approving_review_count?: number; + /** + * @description Whether the most recent push must be approved by someone other than the person who pushed it. + * @default false + * @example true + */ + require_last_push_approval?: boolean; + }; + /** + * Branch Restriction Policy + * @description Branch Restriction Policy + */ + "branch-restriction-policy": { + /** Format: uri */ + url: string; + /** Format: uri */ + users_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri */ + apps_url: string; + users: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }[]; + teams: { + id?: number; + node_id?: string; + url?: string; + html_url?: string; + name?: string; + slug?: string; + description?: string | null; + privacy?: string; + notification_setting?: string; + permission?: string; + members_url?: string; + repositories_url?: string; + parent?: string | null; + }[]; + apps: { + id?: number; + slug?: string; + node_id?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + url?: string; + repos_url?: string; + events_url?: string; + hooks_url?: string; + issues_url?: string; + members_url?: string; + public_members_url?: string; + avatar_url?: string; + description?: string; + /** @example "" */ + gravatar_id?: string; + /** @example "https://github.com/testorg-ea8ec76d71c3af4b" */ + html_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/followers" */ + followers_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/following{/other_user}" */ + following_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/gists{/gist_id}" */ + gists_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/starred{/owner}{/repo}" */ + starred_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/subscriptions" */ + subscriptions_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/orgs" */ + organizations_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/received_events" */ + received_events_url?: string; + /** @example "Organization" */ + type?: string; + /** @example false */ + site_admin?: boolean; + }; + name?: string; + description?: string; + external_url?: string; + html_url?: string; + created_at?: string; + updated_at?: string; + permissions?: { + metadata?: string; + contents?: string; + issues?: string; + single_file?: string; + }; + events?: string[]; + }[]; + }; + /** + * Branch Protection + * @description Branch Protection + */ + "branch-protection": { + url?: string; + enabled?: boolean; + required_status_checks?: components["schemas"]["protected-branch-required-status-check"]; + enforce_admins?: components["schemas"]["protected-branch-admin-enforced"]; + required_pull_request_reviews?: components["schemas"]["protected-branch-pull-request-review"]; + restrictions?: components["schemas"]["branch-restriction-policy"]; + required_linear_history?: { + enabled?: boolean; + }; + allow_force_pushes?: { + enabled?: boolean; + }; + allow_deletions?: { + enabled?: boolean; + }; + block_creations?: { + enabled?: boolean; + }; + required_conversation_resolution?: { + enabled?: boolean; + }; + /** @example "branch/with/protection" */ + name?: string; + /** @example "https://api.github.com/repos/owner-79e94e2d36b3fd06a32bb213/AAA_Public_Repo/branches/branch/with/protection/protection" */ + protection_url?: string; + required_signatures?: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures + */ + url: string; + /** @example true */ + enabled: boolean; + }; + /** @description Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. */ + lock_branch?: { + /** @default false */ + enabled?: boolean; + }; + /** @description Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. */ + allow_fork_syncing?: { + /** @default false */ + enabled?: boolean; + }; + }; + /** + * Short Branch + * @description Short Branch + */ + "short-branch": { + name: string; + commit: { + sha: string; + /** Format: uri */ + url: string; + }; + protected: boolean; + protection?: components["schemas"]["branch-protection"]; + /** Format: uri */ + protection_url?: string; + }; + /** + * Git User + * @description Metaproperties for Git author/committer information. + */ + "nullable-git-user": { + /** @example "Chris Wanstrath" */ + name?: string; + /** @example "chris@ozmm.org" */ + email?: string; + /** @example "2007-10-29T02:42:39.000-07:00" */ + date?: string; + } | null; + /** Verification */ + verification: { + verified: boolean; + reason: string; + payload: string | null; + signature: string | null; + }; + /** + * Diff Entry + * @description Diff Entry + */ + "diff-entry": { + /** @example bbcd538c8e72b8c175046e27cc8f907076331401 */ + sha: string; + /** @example file1.txt */ + filename: string; + /** + * @example added + * @enum {string} + */ + status: + | "added" + | "removed" + | "modified" + | "renamed" + | "copied" + | "changed" + | "unchanged"; + /** @example 103 */ + additions: number; + /** @example 21 */ + deletions: number; + /** @example 124 */ + changes: number; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + */ + blob_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + */ + raw_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + contents_url: string; + /** @example @@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test */ + patch?: string; + /** @example file.txt */ + previous_filename?: string; + }; + /** + * Commit + * @description Commit + */ + commit: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + url: string; + /** @example 6dcb09b5b57875f334f61aebed695e2e4193db5e */ + sha: string; + /** @example MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ== */ + node_id: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments + */ + comments_url: string; + commit: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + url: string; + author: components["schemas"]["nullable-git-user"]; + committer: components["schemas"]["nullable-git-user"]; + /** @example Fix all the bugs */ + message: string; + /** @example 0 */ + comment_count: number; + tree: { + /** @example 827efc6d56897b048c772eb4087f854f46256132 */ + sha: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/tree/827efc6d56897b048c772eb4087f854f46256132 + */ + url: string; + }; + verification?: components["schemas"]["verification"]; + }; + author: components["schemas"]["nullable-simple-user"]; + committer: components["schemas"]["nullable-simple-user"]; + parents: { + /** @example 7638417db6d59f3c431d3e1f261cc637155684cd */ + sha: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/7638417db6d59f3c431d3e1f261cc637155684cd + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd + */ + html_url?: string; + }[]; + stats?: { + additions?: number; + deletions?: number; + total?: number; + }; + files?: components["schemas"]["diff-entry"][]; + }; + /** + * Branch With Protection + * @description Branch With Protection + */ + "branch-with-protection": { + name: string; + commit: components["schemas"]["commit"]; + _links: { + html: string; + /** Format: uri */ + self: string; + }; + protected: boolean; + protection: components["schemas"]["branch-protection"]; + /** Format: uri */ + protection_url: string; + /** @example "mas*" */ + pattern?: string; + /** @example 1 */ + required_approving_review_count?: number; + }; + /** + * Status Check Policy + * @description Status Check Policy + */ + "status-check-policy": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks + */ + url: string; + /** @example true */ + strict: boolean; + /** + * @example [ + * "continuous-integration/travis-ci" + * ] + */ + contexts: string[]; + checks: { + /** @example continuous-integration/travis-ci */ + context: string; + app_id: number | null; + }[]; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts + */ + contexts_url: string; + }; + /** + * Protected Branch + * @description Branch protections protect branches + */ + "protected-branch": { + /** Format: uri */ + url: string; + required_status_checks?: components["schemas"]["status-check-policy"]; + required_pull_request_reviews?: { + /** Format: uri */ + url: string; + dismiss_stale_reviews?: boolean; + require_code_owner_reviews?: boolean; + required_approving_review_count?: number; + /** + * @description Whether the most recent push must be approved by someone other than the person who pushed it. + * @default false + */ + require_last_push_approval?: boolean; + dismissal_restrictions?: { + /** Format: uri */ + url: string; + /** Format: uri */ + users_url: string; + /** Format: uri */ + teams_url: string; + users: components["schemas"]["simple-user"][]; + teams: components["schemas"]["team"][]; + apps?: components["schemas"]["integration"][]; + }; + bypass_pull_request_allowances?: { + users: components["schemas"]["simple-user"][]; + teams: components["schemas"]["team"][]; + apps?: components["schemas"]["integration"][]; + }; + }; + required_signatures?: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures + */ + url: string; + /** @example true */ + enabled: boolean; + }; + enforce_admins?: { + /** Format: uri */ + url: string; + enabled: boolean; + }; + required_linear_history?: { + enabled: boolean; + }; + allow_force_pushes?: { + enabled: boolean; + }; + allow_deletions?: { + enabled: boolean; + }; + restrictions?: components["schemas"]["branch-restriction-policy"]; + required_conversation_resolution?: { + enabled?: boolean; + }; + block_creations?: { + enabled: boolean; + }; + /** @description Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. */ + lock_branch?: { + /** @default false */ + enabled?: boolean; + }; + /** @description Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. */ + allow_fork_syncing?: { + /** @default false */ + enabled?: boolean; + }; + }; + /** + * Deployment + * @description A deployment created as the result of an Actions check run from a workflow that references an environment + */ + "deployment-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1 + */ + url: string; + /** + * @description Unique identifier of the deployment + * @example 42 + */ + id: number; + /** @example MDEwOkRlcGxveW1lbnQx */ + node_id: string; + /** + * @description Parameter to specify a task to execute + * @example deploy + */ + task: string; + /** @example staging */ + original_environment?: string; + /** + * @description Name for the target deployment environment. + * @example production + */ + environment: string; + /** @example Deploy request from hubot */ + description: string | null; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + created_at: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1/statuses + */ + statuses_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + /** + * @description Specifies if the given environment is will no longer exist at some point in the future. Default: false. + * @example true + */ + transient_environment?: boolean; + /** + * @description Specifies if the given environment is one that end-users directly interact with. Default: false. + * @example true + */ + production_environment?: boolean; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * CheckRun + * @description A check performed on the code of a given code change + */ + "check-run": { + /** + * @description The id of the check. + * @example 21 + */ + id: number; + /** + * @description The SHA of the commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** @example MDg6Q2hlY2tSdW40 */ + node_id: string; + /** @example 42 */ + external_id: string | null; + /** @example https://api.github.com/repos/github/hello-world/check-runs/4 */ + url: string; + /** @example https://github.com/github/hello-world/runs/4 */ + html_url: string | null; + /** @example https://example.com */ + details_url: string | null; + /** + * @description The phase of the lifecycle that the check is currently in. + * @example queued + * @enum {string} + */ + status: "queued" | "in_progress" | "completed"; + /** + * @example neutral + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | null; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + started_at: string | null; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + completed_at: string | null; + output: { + title: string | null; + summary: string | null; + text: string | null; + annotations_count: number; + /** Format: uri */ + annotations_url: string; + }; + /** + * @description The name of the check. + * @example test-coverage + */ + name: string; + check_suite: { + id: number; + } | null; + app: components["schemas"]["nullable-integration"]; + /** @description Pull requests that are open with a `head_sha` or `head_branch` that matches the check. The returned pull requests do not necessarily indicate pull requests that triggered the check. */ + pull_requests: components["schemas"]["pull-request-minimal"][]; + deployment?: components["schemas"]["deployment-simple"]; + }; + /** + * Check Annotation + * @description Check Annotation + */ + "check-annotation": { + /** @example README.md */ + path: string; + /** @example 2 */ + start_line: number; + /** @example 2 */ + end_line: number; + /** @example 5 */ + start_column: number | null; + /** @example 10 */ + end_column: number | null; + /** @example warning */ + annotation_level: string | null; + /** @example Spell Checker */ + title: string | null; + /** @example Check your spelling for 'banaas'. */ + message: string | null; + /** @example Do you mean 'bananas' or 'banana'? */ + raw_details: string | null; + blob_href: string; + }; + /** + * Simple Commit + * @description A commit. + */ + "simple-commit": { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + id: string; + /** @description SHA for the commit's tree */ + tree_id: string; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + timestamp: string; + /** @description Information about the Git author */ + author: { + /** + * @description Name of the commit's author + * @example Monalisa Octocat + */ + name: string; + /** + * Format: email + * @description Git email address of the commit's author + * @example monalisa.octocat@example.com + */ + email: string; + } | null; + /** @description Information about the Git committer */ + committer: { + /** + * @description Name of the commit's committer + * @example Monalisa Octocat + */ + name: string; + /** + * Format: email + * @description Git email address of the commit's committer + * @example monalisa.octocat@example.com + */ + email: string; + } | null; + }; + /** + * CheckSuite + * @description A suite of checks performed on the code of a given code change + */ + "check-suite": { + /** @example 5 */ + id: number; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id: string; + /** @example master */ + head_branch: string | null; + /** + * @description The SHA of the head commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** + * @example completed + * @enum {string|null} + */ + status: "queued" | "in_progress" | "completed" | null; + /** + * @example neutral + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | "startup_failure" + | "stale" + | null; + /** @example https://api.github.com/repos/github/hello-world/check-suites/5 */ + url: string | null; + /** @example 146e867f55c26428e5f9fade55a9bbf5e95a7912 */ + before: string | null; + /** @example d6fde92930d4715a2b49857d24b940956b26d2d3 */ + after: string | null; + pull_requests: components["schemas"]["pull-request-minimal"][] | null; + app: components["schemas"]["nullable-integration"]; + repository: components["schemas"]["minimal-repository"]; + /** Format: date-time */ + created_at: string | null; + /** Format: date-time */ + updated_at: string | null; + head_commit: components["schemas"]["simple-commit"]; + latest_check_runs_count: number; + check_runs_url: string; + rerequestable?: boolean; + runs_rerequestable?: boolean; + }; + /** + * Check Suite Preference + * @description Check suite configuration preferences for a repository. + */ + "check-suite-preference": { + preferences: { + auto_trigger_checks?: { + app_id: number; + setting: boolean; + }[]; + }; + repository: components["schemas"]["minimal-repository"]; + }; + "code-scanning-alert-items": { + number: components["schemas"]["alert-number"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["alert-updated-at"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + instances_url: components["schemas"]["alert-instances-url"]; + state: components["schemas"]["code-scanning-alert-state"]; + fixed_at?: components["schemas"]["alert-fixed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_reason: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + rule: components["schemas"]["code-scanning-alert-rule-summary"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + most_recent_instance: components["schemas"]["code-scanning-alert-instance"]; + }; + "code-scanning-alert-rule": { + /** @description A unique identifier for the rule used to detect the alert. */ + id?: string | null; + /** @description The name of the rule used to detect the alert. */ + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity?: "none" | "note" | "warning" | "error" | null; + /** + * @description The security severity of the alert. + * @enum {string|null} + */ + security_severity_level?: "low" | "medium" | "high" | "critical" | null; + /** @description A short description of the rule used to detect the alert. */ + description?: string; + /** @description description of the rule used to detect the alert. */ + full_description?: string; + /** @description A set of tags applicable for the rule. */ + tags?: string[] | null; + /** @description Detailed documentation for the rule as GitHub Flavored Markdown. */ + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + }; + "code-scanning-alert": { + number: components["schemas"]["alert-number"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["alert-updated-at"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + instances_url: components["schemas"]["alert-instances-url"]; + state: components["schemas"]["code-scanning-alert-state"]; + fixed_at?: components["schemas"]["alert-fixed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_reason: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + rule: components["schemas"]["code-scanning-alert-rule"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + most_recent_instance: components["schemas"]["code-scanning-alert-instance"]; + }; + /** + * @description Sets the state of the code scanning alert. You must provide `dismissed_reason` when you set the state to `dismissed`. + * @enum {string} + */ + "code-scanning-alert-set-state": "open" | "dismissed"; + /** + * @description An identifier for the upload. + * @example 6c81cd8e-b078-4ac3-a3be-1dad7dbd0b53 + */ + "code-scanning-analysis-sarif-id": string; + /** @description The SHA of the commit to which the analysis you are uploading relates. */ + "code-scanning-analysis-commit-sha": string; + /** @description Identifies the variable values associated with the environment in which this analysis was performed. */ + "code-scanning-analysis-environment": string; + /** + * Format: date-time + * @description The time that the analysis was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + readonly "code-scanning-analysis-created-at": string; + /** + * Format: uri + * @description The REST API URL of the analysis resource. + */ + readonly "code-scanning-analysis-url": string; + "code-scanning-analysis": { + ref: components["schemas"]["code-scanning-ref"]; + commit_sha: components["schemas"]["code-scanning-analysis-commit-sha"]; + analysis_key: components["schemas"]["code-scanning-analysis-analysis-key"]; + environment: components["schemas"]["code-scanning-analysis-environment"]; + category?: components["schemas"]["code-scanning-analysis-category"]; + /** @example error reading field xyz */ + error: string; + created_at: components["schemas"]["code-scanning-analysis-created-at"]; + /** @description The total number of results in the analysis. */ + results_count: number; + /** @description The total number of rules used in the analysis. */ + rules_count: number; + /** @description Unique identifier for this analysis. */ + id: number; + url: components["schemas"]["code-scanning-analysis-url"]; + sarif_id: components["schemas"]["code-scanning-analysis-sarif-id"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + deletable: boolean; + /** + * @description Warning generated when processing the analysis + * @example 123 results were ignored + */ + warning: string; + }; + /** + * Analysis deletion + * @description Successful deletion of a code scanning analysis + */ + "code-scanning-analysis-deletion": { + /** + * Format: uri + * @description Next deletable analysis in chain, without last analysis deletion confirmation + */ + next_analysis_url: string | null; + /** + * Format: uri + * @description Next deletable analysis in chain, with last analysis deletion confirmation + */ + confirm_delete_url: string | null; + }; + /** + * CodeQL Database + * @description A CodeQL database. + */ + "code-scanning-codeql-database": { + /** @description The ID of the CodeQL database. */ + id: number; + /** @description The name of the CodeQL database. */ + name: string; + /** @description The language of the CodeQL database. */ + language: string; + uploader: components["schemas"]["simple-user"]; + /** @description The MIME type of the CodeQL database file. */ + content_type: string; + /** @description The size of the CodeQL database file in bytes. */ + size: number; + /** + * Format: date-time + * @description The date and time at which the CodeQL database was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the CodeQL database was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + updated_at: string; + /** + * Format: uri + * @description The URL at which to download the CodeQL database. The `Accept` header must be set to the value of the `content_type` property. + */ + url: string; + /** @description The commit SHA of the repository at the time the CodeQL database was created. */ + commit_oid?: string | null; + }; + /** @description Configuration for code scanning default setup. */ + "code-scanning-default-setup": { + /** + * @description Code scanning default setup has been configured or not. + * @enum {string} + */ + state?: "configured" | "not-configured"; + /** @description Languages to be analyzed. */ + languages?: ( + | "c-cpp" + | "csharp" + | "go" + | "java-kotlin" + | "javascript-typescript" + | "javascript" + | "python" + | "ruby" + | "typescript" + | "swift" + )[]; + /** + * @description CodeQL query suite to be used. + * @enum {string} + */ + query_suite?: "default" | "extended"; + /** + * Format: date-time + * @description Timestamp of latest configuration update. + * @example 2023-12-06T14:20:20.000Z + */ + updated_at?: string | null; + /** + * @description The frequency of the periodic analysis. + * @enum {string|null} + */ + schedule?: "weekly" | null; + }; + /** @description Configuration for code scanning default setup. */ + "code-scanning-default-setup-update": { + /** + * @description The desired state of code scanning default setup. + * @enum {string} + */ + state?: "configured" | "not-configured"; + /** + * @description CodeQL query suite to be used. + * @enum {string} + */ + query_suite?: "default" | "extended"; + /** @description CodeQL languages to be analyzed. */ + languages?: ( + | "c-cpp" + | "csharp" + | "go" + | "java-kotlin" + | "javascript-typescript" + | "python" + | "ruby" + | "swift" + )[]; + }; + /** + * @description You can use `run_url` to track the status of the run. This includes a property status and conclusion. + * You should not rely on this always being an actions workflow run object. + */ + "code-scanning-default-setup-update-response": { + /** @description ID of the corresponding run. */ + run_id?: number; + /** @description URL of the corresponding run. */ + run_url?: string; + }; + /** + * @description The full Git reference, formatted as `refs/heads/`, + * `refs/tags/`, `refs/pull//merge`, or `refs/pull//head`. + * @example refs/heads/main + */ + "code-scanning-ref-full": string; + /** @description A Base64 string representing the SARIF file to upload. You must first compress your SARIF file using [`gzip`](http://www.gnu.org/software/gzip/manual/gzip.html) and then translate the contents of the file into a Base64 encoding string. For more information, see "[SARIF support for code scanning](https://docs.github.com/code-security/secure-coding/sarif-support-for-code-scanning)." */ + "code-scanning-analysis-sarif-file": string; + "code-scanning-sarifs-receipt": { + id?: components["schemas"]["code-scanning-analysis-sarif-id"]; + /** + * Format: uri + * @description The REST API URL for checking the status of the upload. + */ + url?: string; + }; + "code-scanning-sarifs-status": { + /** + * @description `pending` files have not yet been processed, while `complete` means results from the SARIF have been stored. `failed` files have either not been processed at all, or could only be partially processed. + * @enum {string} + */ + processing_status?: "pending" | "complete" | "failed"; + /** + * Format: uri + * @description The REST API URL for getting the analyses associated with the upload. + */ + analyses_url?: string | null; + /** @description Any errors that ocurred during processing of the delivery. */ + errors?: readonly string[] | null; + }; + /** + * CODEOWNERS errors + * @description A list of errors found in a repo's CODEOWNERS file + */ + "codeowners-errors": { + errors: { + /** + * @description The line number where this errors occurs. + * @example 7 + */ + line: number; + /** + * @description The column number where this errors occurs. + * @example 3 + */ + column: number; + /** + * @description The contents of the line where the error occurs. + * @example * user + */ + source?: string; + /** + * @description The type of error. + * @example Invalid owner + */ + kind: string; + /** + * @description Suggested action to fix the error. This will usually be `null`, but is provided for some common errors. + * @example The pattern `/` will never match anything, did you mean `*` instead? + */ + suggestion?: string | null; + /** + * @description A human-readable description of the error, combining information from multiple fields, laid out for display in a monospaced typeface (for example, a command-line setting). + * @example Invalid owner on line 7: + * + * * user + * ^ + */ + message: string; + /** + * @description The path of the file where the error occured. + * @example .github/CODEOWNERS + */ + path: string; + }[]; + }; + /** + * Codespace machine + * @description A description of the machine powering a codespace. + */ + "codespace-machine": { + /** + * @description The name of the machine. + * @example standardLinux + */ + name: string; + /** + * @description The display name of the machine includes cores, memory, and storage. + * @example 4 cores, 16 GB RAM, 64 GB storage + */ + display_name: string; + /** + * @description The operating system of the machine. + * @example linux + */ + operating_system: string; + /** + * @description How much storage is available to the codespace. + * @example 68719476736 + */ + storage_in_bytes: number; + /** + * @description How much memory is available to the codespace. + * @example 17179869184 + */ + memory_in_bytes: number; + /** + * @description How many cores are available to the codespace. + * @example 4 + */ + cpus: number; + /** + * @description Whether a prebuild is currently available when creating a codespace for this machine and repository. If a branch was not specified as a ref, the default branch will be assumed. Value will be "null" if prebuilds are not supported or prebuild availability could not be determined. Value will be "none" if no prebuild is available. Latest values "ready" and "in_progress" indicate the prebuild availability status. + * @example ready + * @enum {string|null} + */ + prebuild_availability: "none" | "ready" | "in_progress" | null; + }; + /** + * Codespaces Permissions Check + * @description Permission check result for a given devcontainer config. + */ + "codespaces-permissions-check-for-devcontainer": { + /** + * @description Whether the user has accepted the permissions defined by the devcontainer config + * @example true + */ + accepted: boolean; + }; + /** + * Codespaces Secret + * @description Set repository secrets for GitHub Codespaces. + */ + "repo-codespaces-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Collaborator + * @description Collaborator + */ + collaborator: { + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + email?: string | null; + name?: string | null; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + permissions?: { + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + admin: boolean; + }; + /** @example admin */ + role_name: string; + }; + /** + * Repository Invitation + * @description Repository invitations let you manage who you collaborate with. + */ + "repository-invitation": { + /** + * @description Unique identifier of the repository invitation. + * @example 42 + */ + id: number; + repository: components["schemas"]["minimal-repository"]; + invitee: components["schemas"]["nullable-simple-user"]; + inviter: components["schemas"]["nullable-simple-user"]; + /** + * @description The permission associated with the invitation. + * @example read + * @enum {string} + */ + permissions: "read" | "write" | "admin" | "triage" | "maintain"; + /** + * Format: date-time + * @example 2016-06-13T14:52:50-05:00 + */ + created_at: string; + /** @description Whether or not the invitation has expired */ + expired?: boolean; + /** + * @description URL for the repository invitation + * @example https://api.github.com/user/repository-invitations/1 + */ + url: string; + /** @example https://github.com/octocat/Hello-World/invitations */ + html_url: string; + node_id: string; + }; + /** + * Collaborator + * @description Collaborator + */ + "nullable-collaborator": { + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + email?: string | null; + name?: string | null; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + permissions?: { + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + admin: boolean; + }; + /** @example admin */ + role_name: string; + } | null; + /** + * Repository Collaborator Permission + * @description Repository Collaborator Permission + */ + "repository-collaborator-permission": { + permission: string; + /** @example admin */ + role_name: string; + user: components["schemas"]["nullable-collaborator"]; + }; + /** + * Commit Comment + * @description Commit Comment + */ + "commit-comment": { + /** Format: uri */ + html_url: string; + /** Format: uri */ + url: string; + id: number; + node_id: string; + body: string; + path: string | null; + position: number | null; + line: number | null; + commit_id: string; + user: components["schemas"]["nullable-simple-user"]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + author_association: components["schemas"]["author-association"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Branch Short + * @description Branch Short + */ + "branch-short": { + name: string; + commit: { + sha: string; + url: string; + }; + protected: boolean; + }; + /** + * Link + * @description Hypermedia Link + */ + link: { + href: string; + }; + /** + * Auto merge + * @description The status of auto merging a pull request. + */ + "auto-merge": { + enabled_by: components["schemas"]["simple-user"]; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + /** @description Title for the merge commit message. */ + commit_title: string; + /** @description Commit message for the merge commit. */ + commit_message: string; + } | null; + /** + * Pull Request Simple + * @description Pull Request Simple + */ + "pull-request-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347 + */ + url: string; + /** @example 1 */ + id: number; + /** @example MDExOlB1bGxSZXF1ZXN0MQ== */ + node_id: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347 + */ + html_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.diff + */ + diff_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.patch + */ + patch_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + */ + commits_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + */ + review_comments_url: string; + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} */ + review_comment_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + */ + comments_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + statuses_url: string; + /** @example 1347 */ + number: number; + /** @example open */ + state: string; + /** @example true */ + locked: boolean; + /** @example new-feature */ + title: string; + user: components["schemas"]["nullable-simple-user"]; + /** @example Please pull these awesome changes */ + body: string | null; + labels: { + /** Format: int64 */ + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: components["schemas"]["nullable-milestone"]; + /** @example too heated */ + active_lock_reason?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + merged_at: string | null; + /** @example e5bd3914e2e596debea16f433f57875b5b90bcd6 */ + merge_commit_sha: string | null; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + requested_reviewers?: components["schemas"]["simple-user"][] | null; + requested_teams?: components["schemas"]["team"][] | null; + head: { + label: string; + ref: string; + repo: components["schemas"]["repository"]; + sha: string; + user: components["schemas"]["nullable-simple-user"]; + }; + base: { + label: string; + ref: string; + repo: components["schemas"]["repository"]; + sha: string; + user: components["schemas"]["nullable-simple-user"]; + }; + _links: { + comments: components["schemas"]["link"]; + commits: components["schemas"]["link"]; + statuses: components["schemas"]["link"]; + html: components["schemas"]["link"]; + issue: components["schemas"]["link"]; + review_comments: components["schemas"]["link"]; + review_comment: components["schemas"]["link"]; + self: components["schemas"]["link"]; + }; + author_association: components["schemas"]["author-association"]; + auto_merge: components["schemas"]["auto-merge"]; + /** + * @description Indicates whether or not the pull request is a draft. + * @example false + */ + draft?: boolean; + }; + /** Simple Commit Status */ + "simple-commit-status": { + description: string | null; + id: number; + node_id: string; + state: string; + context: string; + /** Format: uri */ + target_url: string | null; + required?: boolean | null; + /** Format: uri */ + avatar_url: string | null; + /** Format: uri */ + url: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Combined Commit Status + * @description Combined Commit Status + */ + "combined-commit-status": { + state: string; + statuses: components["schemas"]["simple-commit-status"][]; + sha: string; + total_count: number; + repository: components["schemas"]["minimal-repository"]; + /** Format: uri */ + commit_url: string; + /** Format: uri */ + url: string; + }; + /** + * Status + * @description The status of a commit. + */ + status: { + url: string; + avatar_url: string | null; + id: number; + node_id: string; + state: string; + description: string | null; + target_url: string | null; + context: string; + created_at: string; + updated_at: string; + creator: components["schemas"]["nullable-simple-user"]; + }; + /** + * Code Of Conduct Simple + * @description Code of Conduct Simple + */ + "nullable-code-of-conduct-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/github/docs/community/code_of_conduct + */ + url: string; + /** @example citizen_code_of_conduct */ + key: string; + /** @example Citizen Code of Conduct */ + name: string; + /** + * Format: uri + * @example https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md + */ + html_url: string | null; + } | null; + /** Community Health File */ + "nullable-community-health-file": { + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + } | null; + /** + * Community Profile + * @description Community Profile + */ + "community-profile": { + /** @example 100 */ + health_percentage: number; + /** @example My first repository on GitHub! */ + description: string | null; + /** @example example.com */ + documentation: string | null; + files: { + code_of_conduct: components["schemas"]["nullable-code-of-conduct-simple"]; + code_of_conduct_file: components["schemas"]["nullable-community-health-file"]; + license: components["schemas"]["nullable-license-simple"]; + contributing: components["schemas"]["nullable-community-health-file"]; + readme: components["schemas"]["nullable-community-health-file"]; + issue_template: components["schemas"]["nullable-community-health-file"]; + pull_request_template: components["schemas"]["nullable-community-health-file"]; + }; + /** + * Format: date-time + * @example 2017-02-28T19:09:29Z + */ + updated_at: string | null; + /** @example true */ + content_reports_enabled?: boolean; + }; + /** + * Commit Comparison + * @description Commit Comparison + */ + "commit-comparison": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/compare/master...topic + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/master...topic + */ + html_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17 + */ + permalink_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/master...topic.diff + */ + diff_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/master...topic.patch + */ + patch_url: string; + base_commit: components["schemas"]["commit"]; + merge_base_commit: components["schemas"]["commit"]; + /** + * @example ahead + * @enum {string} + */ + status: "diverged" | "ahead" | "behind" | "identical"; + /** @example 4 */ + ahead_by: number; + /** @example 5 */ + behind_by: number; + /** @example 6 */ + total_commits: number; + commits: components["schemas"]["commit"][]; + files?: components["schemas"]["diff-entry"][]; + }; + /** + * Content Tree + * @description Content Tree + */ + "content-tree": { + type: string; + size: number; + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + entries?: { + type: string; + size: number; + name: string; + path: string; + content?: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }[]; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }; + /** + * Content Directory + * @description A list of directory items + */ + "content-directory": { + /** @enum {string} */ + type: "dir" | "file" | "submodule" | "symlink"; + size: number; + name: string; + path: string; + content?: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }[]; + /** + * Content File + * @description Content File + */ + "content-file": { + /** @enum {string} */ + type: "file"; + encoding: string; + size: number; + name: string; + path: string; + content: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + /** @example "actual/actual.md" */ + target?: string; + /** @example "git://example.com/defunkt/dotjs.git" */ + submodule_git_url?: string; + }; + /** + * Symlink Content + * @description An object describing a symlink + */ + "content-symlink": { + /** @enum {string} */ + type: "symlink"; + target: string; + size: number; + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }; + /** + * Submodule Content + * @description An object describing a submodule + */ + "content-submodule": { + /** @enum {string} */ + type: "submodule"; + /** Format: uri */ + submodule_git_url: string; + size: number; + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }; + /** + * File Commit + * @description File Commit + */ + "file-commit": { + content: { + name?: string; + path?: string; + sha?: string; + size?: number; + url?: string; + html_url?: string; + git_url?: string; + download_url?: string; + type?: string; + _links?: { + self?: string; + git?: string; + html?: string; + }; + } | null; + commit: { + sha?: string; + node_id?: string; + url?: string; + html_url?: string; + author?: { + date?: string; + name?: string; + email?: string; + }; + committer?: { + date?: string; + name?: string; + email?: string; + }; + message?: string; + tree?: { + url?: string; + sha?: string; + }; + parents?: { + url?: string; + html_url?: string; + sha?: string; + }[]; + verification?: { + verified?: boolean; + reason?: string; + signature?: string | null; + payload?: string | null; + }; + }; + }; + /** + * Contributor + * @description Contributor + */ + contributor: { + login?: string; + id?: number; + node_id?: string; + /** Format: uri */ + avatar_url?: string; + gravatar_id?: string | null; + /** Format: uri */ + url?: string; + /** Format: uri */ + html_url?: string; + /** Format: uri */ + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + repos_url?: string; + events_url?: string; + /** Format: uri */ + received_events_url?: string; + type: string; + site_admin?: boolean; + contributions: number; + email?: string; + name?: string; + }; + /** @description A Dependabot alert. */ + "dependabot-alert": { + number: components["schemas"]["alert-number"]; + /** + * @description The state of the Dependabot alert. + * @enum {string} + */ + state: "auto_dismissed" | "dismissed" | "fixed" | "open"; + /** @description Details for the vulnerable dependency. */ + dependency: { + readonly package?: components["schemas"]["dependabot-alert-package"]; + /** @description The full path to the dependency manifest file, relative to the root of the repository. */ + readonly manifest_path?: string; + /** + * @description The execution scope of the vulnerable dependency. + * @enum {string|null} + */ + readonly scope?: "development" | "runtime" | null; + }; + security_advisory: components["schemas"]["dependabot-alert-security-advisory"]; + security_vulnerability: components["schemas"]["dependabot-alert-security-vulnerability"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at: components["schemas"]["alert-updated-at"]; + dismissed_at: components["schemas"]["alert-dismissed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + /** + * @description The reason that the alert was dismissed. + * @enum {string|null} + */ + dismissed_reason: + | "fix_started" + | "inaccurate" + | "no_bandwidth" + | "not_used" + | "tolerable_risk" + | null; + /** @description An optional comment associated with the alert's dismissal. */ + dismissed_comment: string | null; + fixed_at: components["schemas"]["alert-fixed-at"]; + auto_dismissed_at?: components["schemas"]["alert-auto-dismissed-at"]; + }; + /** + * Dependabot Secret + * @description Set secrets for Dependabot. + */ + "dependabot-secret": { + /** + * @description The name of the secret. + * @example MY_ARTIFACTORY_PASSWORD + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Dependency Graph Diff + * @description A diff of the dependencies between two commits. + */ + "dependency-graph-diff": { + /** @enum {string} */ + change_type: "added" | "removed"; + /** @example path/to/package-lock.json */ + manifest: string; + /** @example npm */ + ecosystem: string; + /** @example @actions/core */ + name: string; + /** @example 1.0.0 */ + version: string; + /** @example pkg:/npm/%40actions/core@1.1.0 */ + package_url: string | null; + /** @example MIT */ + license: string | null; + /** @example https://github.com/github/actions */ + source_repository_url: string | null; + vulnerabilities: { + /** @example critical */ + severity: string; + /** @example GHSA-rf4j-j272-fj86 */ + advisory_ghsa_id: string; + /** @example A summary of the advisory. */ + advisory_summary: string; + /** @example https://github.com/advisories/GHSA-rf4j-j272-fj86 */ + advisory_url: string; + }[]; + /** + * @description Where the dependency is utilized. `development` means that the dependency is only utilized in the development environment. `runtime` means that the dependency is utilized at runtime and in the development environment. + * @enum {string} + */ + scope: "unknown" | "runtime" | "development"; + }[]; + /** + * Dependency Graph SPDX SBOM + * @description A schema for the SPDX JSON format returned by the Dependency Graph. + */ + "dependency-graph-spdx-sbom": { + sbom: { + /** + * @description The SPDX identifier for the SPDX document. + * @example SPDXRef-DOCUMENT + */ + SPDXID: string; + /** + * @description The version of the SPDX specification that this document conforms to. + * @example SPDX-2.3 + */ + spdxVersion: string; + creationInfo: { + /** + * @description The date and time the SPDX document was created. + * @example 2021-11-03T00:00:00Z + */ + created: string; + /** @description The tools that were used to generate the SPDX document. */ + creators: string[]; + }; + /** + * @description The name of the SPDX document. + * @example github/github + */ + name: string; + /** + * @description The license under which the SPDX document is licensed. + * @example CC0-1.0 + */ + dataLicense: string; + /** @description The name of the repository that the SPDX document describes. */ + documentDescribes: string[]; + /** + * @description The namespace for the SPDX document. + * @example https://github.com/example/dependency_graph/sbom-123 + */ + documentNamespace: string; + packages: { + /** + * @description A unique SPDX identifier for the package. + * @example SPDXRef-Package + */ + SPDXID?: string; + /** + * @description The name of the package. + * @example rubygems:github/github + */ + name?: string; + /** + * @description The version of the package. If the package does not have an exact version specified, + * a version range is given. + * @example 1.0.0 + */ + versionInfo?: string; + /** + * @description The location where the package can be downloaded, + * or NOASSERTION if this has not been determined. + * @example NOASSERTION + */ + downloadLocation?: string; + /** + * @description Whether the package's file content has been subjected to + * analysis during the creation of the SPDX document. + * @example false + */ + filesAnalyzed?: boolean; + /** + * @description The license of the package as determined while creating the SPDX document. + * @example MIT + */ + licenseConcluded?: string; + /** + * @description The license of the package as declared by its author, or NOASSERTION if this information + * was not available when the SPDX document was created. + * @example NOASSERTION + */ + licenseDeclared?: string; + /** + * @description The distribution source of this package, or NOASSERTION if this was not determined. + * @example NOASSERTION + */ + supplier?: string; + externalRefs?: { + /** + * @description The category of reference to an external resource this reference refers to. + * @example PACKAGE-MANAGER + */ + referenceCategory: string; + /** + * @description A locator for the particular external resource this reference refers to. + * @example pkg:gem/rails@6.0.1 + */ + referenceLocator: string; + /** + * @description The category of reference to an external resource this reference refers to. + * @example purl + */ + referenceType: string; + }[]; + }[]; + }; + }; + /** + * metadata + * @description User-defined metadata to store domain-specific information limited to 8 keys with scalar values. + */ + metadata: { + [key: string]: (string | number | boolean) | null; + }; + dependency: { + /** + * @description Package-url (PURL) of dependency. See https://github.com/package-url/purl-spec for more details. + * @example pkg:/npm/%40actions/http-client@1.0.11 + */ + package_url?: string; + metadata?: components["schemas"]["metadata"]; + /** + * @description A notation of whether a dependency is requested directly by this manifest or is a dependency of another dependency. + * @example direct + * @enum {string} + */ + relationship?: "direct" | "indirect"; + /** + * @description A notation of whether the dependency is required for the primary build artifact (runtime) or is only used for development. Future versions of this specification may allow for more granular scopes. + * @example runtime + * @enum {string} + */ + scope?: "runtime" | "development"; + /** + * @description Array of package-url (PURLs) of direct child dependencies. + * @example @actions/http-client + */ + dependencies?: string[]; + }; + manifest: { + /** + * @description The name of the manifest. + * @example package-lock.json + */ + name: string; + file?: { + /** + * @description The path of the manifest file relative to the root of the Git repository. + * @example /src/build/package-lock.json + */ + source_location?: string; + }; + metadata?: components["schemas"]["metadata"]; + /** @description A collection of resolved package dependencies. */ + resolved?: { + [key: string]: components["schemas"]["dependency"]; + }; + }; + /** + * snapshot + * @description Create a new snapshot of a repository's dependencies. + */ + snapshot: { + /** @description The version of the repository snapshot submission. */ + version: number; + job: { + /** + * @description The external ID of the job. + * @example 5622a2b0-63f6-4732-8c34-a1ab27e102a11 + */ + id: string; + /** + * @description Correlator provides a key that is used to group snapshots submitted over time. Only the "latest" submitted snapshot for a given combination of `job.correlator` and `detector.name` will be considered when calculating a repository's current dependencies. Correlator should be as unique as it takes to distinguish all detection runs for a given "wave" of CI workflow you run. If you're using GitHub Actions, a good default value for this could be the environment variables GITHUB_WORKFLOW and GITHUB_JOB concatenated together. If you're using a build matrix, then you'll also need to add additional key(s) to distinguish between each submission inside a matrix variation. + * @example yourworkflowname_yourjobname + */ + correlator: string; + /** + * @description The url for the job. + * @example http://example.com/build + */ + html_url?: string; + }; + /** + * @description The commit SHA associated with this dependency snapshot. Maximum length: 40 characters. + * @example ddc951f4b1293222421f2c8df679786153acf689 + */ + sha: string; + /** + * @description The repository branch that triggered this snapshot. + * @example refs/heads/main + */ + ref: string; + /** @description A description of the detector used. */ + detector: { + /** + * @description The name of the detector used. + * @example docker buildtime detector + */ + name: string; + /** + * @description The version of the detector used. + * @example 1.0.0 + */ + version: string; + /** + * @description The url of the detector used. + * @example http://example.com/docker-buildtimer-detector + */ + url: string; + }; + metadata?: components["schemas"]["metadata"]; + /** @description A collection of package manifests, which are a collection of related dependencies declared in a file or representing a logical group of dependencies. */ + manifests?: { + [key: string]: components["schemas"]["manifest"]; + }; + /** + * Format: date-time + * @description The time at which the snapshot was scanned. + * @example 2020-06-13T14:52:50-05:00 + */ + scanned: string; + }; + /** + * Deployment Status + * @description The status of a deployment. + */ + "deployment-status": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/42/statuses/1 + */ + url: string; + /** @example 1 */ + id: number; + /** @example MDE2OkRlcGxveW1lbnRTdGF0dXMx */ + node_id: string; + /** + * @description The state of the status. + * @example success + * @enum {string} + */ + state: + | "error" + | "failure" + | "inactive" + | "pending" + | "success" + | "queued" + | "in_progress"; + creator: components["schemas"]["nullable-simple-user"]; + /** + * @description A short description of the status. + * @default + * @example Deployment finished successfully. + */ + description: string; + /** + * @description The environment of the deployment that the status is for. + * @default + * @example production + */ + environment?: string; + /** + * Format: uri + * @description Deprecated: the URL to associate with this status. + * @default + * @example https://example.com/deployment/42/output + */ + target_url: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + created_at: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/42 + */ + deployment_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + /** + * Format: uri + * @description The URL for accessing your environment. + * @default + * @example https://staging.example.com/ + */ + environment_url?: string; + /** + * Format: uri + * @description The URL to associate with this status. + * @default + * @example https://example.com/deployment/42/output + */ + log_url?: string; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * @description The amount of time to delay a job after the job is initially triggered. The time (in minutes) must be an integer between 0 and 43,200 (30 days). + * @example 30 + */ + "wait-timer": number; + /** @description The type of deployment branch policy for this environment. To allow all branches to deploy, set to `null`. */ + "deployment-branch-policy-settings": { + /** @description Whether only branches with branch protection rules can deploy to this environment. If `protected_branches` is `true`, `custom_branch_policies` must be `false`; if `protected_branches` is `false`, `custom_branch_policies` must be `true`. */ + protected_branches: boolean; + /** @description Whether only branches that match the specified name patterns can deploy to this environment. If `custom_branch_policies` is `true`, `protected_branches` must be `false`; if `custom_branch_policies` is `false`, `protected_branches` must be `true`. */ + custom_branch_policies: boolean; + } | null; + /** + * Environment + * @description Details of a deployment environment + */ + environment: { + /** + * @description The id of the environment. + * @example 56780428 + */ + id: number; + /** @example MDExOkVudmlyb25tZW50NTY3ODA0Mjg= */ + node_id: string; + /** + * @description The name of the environment. + * @example staging + */ + name: string; + /** @example https://api.github.com/repos/github/hello-world/environments/staging */ + url: string; + /** @example https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging */ + html_url: string; + /** + * Format: date-time + * @description The time that the environment was created, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + created_at: string; + /** + * Format: date-time + * @description The time that the environment was last updated, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + updated_at: string; + /** @description Built-in deployment protection rules for the environment. */ + protection_rules?: ( + | { + /** @example 3515 */ + id: number; + /** @example MDQ6R2F0ZTM1MTU= */ + node_id: string; + /** @example wait_timer */ + type: string; + wait_timer?: components["schemas"]["wait-timer"]; + } + | { + /** @example 3755 */ + id: number; + /** @example MDQ6R2F0ZTM3NTU= */ + node_id: string; + /** + * @description Whether deployments to this environment can be approved by the user who created the deployment. + * @example false + */ + prevent_self_review?: boolean; + /** @example required_reviewers */ + type: string; + /** @description The people or teams that may approve jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ + reviewers?: { + type?: components["schemas"]["deployment-reviewer-type"]; + reviewer?: + | components["schemas"]["simple-user"] + | components["schemas"]["team"]; + }[]; + } + | { + /** @example 3515 */ + id: number; + /** @example MDQ6R2F0ZTM1MTU= */ + node_id: string; + /** @example branch_policy */ + type: string; + } + )[]; + deployment_branch_policy?: components["schemas"]["deployment-branch-policy-settings"]; + }; + /** + * @description Whether or not a user who created the job is prevented from approving their own job. + * @example false + */ + "prevent-self-review": boolean; + /** + * Deployment branch policy + * @description Details of a deployment branch or tag policy. + */ + "deployment-branch-policy": { + /** + * @description The unique identifier of the branch or tag policy. + * @example 361471 + */ + id?: number; + /** @example MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjE0NzE= */ + node_id?: string; + /** + * @description The name pattern that branches or tags must match in order to deploy to the environment. + * @example release/* + */ + name?: string; + /** + * @description Whether this rule targets a branch or tag. + * @example branch + * @enum {string} + */ + type?: "branch" | "tag"; + }; + /** Deployment branch and tag policy name pattern */ + "deployment-branch-policy-name-pattern-with-type": { + /** + * @description The name pattern that branches or tags must match in order to deploy to the environment. + * + * Wildcard characters will not match `/`. For example, to match branches that begin with `release/` and contain an additional single slash, use `release/*\/*`. + * For more information about pattern matching syntax, see the [Ruby File.fnmatch documentation](https://ruby-doc.org/core-2.5.1/File.html#method-c-fnmatch). + * @example release/* + */ + name: string; + /** + * @description Whether this rule targets a branch or tag + * @example branch + * @enum {string} + */ + type?: "branch" | "tag"; + }; + /** Deployment branch policy name pattern */ + "deployment-branch-policy-name-pattern": { + /** + * @description The name pattern that branches must match in order to deploy to the environment. + * + * Wildcard characters will not match `/`. For example, to match branches that begin with `release/` and contain an additional single slash, use `release/*\/*`. + * For more information about pattern matching syntax, see the [Ruby File.fnmatch documentation](https://ruby-doc.org/core-2.5.1/File.html#method-c-fnmatch). + * @example release/* + */ + name: string; + }; + /** + * Custom deployment protection rule app + * @description A GitHub App that is providing a custom deployment protection rule. + */ + "custom-deployment-rule-app": { + /** + * @description The unique identifier of the deployment protection rule integration. + * @example 3515 + */ + id: number; + /** + * @description The slugified name of the deployment protection rule integration. + * @example my-custom-app + */ + slug: string; + /** + * @description The URL for the endpoint to get details about the app. + * @example https://api.github.com/apps/custom-app-slug + */ + integration_url: string; + /** + * @description The node ID for the deployment protection rule integration. + * @example MDQ6R2F0ZTM1MTU= + */ + node_id: string; + }; + /** + * Deployment protection rule + * @description Deployment protection rule + */ + "deployment-protection-rule": { + /** + * @description The unique identifier for the deployment protection rule. + * @example 3515 + */ + id: number; + /** + * @description The node ID for the deployment protection rule. + * @example MDQ6R2F0ZTM1MTU= + */ + node_id: string; + /** + * @description Whether the deployment protection rule is enabled for the environment. + * @example true + */ + enabled: boolean; + app: components["schemas"]["custom-deployment-rule-app"]; + }; + /** + * Short Blob + * @description Short Blob + */ + "short-blob": { + url: string; + sha: string; + }; + /** + * Blob + * @description Blob + */ + blob: { + content: string; + encoding: string; + /** Format: uri */ + url: string; + sha: string; + size: number | null; + node_id: string; + highlighted_content?: string; + }; + /** + * Git Commit + * @description Low-level Git commit operations within a repository + */ + "git-commit": { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + node_id: string; + /** Format: uri */ + url: string; + /** @description Identifying information for the git-user */ + author: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** @description Identifying information for the git-user */ + committer: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + tree: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + }; + parents: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string | null; + payload: string | null; + }; + /** Format: uri */ + html_url: string; + }; + /** + * Git Reference + * @description Git references within a repository + */ + "git-ref": { + ref: string; + node_id: string; + /** Format: uri */ + url: string; + object: { + type: string; + /** + * @description SHA for the reference + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + }; + }; + /** + * Git Tag + * @description Metadata for a Git tag + */ + "git-tag": { + /** @example MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw== */ + node_id: string; + /** + * @description Name of the tag + * @example v0.0.1 + */ + tag: string; + /** @example 940bd336248efae0f9ee5bc7b2d5c985887b16ac */ + sha: string; + /** + * Format: uri + * @description URL for the tag + * @example https://api.github.com/repositories/42/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac + */ + url: string; + /** + * @description Message describing the purpose of the tag + * @example Initial public release + */ + message: string; + tagger: { + date: string; + email: string; + name: string; + }; + object: { + sha: string; + type: string; + /** Format: uri */ + url: string; + }; + verification?: components["schemas"]["verification"]; + }; + /** + * Git Tree + * @description The hierarchy between files in a Git repository. + */ + "git-tree": { + sha: string; + /** Format: uri */ + url: string; + truncated: boolean; + /** + * @description Objects specifying a tree structure + * @example [ + * { + * "path": "file.rb", + * "mode": "100644", + * "type": "blob", + * "size": 30, + * "sha": "44b4fc6d56897b048c772eb4087f854f46256132", + * "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", + * "properties": { + * "path": { + * "type": "string" + * }, + * "mode": { + * "type": "string" + * }, + * "type": { + * "type": "string" + * }, + * "size": { + * "type": "integer" + * }, + * "sha": { + * "type": "string" + * }, + * "url": { + * "type": "string" + * } + * }, + * "required": [ + * "path", + * "mode", + * "type", + * "sha", + * "url", + * "size" + * ] + * } + * ] + */ + tree: { + /** @example test/file.rb */ + path?: string; + /** @example 040000 */ + mode?: string; + /** @example tree */ + type?: string; + /** @example 23f6827669e43831def8a7ad935069c8bd418261 */ + sha?: string; + /** @example 12 */ + size?: number; + /** @example https://api.github.com/repos/owner-482f3203ecf01f67e9deb18e/BBB_Private_Repo/git/blobs/23f6827669e43831def8a7ad935069c8bd418261 */ + url?: string; + }[]; + }; + /** Hook Response */ + "hook-response": { + code: number | null; + status: string | null; + message: string | null; + }; + /** + * Webhook + * @description Webhooks for repositories. + */ + hook: { + type: string; + /** + * @description Unique identifier of the webhook. + * @example 42 + */ + id: number; + /** + * @description The name of a valid service, use 'web' for a webhook. + * @example web + */ + name: string; + /** + * @description Determines whether the hook is actually triggered on pushes. + * @example true + */ + active: boolean; + /** + * @description Determines what events the hook is triggered for. Default: ['push']. + * @example [ + * "push", + * "pull_request" + * ] + */ + events: string[]; + config: components["schemas"]["webhook-config"]; + /** + * Format: date-time + * @example 2011-09-06T20:39:23Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-09-06T17:26:27Z + */ + created_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1/test + */ + test_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1/pings + */ + ping_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1/deliveries + */ + deliveries_url?: string; + last_response: components["schemas"]["hook-response"]; + }; + /** + * Import + * @description A repository import from an external source. + */ + import: { + vcs: string | null; + use_lfs?: boolean; + /** @description The URL of the originating repository. */ + vcs_url: string; + svc_root?: string; + tfvc_project?: string; + /** @enum {string} */ + status: + | "auth" + | "error" + | "none" + | "detecting" + | "choose" + | "auth_failed" + | "importing" + | "mapping" + | "waiting_to_push" + | "pushing" + | "complete" + | "setup" + | "unknown" + | "detection_found_multiple" + | "detection_found_nothing" + | "detection_needs_auth"; + status_text?: string | null; + failed_step?: string | null; + error_message?: string | null; + import_percent?: number | null; + commit_count?: number | null; + push_percent?: number | null; + has_large_files?: boolean; + large_files_size?: number; + large_files_count?: number; + project_choices?: { + vcs?: string; + tfvc_project?: string; + human_name?: string; + }[]; + message?: string; + authors_count?: number | null; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + authors_url: string; + /** Format: uri */ + repository_url: string; + svn_root?: string; + }; + /** + * Porter Author + * @description Porter Author + */ + "porter-author": { + id: number; + remote_id: string; + remote_name: string; + email: string; + name: string; + /** Format: uri */ + url: string; + /** Format: uri */ + import_url: string; + }; + /** + * Porter Large File + * @description Porter Large File + */ + "porter-large-file": { + ref_name: string; + path: string; + oid: string; + size: number; + }; + /** + * Issue + * @description Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. + */ + "nullable-issue": { + /** Format: int64 */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue + * @example https://api.github.com/repositories/42/issues/1 + */ + url: string; + /** Format: uri */ + repository_url: string; + labels_url: string; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** + * @description Number uniquely identifying the issue within its repository + * @example 42 + */ + number: number; + /** + * @description State of the issue; either 'open' or 'closed' + * @example open + */ + state: string; + /** + * @description The reason for the current state + * @example not_planned + * @enum {string|null} + */ + state_reason?: "completed" | "reopened" | "not_planned" | null; + /** + * @description Title of the issue + * @example Widget creation fails in Safari on OS X 10.8 + */ + title: string; + /** + * @description Contents of the issue + * @example It looks like the new widget form is broken on Safari. When I try and create the widget, Safari crashes. This is reproducible on 10.8, but not 10.9. Maybe a browser bug? + */ + body?: string | null; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository + * @example [ + * "bug", + * "registration" + * ] + */ + labels: OneOf< + [ + string, + { + /** Format: int64 */ + id?: number; + node_id?: string; + /** Format: uri */ + url?: string; + name?: string; + description?: string | null; + color?: string | null; + default?: boolean; + }, + ] + >[]; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + milestone: components["schemas"]["nullable-milestone"]; + locked: boolean; + active_lock_reason?: string | null; + comments: number; + pull_request?: { + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + diff_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + patch_url: string | null; + /** Format: uri */ + url: string | null; + }; + /** Format: date-time */ + closed_at: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + draft?: boolean; + closed_by?: components["schemas"]["nullable-simple-user"]; + body_html?: string; + body_text?: string; + /** Format: uri */ + timeline_url?: string; + repository?: components["schemas"]["repository"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + author_association: components["schemas"]["author-association"]; + reactions?: components["schemas"]["reaction-rollup"]; + } | null; + /** + * Issue Event Label + * @description Issue Event Label + */ + "issue-event-label": { + name: string | null; + color: string | null; + }; + /** Issue Event Dismissed Review */ + "issue-event-dismissed-review": { + state: string; + review_id: number; + dismissal_message: string | null; + dismissal_commit_id?: string | null; + }; + /** + * Issue Event Milestone + * @description Issue Event Milestone + */ + "issue-event-milestone": { + title: string; + }; + /** + * Issue Event Project Card + * @description Issue Event Project Card + */ + "issue-event-project-card": { + /** Format: uri */ + url: string; + id: number; + /** Format: uri */ + project_url: string; + project_id: number; + column_name: string; + previous_column_name?: string; + }; + /** + * Issue Event Rename + * @description Issue Event Rename + */ + "issue-event-rename": { + from: string; + to: string; + }; + /** + * Issue Event + * @description Issue Event + */ + "issue-event": { + /** + * Format: int64 + * @example 1 + */ + id: number; + /** @example MDEwOklzc3VlRXZlbnQx */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/events/1 + */ + url: string; + actor: components["schemas"]["nullable-simple-user"]; + /** @example closed */ + event: string; + /** @example 6dcb09b5b57875f334f61aebed695e2e4193db5e */ + commit_id: string | null; + /** @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e */ + commit_url: string | null; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + issue?: components["schemas"]["nullable-issue"]; + label?: components["schemas"]["issue-event-label"]; + assignee?: components["schemas"]["nullable-simple-user"]; + assigner?: components["schemas"]["nullable-simple-user"]; + review_requester?: components["schemas"]["nullable-simple-user"]; + requested_reviewer?: components["schemas"]["nullable-simple-user"]; + requested_team?: components["schemas"]["team"]; + dismissed_review?: components["schemas"]["issue-event-dismissed-review"]; + milestone?: components["schemas"]["issue-event-milestone"]; + project_card?: components["schemas"]["issue-event-project-card"]; + rename?: components["schemas"]["issue-event-rename"]; + author_association?: components["schemas"]["author-association"]; + lock_reason?: string | null; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * Labeled Issue Event + * @description Labeled Issue Event + */ + "labeled-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + label: { + name: string; + color: string; + }; + }; + /** + * Unlabeled Issue Event + * @description Unlabeled Issue Event + */ + "unlabeled-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + label: { + name: string; + color: string; + }; + }; + /** + * Assigned Issue Event + * @description Assigned Issue Event + */ + "assigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["integration"]; + assignee: components["schemas"]["simple-user"]; + assigner: components["schemas"]["simple-user"]; + }; + /** + * Unassigned Issue Event + * @description Unassigned Issue Event + */ + "unassigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + assignee: components["schemas"]["simple-user"]; + assigner: components["schemas"]["simple-user"]; + }; + /** + * Milestoned Issue Event + * @description Milestoned Issue Event + */ + "milestoned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + milestone: { + title: string; + }; + }; + /** + * Demilestoned Issue Event + * @description Demilestoned Issue Event + */ + "demilestoned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + milestone: { + title: string; + }; + }; + /** + * Renamed Issue Event + * @description Renamed Issue Event + */ + "renamed-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + rename: { + from: string; + to: string; + }; + }; + /** + * Review Requested Issue Event + * @description Review Requested Issue Event + */ + "review-requested-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + review_requester: components["schemas"]["simple-user"]; + requested_team?: components["schemas"]["team"]; + requested_reviewer?: components["schemas"]["simple-user"]; + }; + /** + * Review Request Removed Issue Event + * @description Review Request Removed Issue Event + */ + "review-request-removed-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + review_requester: components["schemas"]["simple-user"]; + requested_team?: components["schemas"]["team"]; + requested_reviewer?: components["schemas"]["simple-user"]; + }; + /** + * Review Dismissed Issue Event + * @description Review Dismissed Issue Event + */ + "review-dismissed-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + dismissed_review: { + state: string; + review_id: number; + dismissal_message: string | null; + dismissal_commit_id?: string; + }; + }; + /** + * Locked Issue Event + * @description Locked Issue Event + */ + "locked-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + /** @example "off-topic" */ + lock_reason: string | null; + }; + /** + * Added to Project Issue Event + * @description Added to Project Issue Event + */ + "added-to-project-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Moved Column in Project Issue Event + * @description Moved Column in Project Issue Event + */ + "moved-column-in-project-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Removed from Project Issue Event + * @description Removed from Project Issue Event + */ + "removed-from-project-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Converted Note to Issue Issue Event + * @description Converted Note to Issue Issue Event + */ + "converted-note-to-issue-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Issue Event for Issue + * @description Issue Event for Issue + */ + "issue-event-for-issue": + | components["schemas"]["labeled-issue-event"] + | components["schemas"]["unlabeled-issue-event"] + | components["schemas"]["assigned-issue-event"] + | components["schemas"]["unassigned-issue-event"] + | components["schemas"]["milestoned-issue-event"] + | components["schemas"]["demilestoned-issue-event"] + | components["schemas"]["renamed-issue-event"] + | components["schemas"]["review-requested-issue-event"] + | components["schemas"]["review-request-removed-issue-event"] + | components["schemas"]["review-dismissed-issue-event"] + | components["schemas"]["locked-issue-event"] + | components["schemas"]["added-to-project-issue-event"] + | components["schemas"]["moved-column-in-project-issue-event"] + | components["schemas"]["removed-from-project-issue-event"] + | components["schemas"]["converted-note-to-issue-issue-event"]; + /** + * Label + * @description Color-coded labels help you categorize and filter your issues (just like labels in Gmail). + */ + label: { + /** + * Format: int64 + * @example 208045946 + */ + id: number; + /** @example MDU6TGFiZWwyMDgwNDU5NDY= */ + node_id: string; + /** + * Format: uri + * @description URL for the label + * @example https://api.github.com/repositories/42/labels/bug + */ + url: string; + /** + * @description The name of the label. + * @example bug + */ + name: string; + /** @example Something isn't working */ + description: string | null; + /** + * @description 6-character hex code, without the leading #, identifying the color + * @example FFFFFF + */ + color: string; + /** @example true */ + default: boolean; + }; + /** + * Timeline Comment Event + * @description Timeline Comment Event + */ + "timeline-comment-event": { + event: string; + actor: components["schemas"]["simple-user"]; + /** + * @description Unique identifier of the issue comment + * @example 42 + */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue comment + * @example https://api.github.com/repositories/42/issues/comments/1 + */ + url: string; + /** + * @description Contents of the issue comment + * @example What version of Safari were you using when you observed this bug? + */ + body?: string; + body_text?: string; + body_html?: string; + /** Format: uri */ + html_url: string; + user: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** Format: uri */ + issue_url: string; + author_association: components["schemas"]["author-association"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Timeline Cross Referenced Event + * @description Timeline Cross Referenced Event + */ + "timeline-cross-referenced-event": { + event: string; + actor?: components["schemas"]["simple-user"]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + source: { + type?: string; + issue?: components["schemas"]["issue"]; + }; + }; + /** + * Timeline Committed Event + * @description Timeline Committed Event + */ + "timeline-committed-event": { + event?: string; + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + node_id: string; + /** Format: uri */ + url: string; + /** @description Identifying information for the git-user */ + author: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** @description Identifying information for the git-user */ + committer: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + tree: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + }; + parents: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string | null; + payload: string | null; + }; + /** Format: uri */ + html_url: string; + }; + /** + * Timeline Reviewed Event + * @description Timeline Reviewed Event + */ + "timeline-reviewed-event": { + event: string; + /** + * @description Unique identifier of the review + * @example 42 + */ + id: number; + /** @example MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= */ + node_id: string; + user: components["schemas"]["simple-user"]; + /** + * @description The text of the review. + * @example This looks great. + */ + body: string | null; + /** @example CHANGES_REQUESTED */ + state: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/12 + */ + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + /** Format: date-time */ + submitted_at?: string; + /** + * @description A commit SHA for the review. + * @example 54bb654c9e6025347f57900a4a5c2313a96b8035 + */ + commit_id: string; + body_html?: string; + body_text?: string; + author_association: components["schemas"]["author-association"]; + }; + /** + * Pull Request Review Comment + * @description Pull Request Review Comments are comments on a portion of the Pull Request's diff. + */ + "pull-request-review-comment": { + /** + * @description URL for the pull request review comment + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + */ + url: string; + /** + * @description The ID of the pull request review to which the comment belongs. + * @example 42 + */ + pull_request_review_id: number | null; + /** + * @description The ID of the pull request review comment. + * @example 1 + */ + id: number; + /** + * @description The node ID of the pull request review comment. + * @example MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw + */ + node_id: string; + /** + * @description The diff of the line that the comment refers to. + * @example @@ -16,33 +16,40 @@ public class Connection : IConnection... + */ + diff_hunk: string; + /** + * @description The relative path of the file to which the comment applies. + * @example config/database.yaml + */ + path: string; + /** + * @description The line index in the diff to which the comment applies. This field is deprecated; use `line` instead. + * @example 1 + */ + position?: number; + /** + * @description The index of the original line in the diff to which the comment applies. This field is deprecated; use `original_line` instead. + * @example 4 + */ + original_position?: number; + /** + * @description The SHA of the commit to which the comment applies. + * @example 6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + commit_id: string; + /** + * @description The SHA of the original commit to which the comment applies. + * @example 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 + */ + original_commit_id: string; + /** + * @description The comment ID to reply to. + * @example 8 + */ + in_reply_to_id?: number; + user: components["schemas"]["simple-user"]; + /** + * @description The text of the comment. + * @example We should probably include a check for null values here. + */ + body: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + * @example https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + */ + html_url: string; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1 + */ + pull_request_url: string; + author_association: components["schemas"]["author-association"]; + _links: { + self: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + */ + href: string; + }; + html: { + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + */ + href: string; + }; + pull_request: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1 + */ + href: string; + }; + }; + /** + * @description The first line of the range for a multi-line comment. + * @example 2 + */ + start_line?: number | null; + /** + * @description The first line of the range for a multi-line comment. + * @example 2 + */ + original_start_line?: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side?: "LEFT" | "RIGHT" | null; + /** + * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + line?: number; + /** + * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + original_line?: number; + /** + * @description The side of the diff to which the comment applies. The side of the last line of the range for a multi-line comment + * @default RIGHT + * @enum {string} + */ + side?: "LEFT" | "RIGHT"; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + reactions?: components["schemas"]["reaction-rollup"]; + /** @example "

comment body

" */ + body_html?: string; + /** @example "comment body" */ + body_text?: string; + }; + /** + * Timeline Line Commented Event + * @description Timeline Line Commented Event + */ + "timeline-line-commented-event": { + event?: string; + node_id?: string; + comments?: components["schemas"]["pull-request-review-comment"][]; + }; + /** + * Timeline Commit Commented Event + * @description Timeline Commit Commented Event + */ + "timeline-commit-commented-event": { + event?: string; + node_id?: string; + commit_id?: string; + comments?: components["schemas"]["commit-comment"][]; + }; + /** + * Timeline Assigned Issue Event + * @description Timeline Assigned Issue Event + */ + "timeline-assigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + assignee: components["schemas"]["simple-user"]; + }; + /** + * Timeline Unassigned Issue Event + * @description Timeline Unassigned Issue Event + */ + "timeline-unassigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + assignee: components["schemas"]["simple-user"]; + }; + /** + * State Change Issue Event + * @description State Change Issue Event + */ + "state-change-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + state_reason?: string | null; + }; + /** + * Timeline Event + * @description Timeline Event + */ + "timeline-issue-events": + | components["schemas"]["labeled-issue-event"] + | components["schemas"]["unlabeled-issue-event"] + | components["schemas"]["milestoned-issue-event"] + | components["schemas"]["demilestoned-issue-event"] + | components["schemas"]["renamed-issue-event"] + | components["schemas"]["review-requested-issue-event"] + | components["schemas"]["review-request-removed-issue-event"] + | components["schemas"]["review-dismissed-issue-event"] + | components["schemas"]["locked-issue-event"] + | components["schemas"]["added-to-project-issue-event"] + | components["schemas"]["moved-column-in-project-issue-event"] + | components["schemas"]["removed-from-project-issue-event"] + | components["schemas"]["converted-note-to-issue-issue-event"] + | components["schemas"]["timeline-comment-event"] + | components["schemas"]["timeline-cross-referenced-event"] + | components["schemas"]["timeline-committed-event"] + | components["schemas"]["timeline-reviewed-event"] + | components["schemas"]["timeline-line-commented-event"] + | components["schemas"]["timeline-commit-commented-event"] + | components["schemas"]["timeline-assigned-issue-event"] + | components["schemas"]["timeline-unassigned-issue-event"] + | components["schemas"]["state-change-issue-event"]; + /** + * Deploy Key + * @description An SSH key granting access to a single repository. + */ + "deploy-key": { + id: number; + key: string; + url: string; + title: string; + verified: boolean; + created_at: string; + read_only: boolean; + added_by?: string | null; + last_used?: string | null; + }; + /** + * Language + * @description Language + */ + language: { + [key: string]: number; + }; + /** + * License Content + * @description License Content + */ + "license-content": { + name: string; + path: string; + sha: string; + size: number; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + download_url: string | null; + type: string; + content: string; + encoding: string; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + license: components["schemas"]["nullable-license-simple"]; + }; + /** + * Merged upstream + * @description Results of a successful merge upstream request + */ + "merged-upstream": { + message?: string; + /** @enum {string} */ + merge_type?: "merge" | "fast-forward" | "none"; + base_branch?: string; + }; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1 + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/milestones/v1.0 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + */ + labels_url: string; + /** @example 1002604 */ + id: number; + /** @example MDk6TWlsZXN0b25lMTAwMjYwNA== */ + node_id: string; + /** + * @description The number of the milestone. + * @example 42 + */ + number: number; + /** + * @description The state of the milestone. + * @default open + * @example open + * @enum {string} + */ + state: "open" | "closed"; + /** + * @description The title of the milestone. + * @example v1.0 + */ + title: string; + /** @example Tracking milestone for version 1.0 */ + description: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** @example 4 */ + open_issues: number; + /** @example 8 */ + closed_issues: number; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2013-02-12T13:22:01Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2012-10-09T23:39:01Z + */ + due_on: string | null; + }; + /** Pages Source Hash */ + "pages-source-hash": { + branch: string; + path: string; + }; + /** Pages Https Certificate */ + "pages-https-certificate": { + /** + * @example approved + * @enum {string} + */ + state: + | "new" + | "authorization_created" + | "authorization_pending" + | "authorized" + | "authorization_revoked" + | "issued" + | "uploaded" + | "approved" + | "errored" + | "bad_authz" + | "destroy_pending" + | "dns_changed"; + /** @example Certificate is approved */ + description: string; + /** + * @description Array of the domain set and its alternate name (if it is configured) + * @example [ + * "example.com", + * "www.example.com" + * ] + */ + domains: string[]; + /** Format: date */ + expires_at?: string; + }; + /** + * GitHub Pages + * @description The configuration for GitHub Pages for a repository. + */ + page: { + /** + * Format: uri + * @description The API address for accessing this Page resource. + * @example https://api.github.com/repos/github/hello-world/pages + */ + url: string; + /** + * @description The status of the most recent build of the Page. + * @example built + * @enum {string|null} + */ + status: "built" | "building" | "errored" | null; + /** + * @description The Pages site's custom domain + * @example example.com + */ + cname: string | null; + /** + * @description The state if the domain is verified + * @example pending + * @enum {string|null} + */ + protected_domain_state?: "pending" | "verified" | "unverified" | null; + /** + * Format: date-time + * @description The timestamp when a pending domain becomes unverified. + */ + pending_domain_unverified_at?: string | null; + /** + * @description Whether the Page has a custom 404 page. + * @default false + * @example false + */ + custom_404: boolean; + /** + * Format: uri + * @description The web address the Page can be accessed from. + * @example https://example.com + */ + html_url?: string; + /** + * @description The process in which the Page will be built. + * @example legacy + * @enum {string|null} + */ + build_type?: "legacy" | "workflow" | null; + source?: components["schemas"]["pages-source-hash"]; + /** + * @description Whether the GitHub Pages site is publicly visible. If set to `true`, the site is accessible to anyone on the internet. If set to `false`, the site will only be accessible to users who have at least `read` access to the repository that published the site. + * @example true + */ + public: boolean; + https_certificate?: components["schemas"]["pages-https-certificate"]; + /** + * @description Whether https is enabled on the domain + * @example true + */ + https_enforced?: boolean; + }; + /** + * Page Build + * @description Page Build + */ + "page-build": { + /** Format: uri */ + url: string; + status: string; + error: { + message: string | null; + }; + pusher: components["schemas"]["nullable-simple-user"]; + commit: string; + duration: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Page Build Status + * @description Page Build Status + */ + "page-build-status": { + /** + * Format: uri + * @example https://api.github.com/repos/github/hello-world/pages/builds/latest + */ + url: string; + /** @example queued */ + status: string; + }; + /** + * GitHub Pages + * @description The GitHub Pages deployment status. + */ + "page-deployment": { + /** @description The ID of the GitHub Pages deployment. This is the Git SHA of the deployed commit. */ + id: number | string; + /** + * Format: uri + * @description The URI to monitor GitHub Pages deployment status. + * @example https://api.github.com/repos/github/hello-world/pages/deployments/4fd754f7e594640989b406850d0bc8f06a121251 + */ + status_url: string; + /** + * Format: uri + * @description The URI to the deployed GitHub Pages. + * @example hello-world.github.io + */ + page_url: string; + /** + * Format: uri + * @description The URI to the deployed GitHub Pages preview. + * @example monalisa-1231a2312sa32-23sda74.drafts.github.io + */ + preview_url?: string; + }; + /** GitHub Pages deployment status */ + "pages-deployment-status": { + /** + * @description The current status of the deployment. + * @enum {string} + */ + status?: + | "deployment_in_progress" + | "syncing_files" + | "finished_file_sync" + | "updating_pages" + | "purging_cdn" + | "deployment_cancelled" + | "deployment_failed" + | "deployment_content_failed" + | "deployment_attempt_error" + | "deployment_lost" + | "succeed"; + }; + /** + * Pages Health Check Status + * @description Pages Health Check Status + */ + "pages-health-check": { + domain?: { + host?: string; + uri?: string; + nameservers?: string; + dns_resolves?: boolean; + is_proxied?: boolean | null; + is_cloudflare_ip?: boolean | null; + is_fastly_ip?: boolean | null; + is_old_ip_address?: boolean | null; + is_a_record?: boolean | null; + has_cname_record?: boolean | null; + has_mx_records_present?: boolean | null; + is_valid_domain?: boolean; + is_apex_domain?: boolean; + should_be_a_record?: boolean | null; + is_cname_to_github_user_domain?: boolean | null; + is_cname_to_pages_dot_github_dot_com?: boolean | null; + is_cname_to_fastly?: boolean | null; + is_pointed_to_github_pages_ip?: boolean | null; + is_non_github_pages_ip_present?: boolean | null; + is_pages_domain?: boolean; + is_served_by_pages?: boolean | null; + is_valid?: boolean; + reason?: string | null; + responds_to_https?: boolean; + enforces_https?: boolean; + https_error?: string | null; + is_https_eligible?: boolean | null; + caa_error?: string | null; + }; + alt_domain?: { + host?: string; + uri?: string; + nameservers?: string; + dns_resolves?: boolean; + is_proxied?: boolean | null; + is_cloudflare_ip?: boolean | null; + is_fastly_ip?: boolean | null; + is_old_ip_address?: boolean | null; + is_a_record?: boolean | null; + has_cname_record?: boolean | null; + has_mx_records_present?: boolean | null; + is_valid_domain?: boolean; + is_apex_domain?: boolean; + should_be_a_record?: boolean | null; + is_cname_to_github_user_domain?: boolean | null; + is_cname_to_pages_dot_github_dot_com?: boolean | null; + is_cname_to_fastly?: boolean | null; + is_pointed_to_github_pages_ip?: boolean | null; + is_non_github_pages_ip_present?: boolean | null; + is_pages_domain?: boolean; + is_served_by_pages?: boolean | null; + is_valid?: boolean; + reason?: string | null; + responds_to_https?: boolean; + enforces_https?: boolean; + https_error?: string | null; + is_https_eligible?: boolean | null; + caa_error?: string | null; + } | null; + }; + /** + * Pull Request + * @description Pull requests let you tell others about changes you've pushed to a repository on GitHub. Once a pull request is sent, interested parties can review the set of changes, discuss potential modifications, and even push follow-up commits if necessary. + */ + "pull-request": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347 + */ + url: string; + /** @example 1 */ + id: number; + /** @example MDExOlB1bGxSZXF1ZXN0MQ== */ + node_id: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347 + */ + html_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.diff + */ + diff_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.patch + */ + patch_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + */ + commits_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + */ + review_comments_url: string; + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} */ + review_comment_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + */ + comments_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + statuses_url: string; + /** + * @description Number uniquely identifying the pull request within its repository. + * @example 42 + */ + number: number; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @example open + * @enum {string} + */ + state: "open" | "closed"; + /** @example true */ + locked: boolean; + /** + * @description The title of the pull request. + * @example Amazing new feature + */ + title: string; + user: components["schemas"]["simple-user"]; + /** @example Please pull these awesome changes */ + body: string | null; + labels: { + /** Format: int64 */ + id: number; + node_id: string; + url: string; + name: string; + description: string | null; + color: string; + default: boolean; + }[]; + milestone: components["schemas"]["nullable-milestone"]; + /** @example too heated */ + active_lock_reason?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + merged_at: string | null; + /** @example e5bd3914e2e596debea16f433f57875b5b90bcd6 */ + merge_commit_sha: string | null; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + requested_reviewers?: components["schemas"]["simple-user"][] | null; + requested_teams?: components["schemas"]["team-simple"][] | null; + head: { + label: string; + ref: string; + repo: { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + milestones_url: string; + name: string; + notifications_url: string; + owner: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + private: boolean; + pulls_url: string; + releases_url: string; + /** Format: uri */ + stargazers_url: string; + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + trees_url: string; + /** Format: uri */ + url: string; + clone_url: string; + default_branch: string; + forks: number; + forks_count: number; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_discussions: boolean; + /** Format: uri */ + homepage: string | null; + language: string | null; + master_branch?: string; + archived: boolean; + disabled: boolean; + /** @description The repository visibility: public, private, or internal. */ + visibility?: string; + /** Format: uri */ + mirror_url: string | null; + open_issues: number; + open_issues_count: number; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + license: { + key: string; + name: string; + /** Format: uri */ + url: string | null; + spdx_id: string | null; + node_id: string; + } | null; + /** Format: date-time */ + pushed_at: string; + size: number; + ssh_url: string; + stargazers_count: number; + /** Format: uri */ + svn_url: string; + topics?: string[]; + watchers: number; + watchers_count: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + allow_forking?: boolean; + is_template?: boolean; + web_commit_signoff_required?: boolean; + } | null; + sha: string; + user: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + }; + base: { + label: string; + ref: string; + repo: { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + id: number; + is_template?: boolean; + node_id: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + milestones_url: string; + name: string; + notifications_url: string; + owner: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + private: boolean; + pulls_url: string; + releases_url: string; + /** Format: uri */ + stargazers_url: string; + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + trees_url: string; + /** Format: uri */ + url: string; + clone_url: string; + default_branch: string; + forks: number; + forks_count: number; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_discussions: boolean; + /** Format: uri */ + homepage: string | null; + language: string | null; + master_branch?: string; + archived: boolean; + disabled: boolean; + /** @description The repository visibility: public, private, or internal. */ + visibility?: string; + /** Format: uri */ + mirror_url: string | null; + open_issues: number; + open_issues_count: number; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + license: components["schemas"]["nullable-license-simple"]; + /** Format: date-time */ + pushed_at: string; + size: number; + ssh_url: string; + stargazers_count: number; + /** Format: uri */ + svn_url: string; + topics?: string[]; + watchers: number; + watchers_count: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + allow_forking?: boolean; + web_commit_signoff_required?: boolean; + }; + sha: string; + user: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + }; + _links: { + comments: components["schemas"]["link"]; + commits: components["schemas"]["link"]; + statuses: components["schemas"]["link"]; + html: components["schemas"]["link"]; + issue: components["schemas"]["link"]; + review_comments: components["schemas"]["link"]; + review_comment: components["schemas"]["link"]; + self: components["schemas"]["link"]; + }; + author_association: components["schemas"]["author-association"]; + auto_merge: components["schemas"]["auto-merge"]; + /** + * @description Indicates whether or not the pull request is a draft. + * @example false + */ + draft?: boolean; + merged: boolean; + /** @example true */ + mergeable: boolean | null; + /** @example true */ + rebaseable?: boolean | null; + /** @example clean */ + mergeable_state: string; + merged_by: components["schemas"]["nullable-simple-user"]; + /** @example 10 */ + comments: number; + /** @example 0 */ + review_comments: number; + /** + * @description Indicates whether maintainers can modify the pull request. + * @example true + */ + maintainer_can_modify: boolean; + /** @example 3 */ + commits: number; + /** @example 100 */ + additions: number; + /** @example 3 */ + deletions: number; + /** @example 5 */ + changed_files: number; + }; + /** + * Pull Request Merge Result + * @description Pull Request Merge Result + */ + "pull-request-merge-result": { + sha: string; + merged: boolean; + message: string; + }; + /** + * Pull Request Review Request + * @description Pull Request Review Request + */ + "pull-request-review-request": { + users: components["schemas"]["simple-user"][]; + teams: components["schemas"]["team"][]; + }; + /** + * Pull Request Review + * @description Pull Request Reviews are reviews on pull requests. + */ + "pull-request-review": { + /** + * @description Unique identifier of the review + * @example 42 + */ + id: number; + /** @example MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= */ + node_id: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description The text of the review. + * @example This looks great. + */ + body: string; + /** @example CHANGES_REQUESTED */ + state: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/12 + */ + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + /** Format: date-time */ + submitted_at?: string; + /** + * @description A commit SHA for the review. If the commit object was garbage collected or forcibly deleted, then it no longer exists in Git and this value will be `null`. + * @example 54bb654c9e6025347f57900a4a5c2313a96b8035 + */ + commit_id: string | null; + body_html?: string; + body_text?: string; + author_association: components["schemas"]["author-association"]; + }; + /** + * Legacy Review Comment + * @description Legacy Review Comment + */ + "review-comment": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + */ + url: string; + /** @example 42 */ + pull_request_review_id: number | null; + /** @example 10 */ + id: number; + /** @example MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw */ + node_id: string; + /** @example @@ -16,33 +16,40 @@ public class Connection : IConnection... */ + diff_hunk: string; + /** @example file1.txt */ + path: string; + /** @example 1 */ + position: number | null; + /** @example 4 */ + original_position: number; + /** @example 6dcb09b5b57875f334f61aebed695e2e4193db5e */ + commit_id: string; + /** @example 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 */ + original_commit_id: string; + /** @example 8 */ + in_reply_to_id?: number; + user: components["schemas"]["nullable-simple-user"]; + /** @example Great stuff */ + body: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1 + */ + pull_request_url: string; + author_association: components["schemas"]["author-association"]; + _links: { + self: components["schemas"]["link"]; + html: components["schemas"]["link"]; + pull_request: components["schemas"]["link"]; + }; + body_text?: string; + body_html?: string; + reactions?: components["schemas"]["reaction-rollup"]; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string} + */ + side?: "LEFT" | "RIGHT"; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side?: "LEFT" | "RIGHT" | null; + /** + * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + line?: number; + /** + * @description The original line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + original_line?: number; + /** + * @description The first line of the range for a multi-line comment. + * @example 2 + */ + start_line?: number | null; + /** + * @description The original first line of the range for a multi-line comment. + * @example 2 + */ + original_start_line?: number | null; + }; + /** + * Release Asset + * @description Data related to a release. + */ + "release-asset": { + /** Format: uri */ + url: string; + /** Format: uri */ + browser_download_url: string; + id: number; + node_id: string; + /** + * @description The file name of the asset. + * @example Team Environment + */ + name: string; + label: string | null; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded" | "open"; + content_type: string; + size: number; + download_count: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + uploader: components["schemas"]["nullable-simple-user"]; + }; + /** + * Release + * @description A release. + */ + release: { + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + assets_url: string; + upload_url: string; + /** Format: uri */ + tarball_url: string | null; + /** Format: uri */ + zipball_url: string | null; + id: number; + node_id: string; + /** + * @description The name of the tag. + * @example v1.0.0 + */ + tag_name: string; + /** + * @description Specifies the commitish value that determines where the Git tag is created from. + * @example master + */ + target_commitish: string; + name: string | null; + body?: string | null; + /** + * @description true to create a draft (unpublished) release, false to create a published one. + * @example false + */ + draft: boolean; + /** + * @description Whether to identify the release as a prerelease or a full release. + * @example false + */ + prerelease: boolean; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + published_at: string | null; + author: components["schemas"]["simple-user"]; + assets: components["schemas"]["release-asset"][]; + body_html?: string; + body_text?: string; + mentions_count?: number; + /** + * Format: uri + * @description The URL of the release discussion. + */ + discussion_url?: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Generated Release Notes Content + * @description Generated name and body describing a release + */ + "release-notes-content": { + /** + * @description The generated name of the release + * @example Release v1.0.0 is now available! + */ + name: string; + /** @description The generated body describing the contents of the release supporting markdown formatting */ + body: string; + }; + /** + * repository ruleset data for rule + * @description User-defined metadata to store domain-specific information limited to 8 keys with scalar values. + */ + "repository-rule-ruleset-info": { + /** + * @description The type of source for the ruleset that includes this rule. + * @enum {string} + */ + ruleset_source_type?: "Repository" | "Organization"; + /** @description The name of the source of the ruleset that includes this rule. */ + ruleset_source?: string; + /** @description The ID of the ruleset that includes this rule. */ + ruleset_id?: number; + }; + /** + * Repository Rule + * @description A repository rule with ruleset details. + */ + "repository-rule-detailed": + | (components["schemas"]["repository-rule-creation"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-update"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-deletion"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-required-linear-history"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-required-deployments"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-required-signatures"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-pull-request"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-required-status-checks"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-non-fast-forward"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-commit-message-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-commit-author-email-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-committer-email-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-branch-name-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-tag-name-pattern"] & + components["schemas"]["repository-rule-ruleset-info"]) + | (components["schemas"]["repository-rule-workflows"] & + components["schemas"]["repository-rule-ruleset-info"]); + "secret-scanning-alert": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["nullable-alert-updated-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + /** + * Format: uri + * @description The REST API URL of the code locations for this alert. + */ + locations_url?: string; + state?: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + /** + * Format: date-time + * @description The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + resolved_at?: string | null; + resolved_by?: components["schemas"]["nullable-simple-user"]; + /** @description An optional comment to resolve an alert. */ + resolution_comment?: string | null; + /** @description The type of secret that secret scanning detected. */ + secret_type?: string; + /** + * @description User-friendly name for the detected secret, matching the `secret_type`. + * For a list of built-in patterns, see "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)." + */ + secret_type_display_name?: string; + /** @description The secret that was detected. */ + secret?: string; + /** @description Whether push protection was bypassed for the detected secret. */ + push_protection_bypassed?: boolean | null; + push_protection_bypassed_by?: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + push_protection_bypassed_at?: string | null; + /** + * @description The token status as of the latest validity check. + * @enum {string} + */ + validity?: "active" | "inactive" | "unknown"; + }; + /** @description An optional comment when closing an alert. Cannot be updated or deleted. Must be `null` when changing `state` to `open`. */ + "secret-scanning-alert-resolution-comment": string | null; + /** @description Represents a 'commit' secret scanning location type. This location type shows that a secret was detected inside a commit to a repository. */ + "secret-scanning-location-commit": { + /** + * @description The file path in the repository + * @example /example/secrets.txt + */ + path: string; + /** @description Line number at which the secret starts in the file */ + start_line: number; + /** @description Line number at which the secret ends in the file */ + end_line: number; + /** @description The column at which the secret starts within the start line when the file is interpreted as 8BIT ASCII */ + start_column: number; + /** @description The column at which the secret ends within the end line when the file is interpreted as 8BIT ASCII */ + end_column: number; + /** + * @description SHA-1 hash ID of the associated blob + * @example af5626b4a114abcb82d63db7c8082c3c4756e51b + */ + blob_sha: string; + /** @description The API URL to get the associated blob resource */ + blob_url: string; + /** + * @description SHA-1 hash ID of the associated commit + * @example af5626b4a114abcb82d63db7c8082c3c4756e51b + */ + commit_sha: string; + /** @description The API URL to get the associated commit resource */ + commit_url: string; + }; + /** @description Represents an 'issue_title' secret scanning location type. This location type shows that a secret was detected in the title of an issue. */ + "secret-scanning-location-issue-title": { + /** + * Format: uri + * @description The API URL to get the issue where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_title_url: string; + }; + /** @description Represents an 'issue_body' secret scanning location type. This location type shows that a secret was detected in the body of an issue. */ + "secret-scanning-location-issue-body": { + /** + * Format: uri + * @description The API URL to get the issue where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_body_url: string; + }; + /** @description Represents an 'issue_comment' secret scanning location type. This location type shows that a secret was detected in a comment on an issue. */ + "secret-scanning-location-issue-comment": { + /** + * Format: uri + * @description The API URL to get the issue comment where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/issues/comments/1081119451 + */ + issue_comment_url: string; + }; + /** @description Represents a 'discussion_title' secret scanning location type. This location type shows that a secret was detected in the title of a discussion. */ + "secret-scanning-location-discussion-title": { + /** + * Format: uri + * @description The URL to the discussion where the secret was detected. + * @example https://github.com/community/community/discussions/39082 + */ + discussion_title_url: string; + }; + /** @description Represents a 'discussion_body' secret scanning location type. This location type shows that a secret was detected in the body of a discussion. */ + "secret-scanning-location-discussion-body": { + /** + * Format: uri + * @description The URL to the discussion where the secret was detected. + * @example https://github.com/community/community/discussions/39082#discussion-4566270 + */ + discussion_body_url: string; + }; + /** @description Represents a 'discussion_comment' secret scanning location type. This location type shows that a secret was detected in a comment on a discussion. */ + "secret-scanning-location-discussion-comment": { + /** + * Format: uri + * @description The API URL to get the discussion comment where the secret was detected. + * @example https://github.com/community/community/discussions/39082#discussioncomment-4158232 + */ + discussion_comment_url: string; + }; + /** @description Represents a 'pull_request_title' secret scanning location type. This location type shows that a secret was detected in the title of a pull request. */ + "secret-scanning-location-pull-request-title": { + /** + * Format: uri + * @description The API URL to get the pull request where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/pull/2846 + */ + pull_request_title_url: string; + }; + /** @description Represents a 'pull_request_body' secret scanning location type. This location type shows that a secret was detected in the body of a pull request. */ + "secret-scanning-location-pull-request-body": { + /** + * Format: uri + * @description The API URL to get the pull request where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/pull/2846 + */ + pull_request_body_url: string; + }; + /** @description Represents a 'pull_request_comment' secret scanning location type. This location type shows that a secret was detected in a comment on a pull request. */ + "secret-scanning-location-pull-request-comment": { + /** + * Format: uri + * @description The API URL to get the pull request comment where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/issues/comments/1081119451 + */ + pull_request_comment_url: string; + }; + /** @description Represents a 'pull_request_review' secret scanning location type. This location type shows that a secret was detected in a review on a pull request. */ + "secret-scanning-location-pull-request-review": { + /** + * Format: uri + * @description The API URL to get the pull request review where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/pulls/2846/reviews/80 + */ + pull_request_review_url: string; + }; + /** @description Represents a 'pull_request_review_comment' secret scanning location type. This location type shows that a secret was detected in a review comment on a pull request. */ + "secret-scanning-location-pull-request-review-comment": { + /** + * Format: uri + * @description The API URL to get the pull request review comment where the secret was detected. + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/12 + */ + pull_request_review_comment_url: string; + }; + "secret-scanning-location": { + /** + * @description The location type. Because secrets may be found in different types of resources (ie. code, comments, issues, pull requests, discussions), this field identifies the type of resource where the secret was found. + * @example commit + * @enum {string} + */ + type: + | "commit" + | "issue_title" + | "issue_body" + | "issue_comment" + | "discussion_title" + | "discussion_body" + | "discussion_comment" + | "pull_request_title" + | "pull_request_body" + | "pull_request_comment" + | "pull_request_review" + | "pull_request_review_comment"; + details: + | components["schemas"]["secret-scanning-location-commit"] + | components["schemas"]["secret-scanning-location-issue-title"] + | components["schemas"]["secret-scanning-location-issue-body"] + | components["schemas"]["secret-scanning-location-issue-comment"] + | components["schemas"]["secret-scanning-location-discussion-title"] + | components["schemas"]["secret-scanning-location-discussion-body"] + | components["schemas"]["secret-scanning-location-discussion-comment"] + | components["schemas"]["secret-scanning-location-pull-request-title"] + | components["schemas"]["secret-scanning-location-pull-request-body"] + | components["schemas"]["secret-scanning-location-pull-request-comment"] + | components["schemas"]["secret-scanning-location-pull-request-review"] + | components["schemas"]["secret-scanning-location-pull-request-review-comment"]; + }; + "repository-advisory-create": { + /** @description A short summary of the advisory. */ + summary: string; + /** @description A detailed description of what the advisory impacts. */ + description: string; + /** @description The Common Vulnerabilities and Exposures (CVE) ID. */ + cve_id?: string | null; + /** @description A product affected by the vulnerability detailed in a repository security advisory. */ + vulnerabilities: { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name?: string | null; + }; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range?: string | null; + /** @description The package version(s) that resolve the vulnerability. */ + patched_versions?: string | null; + /** @description The functions in the package that are affected. */ + vulnerable_functions?: string[] | null; + }[]; + /** @description A list of Common Weakness Enumeration (CWE) IDs. */ + cwe_ids?: string[] | null; + /** @description A list of users receiving credit for their participation in the security advisory. */ + credits?: + | { + /** @description The username of the user credited. */ + login: string; + type: components["schemas"]["security-advisory-credit-types"]; + }[] + | null; + /** + * @description The severity of the advisory. You must choose between setting this field or `cvss_vector_string`. + * @enum {string|null} + */ + severity?: "critical" | "high" | "medium" | "low" | null; + /** @description The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`. */ + cvss_vector_string?: string | null; + /** + * @description Whether to create a temporary private fork of the repository to collaborate on a fix. + * @default false + */ + start_private_fork?: boolean; + }; + "private-vulnerability-report-create": { + /** @description A short summary of the advisory. */ + summary: string; + /** @description A detailed description of what the advisory impacts. */ + description: string; + /** @description An array of products affected by the vulnerability detailed in a repository security advisory. */ + vulnerabilities?: + | { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name?: string | null; + }; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range?: string | null; + /** @description The package version(s) that resolve the vulnerability. */ + patched_versions?: string | null; + /** @description The functions in the package that are affected. */ + vulnerable_functions?: string[] | null; + }[] + | null; + /** @description A list of Common Weakness Enumeration (CWE) IDs. */ + cwe_ids?: string[] | null; + /** + * @description The severity of the advisory. You must choose between setting this field or `cvss_vector_string`. + * @enum {string|null} + */ + severity?: "critical" | "high" | "medium" | "low" | null; + /** @description The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`. */ + cvss_vector_string?: string | null; + /** + * @description Whether to create a temporary private fork of the repository to collaborate on a fix. + * @default false + */ + start_private_fork?: boolean; + }; + "repository-advisory-update": { + /** @description A short summary of the advisory. */ + summary?: string; + /** @description A detailed description of what the advisory impacts. */ + description?: string; + /** @description The Common Vulnerabilities and Exposures (CVE) ID. */ + cve_id?: string | null; + /** @description A product affected by the vulnerability detailed in a repository security advisory. */ + vulnerabilities?: { + /** @description The name of the package affected by the vulnerability. */ + package: { + ecosystem: components["schemas"]["security-advisory-ecosystems"]; + /** @description The unique package name within its ecosystem. */ + name?: string | null; + }; + /** @description The range of the package versions affected by the vulnerability. */ + vulnerable_version_range?: string | null; + /** @description The package version(s) that resolve the vulnerability. */ + patched_versions?: string | null; + /** @description The functions in the package that are affected. */ + vulnerable_functions?: string[] | null; + }[]; + /** @description A list of Common Weakness Enumeration (CWE) IDs. */ + cwe_ids?: string[] | null; + /** @description A list of users receiving credit for their participation in the security advisory. */ + credits?: + | { + /** @description The username of the user credited. */ + login: string; + type: components["schemas"]["security-advisory-credit-types"]; + }[] + | null; + /** + * @description The severity of the advisory. You must choose between setting this field or `cvss_vector_string`. + * @enum {string|null} + */ + severity?: "critical" | "high" | "medium" | "low" | null; + /** @description The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`. */ + cvss_vector_string?: string | null; + /** + * @description The state of the advisory. + * @enum {string} + */ + state?: "published" | "closed" | "draft"; + /** @description A list of usernames who have been granted write access to the advisory. */ + collaborating_users?: string[] | null; + /** @description A list of team slugs which have been granted write access to the advisory. */ + collaborating_teams?: string[] | null; + }; + /** + * Stargazer + * @description Stargazer + */ + stargazer: { + /** Format: date-time */ + starred_at: string; + user: components["schemas"]["nullable-simple-user"]; + }; + /** + * Code Frequency Stat + * @description Code Frequency Stat + */ + "code-frequency-stat": number[]; + /** + * Commit Activity + * @description Commit Activity + */ + "commit-activity": { + /** + * @example [ + * 0, + * 3, + * 26, + * 20, + * 39, + * 1, + * 0 + * ] + */ + days: number[]; + /** @example 89 */ + total: number; + /** @example 1336280400 */ + week: number; + }; + /** + * Contributor Activity + * @description Contributor Activity + */ + "contributor-activity": { + author: components["schemas"]["nullable-simple-user"]; + /** @example 135 */ + total: number; + /** + * @example [ + * { + * "w": "1367712000", + * "a": 6898, + * "d": 77, + * "c": 10 + * } + * ] + */ + weeks: { + w?: number; + a?: number; + d?: number; + c?: number; + }[]; + }; + /** Participation Stats */ + "participation-stats": { + all: number[]; + owner: number[]; + }; + /** + * Repository Invitation + * @description Repository invitations let you manage who you collaborate with. + */ + "repository-subscription": { + /** + * @description Determines if notifications should be received from this repository. + * @example true + */ + subscribed: boolean; + /** @description Determines if all notifications should be blocked from this repository. */ + ignored: boolean; + reason: string | null; + /** + * Format: date-time + * @example 2012-10-06T21:34:12Z + */ + created_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/subscription + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + }; + /** + * Tag + * @description Tag + */ + tag: { + /** @example v0.1 */ + name: string; + commit: { + sha: string; + /** Format: uri */ + url: string; + }; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/zipball/v0.1 + */ + zipball_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/tarball/v0.1 + */ + tarball_url: string; + node_id: string; + }; + /** + * Tag protection + * @description Tag protection + */ + "tag-protection": { + /** @example 2 */ + id?: number; + /** @example 2011-01-26T19:01:12Z */ + created_at?: string; + /** @example 2011-01-26T19:01:12Z */ + updated_at?: string; + /** @example true */ + enabled?: boolean; + /** @example v1.* */ + pattern: string; + }; + /** + * Topic + * @description A topic aggregates entities that are related to a subject. + */ + topic: { + names: string[]; + }; + /** Traffic */ + traffic: { + /** Format: date-time */ + timestamp: string; + uniques: number; + count: number; + }; + /** + * Clone Traffic + * @description Clone Traffic + */ + "clone-traffic": { + /** @example 173 */ + count: number; + /** @example 128 */ + uniques: number; + clones: components["schemas"]["traffic"][]; + }; + /** + * Content Traffic + * @description Content Traffic + */ + "content-traffic": { + /** @example /github/hubot */ + path: string; + /** @example github/hubot: A customizable life embetterment robot. */ + title: string; + /** @example 3542 */ + count: number; + /** @example 2225 */ + uniques: number; + }; + /** + * Referrer Traffic + * @description Referrer Traffic + */ + "referrer-traffic": { + /** @example Google */ + referrer: string; + /** @example 4 */ + count: number; + /** @example 3 */ + uniques: number; + }; + /** + * View Traffic + * @description View Traffic + */ + "view-traffic": { + /** @example 14850 */ + count: number; + /** @example 3782 */ + uniques: number; + views: components["schemas"]["traffic"][]; + }; + /** Search Result Text Matches */ + "search-result-text-matches": { + object_url?: string; + object_type?: string | null; + property?: string; + fragment?: string; + matches?: { + text?: string; + indices?: number[]; + }[]; + }[]; + /** + * Code Search Result Item + * @description Code Search Result Item + */ + "code-search-result-item": { + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string; + /** Format: uri */ + html_url: string; + repository: components["schemas"]["minimal-repository"]; + score: number; + file_size?: number; + language?: string | null; + /** Format: date-time */ + last_modified_at?: string; + /** + * @example [ + * "73..77", + * "77..78" + * ] + */ + line_numbers?: string[]; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Commit Search Result Item + * @description Commit Search Result Item + */ + "commit-search-result-item": { + /** Format: uri */ + url: string; + sha: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + comments_url: string; + commit: { + author: { + name: string; + email: string; + /** Format: date-time */ + date: string; + }; + committer: components["schemas"]["nullable-git-user"]; + comment_count: number; + message: string; + tree: { + sha: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + url: string; + verification?: components["schemas"]["verification"]; + }; + author: components["schemas"]["nullable-simple-user"]; + committer: components["schemas"]["nullable-git-user"]; + parents: { + url?: string; + html_url?: string; + sha?: string; + }[]; + repository: components["schemas"]["minimal-repository"]; + score: number; + node_id: string; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Issue Search Result Item + * @description Issue Search Result Item + */ + "issue-search-result-item": { + /** Format: uri */ + url: string; + /** Format: uri */ + repository_url: string; + labels_url: string; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + node_id: string; + number: number; + title: string; + locked: boolean; + active_lock_reason?: string | null; + assignees?: components["schemas"]["simple-user"][] | null; + user: components["schemas"]["nullable-simple-user"]; + labels: { + /** Format: int64 */ + id?: number; + node_id?: string; + url?: string; + name?: string; + color?: string; + default?: boolean; + description?: string | null; + }[]; + state: string; + state_reason?: string | null; + assignee: components["schemas"]["nullable-simple-user"]; + milestone: components["schemas"]["nullable-milestone"]; + comments: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + closed_at: string | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + pull_request?: { + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + diff_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + patch_url: string | null; + /** Format: uri */ + url: string | null; + }; + body?: string; + score: number; + author_association: components["schemas"]["author-association"]; + draft?: boolean; + repository?: components["schemas"]["repository"]; + body_html?: string; + body_text?: string; + /** Format: uri */ + timeline_url?: string; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Label Search Result Item + * @description Label Search Result Item + */ + "label-search-result-item": { + id: number; + node_id: string; + /** Format: uri */ + url: string; + name: string; + color: string; + default: boolean; + description: string | null; + score: number; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Repo Search Result Item + * @description Repo Search Result Item + */ + "repo-search-result-item": { + id: number; + node_id: string; + name: string; + full_name: string; + owner: components["schemas"]["nullable-simple-user"]; + private: boolean; + /** Format: uri */ + html_url: string; + description: string | null; + fork: boolean; + /** Format: uri */ + url: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + pushed_at: string; + /** Format: uri */ + homepage: string | null; + size: number; + stargazers_count: number; + watchers_count: number; + language: string | null; + forks_count: number; + open_issues_count: number; + master_branch?: string; + default_branch: string; + score: number; + /** Format: uri */ + forks_url: string; + keys_url: string; + collaborators_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri */ + hooks_url: string; + issue_events_url: string; + /** Format: uri */ + events_url: string; + assignees_url: string; + branches_url: string; + /** Format: uri */ + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + /** Format: uri */ + merges_url: string; + archive_url: string; + /** Format: uri */ + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + releases_url: string; + /** Format: uri */ + deployments_url: string; + git_url: string; + ssh_url: string; + clone_url: string; + /** Format: uri */ + svn_url: string; + forks: number; + open_issues: number; + watchers: number; + topics?: string[]; + /** Format: uri */ + mirror_url: string | null; + has_issues: boolean; + has_projects: boolean; + has_pages: boolean; + has_wiki: boolean; + has_downloads: boolean; + has_discussions?: boolean; + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** @description The repository visibility: public, private, or internal. */ + visibility?: string; + license: components["schemas"]["nullable-license-simple"]; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + text_matches?: components["schemas"]["search-result-text-matches"]; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + allow_auto_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_forking?: boolean; + is_template?: boolean; + /** @example false */ + web_commit_signoff_required?: boolean; + }; + /** + * Topic Search Result Item + * @description Topic Search Result Item + */ + "topic-search-result-item": { + name: string; + display_name: string | null; + short_description: string | null; + description: string | null; + created_by: string | null; + released: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + featured: boolean; + curated: boolean; + score: number; + repository_count?: number | null; + /** Format: uri */ + logo_url?: string | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + related?: + | { + topic_relation?: { + id?: number; + name?: string; + topic_id?: number; + relation_type?: string; + }; + }[] + | null; + aliases?: + | { + topic_relation?: { + id?: number; + name?: string; + topic_id?: number; + relation_type?: string; + }; + }[] + | null; + }; + /** + * User Search Result Item + * @description User Search Result Item + */ + "user-search-result-item": { + login: string; + id: number; + node_id: string; + /** Format: uri */ + avatar_url: string; + gravatar_id: string | null; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + followers_url: string; + /** Format: uri */ + subscriptions_url: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + repos_url: string; + /** Format: uri */ + received_events_url: string; + type: string; + score: number; + following_url: string; + gists_url: string; + starred_url: string; + events_url: string; + public_repos?: number; + public_gists?: number; + followers?: number; + following?: number; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + updated_at?: string; + name?: string | null; + bio?: string | null; + /** Format: email */ + email?: string | null; + location?: string | null; + site_admin: boolean; + hireable?: boolean | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + blog?: string | null; + company?: string | null; + /** Format: date-time */ + suspended_at?: string | null; + }; + /** + * Private User + * @description Private User + */ + "private-user": { + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example monalisa octocat */ + name: string | null; + /** @example GitHub */ + company: string | null; + /** @example https://github.com/blog */ + blog: string | null; + /** @example San Francisco */ + location: string | null; + /** + * Format: email + * @example octocat@github.com + */ + email: string | null; + hireable: boolean | null; + /** @example There once was... */ + bio: string | null; + /** @example monalisa */ + twitter_username?: string | null; + /** @example 2 */ + public_repos: number; + /** @example 1 */ + public_gists: number; + /** @example 20 */ + followers: number; + /** @example 0 */ + following: number; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + created_at: string; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + updated_at: string; + /** @example 81 */ + private_gists: number; + /** @example 100 */ + total_private_repos: number; + /** @example 100 */ + owned_private_repos: number; + /** @example 10000 */ + disk_usage: number; + /** @example 8 */ + collaborators: number; + /** @example true */ + two_factor_authentication: boolean; + plan?: { + collaborators: number; + name: string; + space: number; + private_repos: number; + }; + /** Format: date-time */ + suspended_at?: string | null; + business_plus?: boolean; + ldap_dn?: string; + }; + /** + * Codespaces Secret + * @description Secrets for a GitHub Codespace. + */ + "codespaces-secret": { + /** + * @description The name of the secret + * @example SECRET_NAME + */ + name: string; + /** + * Format: date-time + * @description The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + created_at: string; + /** + * Format: date-time + * @description The date and time at which the secret was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. + */ + updated_at: string; + /** + * @description The type of repositories in the organization that the secret is visible to + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @description The API URL at which the list of repositories this secret is visible to can be retrieved + * @example https://api.github.com/user/secrets/SECRET_NAME/repositories + */ + selected_repositories_url: string; + }; + /** + * CodespacesUserPublicKey + * @description The public key used for setting user Codespaces' Secrets. + */ + "codespaces-user-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + }; + /** + * Fetches information about an export of a codespace. + * @description An export of a codespace. Also, latest export details for a codespace can be fetched with id = latest + */ + "codespace-export-details": { + /** + * @description State of the latest export + * @example succeeded | failed | in_progress + */ + state?: string | null; + /** + * Format: date-time + * @description Completion time of the last export operation + * @example 2021-01-01T19:01:12Z + */ + completed_at?: string | null; + /** + * @description Name of the exported branch + * @example codespace-monalisa-octocat-hello-world-g4wpq6h95q + */ + branch?: string | null; + /** + * @description Git commit SHA of the exported branch + * @example fd95a81ca01e48ede9f39c799ecbcef817b8a3b2 + */ + sha?: string | null; + /** + * @description Id for the export details + * @example latest + */ + id?: string; + /** + * @description Url for fetching export details + * @example https://api.github.com/user/codespaces/:name/exports/latest + */ + export_url?: string; + /** + * @description Web url for the exported branch + * @example https://github.com/octocat/hello-world/tree/:branch + */ + html_url?: string | null; + }; + /** + * Codespace + * @description A codespace. + */ + "codespace-with-full-repository": { + /** @example 1 */ + id: number; + /** + * @description Automatically generated name of this codespace. + * @example monalisa-octocat-hello-world-g4wpq6h95q + */ + name: string; + /** + * @description Display name for this codespace. + * @example bookish space pancake + */ + display_name?: string | null; + /** + * @description UUID identifying this codespace's environment. + * @example 26a7c758-7299-4a73-b978-5a92a7ae98a0 + */ + environment_id: string | null; + owner: components["schemas"]["simple-user"]; + billable_owner: components["schemas"]["simple-user"]; + repository: components["schemas"]["full-repository"]; + machine: components["schemas"]["nullable-codespace-machine"]; + /** + * @description Path to devcontainer.json from repo root used to create Codespace. + * @example .devcontainer/example/devcontainer.json + */ + devcontainer_path?: string | null; + /** + * @description Whether the codespace was created from a prebuild. + * @example false + */ + prebuild: boolean | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @description Last known time this codespace was started. + * @example 2011-01-26T19:01:12Z + */ + last_used_at: string; + /** + * @description State of this codespace. + * @example Available + * @enum {string} + */ + state: + | "Unknown" + | "Created" + | "Queued" + | "Provisioning" + | "Available" + | "Awaiting" + | "Unavailable" + | "Deleted" + | "Moved" + | "Shutdown" + | "Archived" + | "Starting" + | "ShuttingDown" + | "Failed" + | "Exporting" + | "Updating" + | "Rebuilding"; + /** + * Format: uri + * @description API URL for this codespace. + */ + url: string; + /** @description Details about the codespace's git repository. */ + git_status: { + /** + * @description The number of commits the local repository is ahead of the remote. + * @example 0 + */ + ahead?: number; + /** + * @description The number of commits the local repository is behind the remote. + * @example 0 + */ + behind?: number; + /** @description Whether the local repository has unpushed changes. */ + has_unpushed_changes?: boolean; + /** @description Whether the local repository has uncommitted changes. */ + has_uncommitted_changes?: boolean; + /** + * @description The current branch (or SHA if in detached HEAD state) of the local repository. + * @example main + */ + ref?: string; + }; + /** + * @description The initally assigned location of a new codespace. + * @example WestUs2 + * @enum {string} + */ + location: "EastUs" | "SouthEastAsia" | "WestEurope" | "WestUs2"; + /** + * @description The number of minutes of inactivity after which this codespace will be automatically stopped. + * @example 60 + */ + idle_timeout_minutes: number | null; + /** + * Format: uri + * @description URL to access this codespace on the web. + */ + web_url: string; + /** + * Format: uri + * @description API URL to access available alternate machine types for this codespace. + */ + machines_url: string; + /** + * Format: uri + * @description API URL to start this codespace. + */ + start_url: string; + /** + * Format: uri + * @description API URL to stop this codespace. + */ + stop_url: string; + /** + * Format: uri + * @description API URL to publish this codespace to a new repository. + */ + publish_url?: string | null; + /** + * Format: uri + * @description API URL for the Pull Request associated with this codespace, if any. + */ + pulls_url: string | null; + recent_folders: string[]; + runtime_constraints?: { + /** @description The privacy settings a user can select from when forwarding a port. */ + allowed_port_privacy_settings?: string[] | null; + }; + /** @description Whether or not a codespace has a pending async operation. This would mean that the codespace is temporarily unavailable. The only thing that you can do with a codespace in this state is delete it. */ + pending_operation?: boolean | null; + /** @description Text to show user when codespace is disabled by a pending operation */ + pending_operation_disabled_reason?: string | null; + /** @description Text to show user when codespace idle timeout minutes has been overriden by an organization policy */ + idle_timeout_notice?: string | null; + /** + * @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). + * @example 60 + */ + retention_period_minutes?: number | null; + /** + * Format: date-time + * @description When a codespace will be auto-deleted based on the "retention_period_minutes" and "last_used_at" + * @example 2011-01-26T20:01:12Z + */ + retention_expires_at?: string | null; + }; + /** + * Email + * @description Email + */ + email: { + /** + * Format: email + * @example octocat@github.com + */ + email: string; + /** @example true */ + primary: boolean; + /** @example true */ + verified: boolean; + /** @example public */ + visibility: string | null; + }; + /** + * GPG Key + * @description A unique encryption key + */ + "gpg-key": { + /** @example 3 */ + id: number; + /** @example Octocat's GPG Key */ + name?: string | null; + primary_key_id: number | null; + /** @example 3262EFF25BA0D270 */ + key_id: string; + /** @example xsBNBFayYZ... */ + public_key: string; + /** + * @example [ + * { + * "email": "octocat@users.noreply.github.com", + * "verified": true + * } + * ] + */ + emails: { + email?: string; + verified?: boolean; + }[]; + /** + * @example [ + * { + * "id": 4, + * "primary_key_id": 3, + * "key_id": "4A595D4C72EE49C7", + * "public_key": "zsBNBFayYZ...", + * "emails": [], + * "can_sign": false, + * "can_encrypt_comms": true, + * "can_encrypt_storage": true, + * "can_certify": false, + * "created_at": "2016-03-24T11:31:04-06:00", + * "expires_at": null, + * "revoked": false + * } + * ] + */ + subkeys: { + id?: number; + primary_key_id?: number; + key_id?: string; + public_key?: string; + emails?: { + email?: string; + verified?: boolean; + }[]; + subkeys?: unknown[]; + can_sign?: boolean; + can_encrypt_comms?: boolean; + can_encrypt_storage?: boolean; + can_certify?: boolean; + created_at?: string; + expires_at?: string | null; + raw_key?: string | null; + revoked?: boolean; + }[]; + /** @example true */ + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + /** @example true */ + can_certify: boolean; + /** + * Format: date-time + * @example 2016-03-24T11:31:04-06:00 + */ + created_at: string; + /** Format: date-time */ + expires_at: string | null; + /** @example true */ + revoked: boolean; + raw_key: string | null; + }; + /** + * Key + * @description Key + */ + key: { + key: string; + id: number; + url: string; + title: string; + /** Format: date-time */ + created_at: string; + verified: boolean; + read_only: boolean; + }; + /** Marketplace Account */ + "marketplace-account": { + /** Format: uri */ + url: string; + id: number; + type: string; + node_id?: string; + login: string; + /** Format: email */ + email?: string | null; + /** Format: email */ + organization_billing_email?: string | null; + }; + /** + * User Marketplace Purchase + * @description User Marketplace Purchase + */ + "user-marketplace-purchase": { + /** @example monthly */ + billing_cycle: string; + /** + * Format: date-time + * @example 2017-11-11T00:00:00Z + */ + next_billing_date: string | null; + unit_count: number | null; + /** @example true */ + on_free_trial: boolean; + /** + * Format: date-time + * @example 2017-11-11T00:00:00Z + */ + free_trial_ends_on: string | null; + /** + * Format: date-time + * @example 2017-11-02T01:12:12Z + */ + updated_at: string | null; + account: components["schemas"]["marketplace-account"]; + plan: components["schemas"]["marketplace-listing-plan"]; + }; + /** + * Social account + * @description Social media account + */ + "social-account": { + /** @example linkedin */ + provider: string; + /** @example https://www.linkedin.com/company/github/ */ + url: string; + }; + /** + * SSH Signing Key + * @description A public SSH key used to sign Git commits + */ + "ssh-signing-key": { + key: string; + id: number; + title: string; + /** Format: date-time */ + created_at: string; + }; + /** + * Starred Repository + * @description Starred Repository + */ + "starred-repository": { + /** Format: date-time */ + starred_at: string; + repo: components["schemas"]["repository"]; + }; + /** + * Hovercard + * @description Hovercard + */ + hovercard: { + contexts: { + message: string; + octicon: string; + }[]; + }; + /** + * Key Simple + * @description Key Simple + */ + "key-simple": { + id: number; + key: string; + }; + /** + * Enterprise + * @description An enterprise on GitHub. Webhook payloads contain the `enterprise` property when the webhook is configured + * on an enterprise account or an organization that's part of an enterprise account. For more information, + * see "[About enterprise accounts](https://docs.github.com/admin/overview/about-enterprise-accounts)." + */ + "enterprise-webhooks": { + /** @description A short description of the enterprise. */ + description?: string | null; + /** + * Format: uri + * @example https://github.com/enterprises/octo-business + */ + html_url: string; + /** + * Format: uri + * @description The enterprise's website URL. + */ + website_url?: string | null; + /** + * @description Unique identifier of the enterprise + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the enterprise. + * @example Octo Business + */ + name: string; + /** + * @description The slug url identifier for the enterprise. + * @example octo-business + */ + slug: string; + /** + * Format: date-time + * @example 2019-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2019-01-26T19:14:43Z + */ + updated_at: string | null; + /** Format: uri */ + avatar_url: string; + }; + /** + * Simple Installation + * @description The GitHub App installation. Webhook payloads contain the `installation` property when the event is configured + * for and sent to a GitHub App. For more information, + * see "[Using webhooks with GitHub Apps](https://docs.github.com/apps/creating-github-apps/registering-a-github-app/using-webhooks-with-github-apps)." + */ + "simple-installation": { + /** + * @description The ID of the installation. + * @example 1 + */ + id: number; + /** + * @description The global node ID of the installation. + * @example MDQ6VXNlcjU4MzIzMQ== + */ + node_id: string; + }; + /** + * Organization Simple + * @description A GitHub organization. Webhook payloads contain the `organization` property when the webhook is configured for an + * organization, or when the event occurs from activity in a repository owned by an organization. + */ + "organization-simple-webhooks": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + }; + /** + * Repository + * @description The repository on GitHub where the event occurred. Webhook payloads contain the `repository` property + * when the event occurs from activity in a repository. + */ + "repository-webhooks": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + organization?: components["schemas"]["nullable-simple-user"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + template_repository?: { + id?: number; + node_id?: string; + name?: string; + full_name?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }; + private?: boolean; + html_url?: string; + description?: string; + fork?: boolean; + url?: string; + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + downloads_url?: string; + events_url?: string; + forks_url?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + git_url?: string; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + notifications_url?: string; + pulls_url?: string; + releases_url?: string; + ssh_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + clone_url?: string; + mirror_url?: string; + hooks_url?: string; + svn_url?: string; + homepage?: string; + language?: string; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + pushed_at?: string; + created_at?: string; + updated_at?: string; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + allow_rebase_merge?: boolean; + temp_clone_token?: string; + allow_squash_merge?: boolean; + allow_auto_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_update_branch?: boolean; + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + allow_merge_commit?: boolean; + subscribers_count?: number; + network_count?: number; + } | null; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + */ + web_commit_signoff_required?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + /** @description Whether anonymous git access is enabled for this repository */ + anonymous_access_enabled?: boolean; + }; + /** + * Simple User + * @description The GitHub user that triggered the event. This property is included in every webhook payload. + */ + "simple-user-webhooks": { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + }; + /** @description A suite of checks performed on the code of a given code change */ + "simple-check-suite": { + /** @example d6fde92930d4715a2b49857d24b940956b26d2d3 */ + after?: string | null; + app?: components["schemas"]["integration"]; + /** @example 146e867f55c26428e5f9fade55a9bbf5e95a7912 */ + before?: string | null; + /** + * @example neutral + * @enum {string|null} + */ + conclusion?: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | "stale" + | "startup_failure" + | null; + /** Format: date-time */ + created_at?: string; + /** @example master */ + head_branch?: string | null; + /** + * @description The SHA of the head commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha?: string; + /** @example 5 */ + id?: number; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id?: string; + pull_requests?: components["schemas"]["pull-request-minimal"][]; + repository?: components["schemas"]["minimal-repository"]; + /** + * @example completed + * @enum {string} + */ + status?: "queued" | "in_progress" | "completed" | "pending" | "waiting"; + /** Format: date-time */ + updated_at?: string; + /** @example https://api.github.com/repos/github/hello-world/check-suites/5 */ + url?: string; + }; + /** + * CheckRun + * @description A check performed on the code of a given code change + */ + "check-run-with-simple-check-suite": { + app: components["schemas"]["nullable-integration"]; + check_suite: components["schemas"]["simple-check-suite"]; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + completed_at: string | null; + /** + * @example neutral + * @enum {string|null} + */ + conclusion: + | "waiting" + | "pending" + | "startup_failure" + | "stale" + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + | null; + deployment?: components["schemas"]["deployment-simple"]; + /** @example https://example.com */ + details_url: string; + /** @example 42 */ + external_id: string; + /** + * @description The SHA of the commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** @example https://github.com/github/hello-world/runs/4 */ + html_url: string; + /** + * @description The id of the check. + * @example 21 + */ + id: number; + /** + * @description The name of the check. + * @example test-coverage + */ + name: string; + /** @example MDg6Q2hlY2tSdW40 */ + node_id: string; + output: { + annotations_count: number; + /** Format: uri */ + annotations_url: string; + summary: string | null; + text: string | null; + title: string | null; + }; + pull_requests: components["schemas"]["pull-request-minimal"][]; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + started_at: string; + /** + * @description The phase of the lifecycle that the check is currently in. + * @example queued + * @enum {string} + */ + status: "queued" | "in_progress" | "completed" | "pending"; + /** @example https://api.github.com/repos/github/hello-world/check-runs/4 */ + url: string; + }; + /** + * Discussion + * @description A Discussion in a repository. + */ + discussion: { + active_lock_reason: string | null; + answer_chosen_at: string | null; + /** User */ + answer_chosen_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + answer_html_url: string | null; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + category: { + /** Format: date-time */ + created_at: string; + description: string; + emoji: string; + id: number; + is_answerable: boolean; + name: string; + node_id?: string; + repository_id: number; + slug: string; + updated_at: string; + }; + comments: number; + /** Format: date-time */ + created_at: string; + html_url: string; + id: number; + locked: boolean; + node_id: string; + number: number; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + /** + * @description The current state of the discussion. + * `converting` means that the discussion is being converted from an issue. + * `transferring` means that the discussion is being transferred from another repository. + * @enum {string} + */ + state: "open" | "closed" | "locked" | "converting" | "transferring"; + /** + * @description The reason for the current state + * @example resolved + * @enum {string|null} + */ + state_reason: "resolved" | "outdated" | "duplicate" | "reopened" | null; + timeline_url?: string; + title: string; + /** Format: date-time */ + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** + * Merge Group + * @description A group of pull requests that the merge queue has grouped together to be merged. + */ + "merge-group": { + /** @description The SHA of the merge group. */ + head_sha: string; + /** @description The full ref of the merge group. */ + head_ref: string; + /** @description The SHA of the merge group's parent commit. */ + base_sha: string; + /** @description The full ref of the branch the merge group will be merged into. */ + base_ref: string; + head_commit: components["schemas"]["simple-commit"]; + }; + /** + * Repository + * @description The repository on GitHub where the event occurred. Webhook payloads contain the `repository` property + * when the event occurs from activity in a repository. + */ + "nullable-repository-webhooks": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + organization?: components["schemas"]["nullable-simple-user"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** + * @description The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0. + * @example 108 + */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + template_repository?: { + id?: number; + node_id?: string; + name?: string; + full_name?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }; + private?: boolean; + html_url?: string; + description?: string; + fork?: boolean; + url?: string; + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + downloads_url?: string; + events_url?: string; + forks_url?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + git_url?: string; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + notifications_url?: string; + pulls_url?: string; + releases_url?: string; + ssh_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + clone_url?: string; + mirror_url?: string; + hooks_url?: string; + svn_url?: string; + homepage?: string; + language?: string; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + pushed_at?: string; + created_at?: string; + updated_at?: string; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + allow_rebase_merge?: boolean; + temp_clone_token?: string; + allow_squash_merge?: boolean; + allow_auto_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_update_branch?: boolean; + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + allow_merge_commit?: boolean; + subscribers_count?: number; + network_count?: number; + } | null; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + /** + * @description Whether to require contributors to sign off on web-based commits + * @default false + */ + web_commit_signoff_required?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + /** @description Whether anonymous git access is enabled for this repository */ + anonymous_access_enabled?: boolean; + } | null; + /** + * Personal Access Token Request + * @description Details of a Personal Access Token Request. + */ + "personal-access-token-request": { + /** @description Unique identifier of the request for access via fine-grained personal access token. Used as the `pat_request_id` parameter in the list and review API calls. */ + id: number; + owner: components["schemas"]["simple-user"]; + /** @description New requested permissions, categorized by type of permission. */ + permissions_added: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** @description Requested permissions that elevate access for a previously approved request for access, categorized by type of permission. */ + permissions_upgraded: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** @description Permissions requested, categorized by type of permission. This field incorporates `permissions_added` and `permissions_upgraded`. */ + permissions_result: { + organization?: { + [key: string]: string; + }; + repository?: { + [key: string]: string; + }; + other?: { + [key: string]: string; + }; + }; + /** + * @description Type of repository selection requested. + * @enum {string} + */ + repository_selection: "none" | "all" | "subset"; + /** @description The number of repositories the token is requesting access to. This field is only populated when `repository_selection` is `subset`. */ + repository_count: number | null; + /** @description An array of repository objects the token is requesting access to. This field is only populated when `repository_selection` is `subset`. */ + repositories: + | { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[] + | null; + /** @description Date and time when the request for access was created. */ + created_at: string; + /** @description Whether the associated fine-grained personal access token has expired. */ + token_expired: boolean; + /** @description Date and time when the associated fine-grained personal access token expires. */ + token_expires_at: string | null; + /** @description Date and time when the associated fine-grained personal access token was last used for authentication. */ + token_last_used_at: string | null; + }; + /** + * Projects v2 Project + * @description A projects v2 project + */ + "projects-v2": { + id: number; + node_id: string; + owner: components["schemas"]["simple-user"]; + creator: components["schemas"]["simple-user"]; + title: string; + description: string | null; + public: boolean; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + created_at: string; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + updated_at: string; + number: number; + short_description: string | null; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + deleted_at: string | null; + deleted_by: components["schemas"]["nullable-simple-user"]; + }; + /** + * Projects v2 Item Content Type + * @description The type of content tracked in a project item + * @enum {string} + */ + "projects-v2-item-content-type": "Issue" | "PullRequest" | "DraftIssue"; + /** + * Projects v2 Item + * @description An item belonging to a project + */ + "projects-v2-item": { + id: number; + node_id?: string; + project_node_id?: string; + content_node_id: string; + content_type: components["schemas"]["projects-v2-item-content-type"]; + creator?: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + created_at: string; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2022-04-28T12:00:00Z + */ + archived_at: string | null; + }; + /** + * @description The reason for resolving the alert. + * @enum {string|null} + */ + "secret-scanning-alert-resolution-webhook": + | "false_positive" + | "wont_fix" + | "revoked" + | "used_in_tests" + | "pattern_deleted" + | "pattern_edited" + | null; + "secret-scanning-alert-webhook": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["nullable-alert-updated-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + /** + * Format: uri + * @description The REST API URL of the code locations for this alert. + */ + locations_url?: string; + resolution?: components["schemas"]["secret-scanning-alert-resolution-webhook"]; + /** + * Format: date-time + * @description The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + resolved_at?: string | null; + resolved_by?: components["schemas"]["nullable-simple-user"]; + /** @description An optional comment to resolve an alert. */ + resolution_comment?: string | null; + /** @description The type of secret that secret scanning detected. */ + secret_type?: string; + /** + * @description The token status as of the latest validity check. + * @enum {string} + */ + validity?: "active" | "inactive" | "unknown"; + /** @description Whether push protection was bypassed for the detected secret. */ + push_protection_bypassed?: boolean | null; + push_protection_bypassed_by?: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + push_protection_bypassed_at?: string | null; + }; + /** branch protection configuration disabled event */ + "webhook-branch-protection-configuration-disabled": { + /** @enum {string} */ + action: "disabled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** branch protection configuration enabled event */ + "webhook-branch-protection-configuration-enabled": { + /** @enum {string} */ + action: "enabled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** branch protection rule created event */ + "webhook-branch-protection-rule-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + /** + * branch protection rule + * @description The branch protection rule. Includes a `name` and all the [branch protection settings](https://docs.github.com/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#about-branch-protection-settings) applied to branches that match the name. Binary settings are boolean. Multi-level configurations are one of `off`, `non_admins`, or `everyone`. Actor and build lists are arrays of strings. + */ + rule: { + admin_enforced: boolean; + /** @enum {string} */ + allow_deletions_enforcement_level: "off" | "non_admins" | "everyone"; + /** @enum {string} */ + allow_force_pushes_enforcement_level: "off" | "non_admins" | "everyone"; + authorized_actor_names: string[]; + authorized_actors_only: boolean; + authorized_dismissal_actors_only: boolean; + create_protected?: boolean; + /** Format: date-time */ + created_at: string; + dismiss_stale_reviews_on_push: boolean; + id: number; + ignore_approvals_from_contributors: boolean; + /** @enum {string} */ + linear_history_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + merge_queue_enforcement_level: "off" | "non_admins" | "everyone"; + name: string; + /** @enum {string} */ + pull_request_reviews_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + repository_id: number; + require_code_owner_review: boolean; + /** @description Whether the most recent push must be approved by someone other than the person who pushed it */ + require_last_push_approval?: boolean; + required_approving_review_count: number; + /** @enum {string} */ + required_conversation_resolution_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + required_deployments_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + required_status_checks: string[]; + /** @enum {string} */ + required_status_checks_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + signature_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + strict_required_status_checks_policy: boolean; + /** Format: date-time */ + updated_at: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** branch protection rule deleted event */ + "webhook-branch-protection-rule-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + /** + * branch protection rule + * @description The branch protection rule. Includes a `name` and all the [branch protection settings](https://docs.github.com/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#about-branch-protection-settings) applied to branches that match the name. Binary settings are boolean. Multi-level configurations are one of `off`, `non_admins`, or `everyone`. Actor and build lists are arrays of strings. + */ + rule: { + admin_enforced: boolean; + /** @enum {string} */ + allow_deletions_enforcement_level: "off" | "non_admins" | "everyone"; + /** @enum {string} */ + allow_force_pushes_enforcement_level: "off" | "non_admins" | "everyone"; + authorized_actor_names: string[]; + authorized_actors_only: boolean; + authorized_dismissal_actors_only: boolean; + create_protected?: boolean; + /** Format: date-time */ + created_at: string; + dismiss_stale_reviews_on_push: boolean; + id: number; + ignore_approvals_from_contributors: boolean; + /** @enum {string} */ + linear_history_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + merge_queue_enforcement_level: "off" | "non_admins" | "everyone"; + name: string; + /** @enum {string} */ + pull_request_reviews_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + repository_id: number; + require_code_owner_review: boolean; + /** @description Whether the most recent push must be approved by someone other than the person who pushed it */ + require_last_push_approval?: boolean; + required_approving_review_count: number; + /** @enum {string} */ + required_conversation_resolution_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + required_deployments_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + required_status_checks: string[]; + /** @enum {string} */ + required_status_checks_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + signature_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + strict_required_status_checks_policy: boolean; + /** Format: date-time */ + updated_at: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** branch protection rule edited event */ + "webhook-branch-protection-rule-edited": { + /** @enum {string} */ + action: "edited"; + /** @description If the action was `edited`, the changes to the rule. */ + changes?: { + admin_enforced?: { + from: boolean | null; + }; + authorized_actor_names?: { + from: string[]; + }; + authorized_actors_only?: { + from: boolean | null; + }; + authorized_dismissal_actors_only?: { + from: boolean | null; + }; + linear_history_requirement_enforcement_level?: { + /** @enum {string} */ + from: "off" | "non_admins" | "everyone"; + }; + required_status_checks?: { + from: string[]; + }; + required_status_checks_enforcement_level?: { + /** @enum {string} */ + from: "off" | "non_admins" | "everyone"; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + /** + * branch protection rule + * @description The branch protection rule. Includes a `name` and all the [branch protection settings](https://docs.github.com/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#about-branch-protection-settings) applied to branches that match the name. Binary settings are boolean. Multi-level configurations are one of `off`, `non_admins`, or `everyone`. Actor and build lists are arrays of strings. + */ + rule: { + admin_enforced: boolean; + /** @enum {string} */ + allow_deletions_enforcement_level: "off" | "non_admins" | "everyone"; + /** @enum {string} */ + allow_force_pushes_enforcement_level: "off" | "non_admins" | "everyone"; + authorized_actor_names: string[]; + authorized_actors_only: boolean; + authorized_dismissal_actors_only: boolean; + create_protected?: boolean; + /** Format: date-time */ + created_at: string; + dismiss_stale_reviews_on_push: boolean; + id: number; + ignore_approvals_from_contributors: boolean; + /** @enum {string} */ + linear_history_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + merge_queue_enforcement_level: "off" | "non_admins" | "everyone"; + name: string; + /** @enum {string} */ + pull_request_reviews_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + repository_id: number; + require_code_owner_review: boolean; + /** @description Whether the most recent push must be approved by someone other than the person who pushed it */ + require_last_push_approval?: boolean; + required_approving_review_count: number; + /** @enum {string} */ + required_conversation_resolution_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + required_deployments_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + required_status_checks: string[]; + /** @enum {string} */ + required_status_checks_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + /** @enum {string} */ + signature_requirement_enforcement_level: + | "off" + | "non_admins" + | "everyone"; + strict_required_status_checks_policy: boolean; + /** Format: date-time */ + updated_at: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Check Run Completed Event */ + "webhook-check-run-completed": { + /** @enum {string} */ + action?: "completed"; + check_run: components["schemas"]["check-run-with-simple-check-suite"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * Check Run Completed Event + * @description The check_run.completed webhook encoded with URL encoding + */ + "webhook-check-run-completed-form-encoded": { + /** @description A URL-encoded string of the check_run.completed JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** Check Run Created Event */ + "webhook-check-run-created": { + /** @enum {string} */ + action?: "created"; + check_run: components["schemas"]["check-run-with-simple-check-suite"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * Check Run Created Event + * @description The check_run.created webhook encoded with URL encoding + */ + "webhook-check-run-created-form-encoded": { + /** @description A URL-encoded string of the check_run.created JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** Check Run Requested Action Event */ + "webhook-check-run-requested-action": { + /** @enum {string} */ + action: "requested_action"; + check_run: components["schemas"]["check-run-with-simple-check-suite"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + /** @description The action requested by the user. */ + requested_action?: { + /** @description The integrator reference of the action requested by the user. */ + identifier?: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * Check Run Requested Action Event + * @description The check_run.requested_action webhook encoded with URL encoding + */ + "webhook-check-run-requested-action-form-encoded": { + /** @description A URL-encoded string of the check_run.requested_action JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** Check Run Re-Requested Event */ + "webhook-check-run-rerequested": { + /** @enum {string} */ + action?: "rerequested"; + check_run: components["schemas"]["check-run-with-simple-check-suite"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * Check Run Re-Requested Event + * @description The check_run.rerequested webhook encoded with URL encoding + */ + "webhook-check-run-rerequested-form-encoded": { + /** @description A URL-encoded string of the check_run.rerequested JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** check_suite completed event */ + "webhook-check-suite-completed": { + /** @enum {string} */ + action: "completed"; + /** @description The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite). */ + check_suite: { + after: string | null; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + app: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "merge_group" + | "pull_request_review_thread" + | "workflow_job" + | "merge_queue_entry" + | "security_and_analysis" + | "projects_v2_item" + | "secret_scanning_alert_location" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + }; + before: string | null; + /** Format: uri */ + check_runs_url: string; + /** + * @description The summary conclusion for all check runs that are part of the check suite. This value will be `null` until the check run has `completed`. + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "skipped" + | "startup_failure"; + /** Format: date-time */ + created_at: string; + /** @description The head branch name the changes are on. */ + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** @description The SHA of the head commit that is being checked. */ + head_sha: string; + id: number; + latest_check_runs_count: number; + node_id: string; + /** @description An array of pull requests that match this check suite. A pull request matches a check suite if they have the same `head_sha` and `head_branch`. When the check suite's `head_branch` is in a forked repository it will be `null` and the `pull_requests` array will be empty. */ + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + rerequestable?: boolean; + runs_rerequestable?: boolean; + /** + * @description The summary status for all check runs that are part of the check suite. Can be `requested`, `in_progress`, or `completed`. + * @enum {string|null} + */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | null + | "pending"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL that points to the check suite API resource. + */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** check_suite requested event */ + "webhook-check-suite-requested": { + /** @enum {string} */ + action: "requested"; + /** @description The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite). */ + check_suite: { + after: string | null; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + app: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "workflow_job" + | "merge_queue_entry" + | "security_and_analysis" + | "secret_scanning_alert_location" + | "projects_v2_item" + | "merge_group" + | "repository_import" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + }; + before: string | null; + /** Format: uri */ + check_runs_url: string; + /** + * @description The summary conclusion for all check runs that are part of the check suite. This value will be `null` until the check run has completed. + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "skipped"; + /** Format: date-time */ + created_at: string; + /** @description The head branch name the changes are on. */ + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** @description The SHA of the head commit that is being checked. */ + head_sha: string; + id: number; + latest_check_runs_count: number; + node_id: string; + /** @description An array of pull requests that match this check suite. A pull request matches a check suite if they have the same `head_sha` and `head_branch`. When the check suite's `head_branch` is in a forked repository it will be `null` and the `pull_requests` array will be empty. */ + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + rerequestable?: boolean; + runs_rerequestable?: boolean; + /** + * @description The summary status for all check runs that are part of the check suite. Can be `requested`, `in_progress`, or `completed`. + * @enum {string|null} + */ + status: "requested" | "in_progress" | "completed" | "queued" | null; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL that points to the check suite API resource. + */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** check_suite rerequested event */ + "webhook-check-suite-rerequested": { + /** @enum {string} */ + action: "rerequested"; + /** @description The [check_suite](https://docs.github.com/rest/checks/suites#get-a-check-suite). */ + check_suite: { + after: string | null; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + app: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "merge_queue_entry" + | "workflow_job" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + }; + before: string | null; + /** Format: uri */ + check_runs_url: string; + /** + * @description The summary conclusion for all check runs that are part of the check suite. This value will be `null` until the check run has completed. + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + /** @description The head branch name the changes are on. */ + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** @description The SHA of the head commit that is being checked. */ + head_sha: string; + id: number; + latest_check_runs_count: number; + node_id: string; + /** @description An array of pull requests that match this check suite. A pull request matches a check suite if they have the same `head_sha` and `head_branch`. When the check suite's `head_branch` is in a forked repository it will be `null` and the `pull_requests` array will be empty. */ + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + rerequestable?: boolean; + runs_rerequestable?: boolean; + /** + * @description The summary status for all check runs that are part of the check suite. Can be `requested`, `in_progress`, or `completed`. + * @enum {string|null} + */ + status: "requested" | "in_progress" | "completed" | "queued" | null; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL that points to the check suite API resource. + */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert appeared_in_branch event */ + "webhook-code-scanning-alert-appeared-in-branch": { + /** @enum {string} */ + action: "appeared_in_branch"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** + * Format: date-time + * @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + dismissed_at: string | null; + /** User */ + dismissed_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The reason for dismissing or closing the alert. + * @enum {string|null} + */ + dismissed_reason: + | "false positive" + | "won't fix" + | "used in tests" + | null; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + tool: { + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + }; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + commit_oid: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + ref: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert closed_by_user event */ + "webhook-code-scanning-alert-closed-by-user": { + /** @enum {string} */ + action: "closed_by_user"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** + * Format: date-time + * @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + dismissed_at: string; + /** User */ + dismissed_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The reason for dismissing or closing the alert. + * @enum {string|null} + */ + dismissed_reason: + | "false positive" + | "won't fix" + | "used in tests" + | null; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + full_description?: string; + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + tags?: string[] | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "dismissed" | "fixed"; + tool: { + guid?: string | null; + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + }; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + commit_oid: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + ref: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert created event */ + "webhook-code-scanning-alert-created": { + /** @enum {string} */ + action: "created"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string | null; + /** @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. */ + dismissed_at: unknown; + dismissed_by: unknown; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + /** @description The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`. */ + dismissed_reason: unknown; + fixed_at?: unknown; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + instances_url?: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + full_description?: string; + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + tags?: string[] | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed"; + tool: { + guid?: string | null; + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + } | null; + updated_at?: string | null; + /** Format: uri */ + url: string; + }; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + commit_oid: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + ref: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert fixed event */ + "webhook-code-scanning-alert-fixed": { + /** @enum {string} */ + action: "fixed"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** + * Format: date-time + * @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + dismissed_at: string | null; + /** User */ + dismissed_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The reason for dismissing or closing the alert. + * @enum {string|null} + */ + dismissed_reason: + | "false positive" + | "won't fix" + | "used in tests" + | null; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Format: uri */ + instances_url?: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + full_description?: string; + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + tags?: string[] | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "fixed"; + tool: { + guid?: string | null; + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + }; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + commit_oid: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + ref: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert reopened event */ + "webhook-code-scanning-alert-reopened": { + /** @enum {string} */ + action: "reopened"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. */ + dismissed_at: string | null; + dismissed_by: unknown; + /** @description The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`. */ + dismissed_reason: string | null; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + full_description?: string; + help?: string | null; + /** @description A link to the documentation for the rule used to detect the alert. */ + help_uri?: string | null; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + tags?: string[] | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + tool: { + guid?: string | null; + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + } | null; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + commit_oid: string | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + ref: string | null; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** code_scanning_alert reopened_by_user event */ + "webhook-code-scanning-alert-reopened-by-user": { + /** @enum {string} */ + action: "reopened_by_user"; + /** @description The code scanning alert involved in the event. */ + alert: { + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ.` + */ + created_at: string; + /** @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. */ + dismissed_at: unknown; + dismissed_by: unknown; + /** @description The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`. */ + dismissed_reason: unknown; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + html_url: string; + /** Alert Instance */ + most_recent_instance?: { + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + analysis_key: string; + /** @description Identifies the configuration under which the analysis was executed. */ + category?: string; + classifications?: string[]; + commit_sha?: string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + environment: string; + location?: { + end_column?: number; + end_line?: number; + path?: string; + start_column?: number; + start_line?: number; + }; + message?: { + text?: string; + }; + /** @description The full Git reference, formatted as `refs/heads/`. */ + ref: string; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "dismissed" | "fixed"; + } | null; + /** @description The code scanning alert number. */ + number: number; + rule: { + /** @description A short description of the rule used to detect the alert. */ + description: string; + /** @description A unique identifier for the rule used to detect the alert. */ + id: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity: "none" | "note" | "warning" | "error" | null; + }; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + state: "open" | "fixed"; + tool: { + /** @description The name of the tool used to generate the code scanning analysis alert. */ + name: string; + /** @description The version of the tool used to detect the alert. */ + version: string | null; + }; + /** Format: uri */ + url: string; + }; + /** @description The commit SHA of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + commit_oid: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The Git reference of the code scanning alert. When the action is `reopened_by_user` or `closed_by_user`, the event was triggered by the `sender` and this value will be empty. */ + ref: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** commit_comment created event */ + "webhook-commit-comment-created": { + /** + * @description The action performed. Can be `created`. + * @enum {string} + */ + action: "created"; + /** @description The [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment) resource. */ + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + created_at: string; + /** Format: uri */ + html_url: string; + /** @description The ID of the commit comment. */ + id: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the commit comment. */ + node_id: string; + /** @description The relative path of the file to which the comment applies. */ + path: string | null; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** create event */ + "webhook-create": { + /** @description The repository's current description. */ + description: string | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The name of the repository's default branch (usually `main`). */ + master_branch: string; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The pusher type for the event. Can be either `user` or a deploy key. */ + pusher_type: string; + /** @description The [`git ref`](https://docs.github.com/rest/git/refs#get-a-reference) resource. */ + ref: string; + /** + * @description The type of Git ref object created in the repository. + * @enum {string} + */ + ref_type: "tag" | "branch"; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** custom property created event */ + "webhook-custom-property-created": { + /** @enum {string} */ + action: "created"; + definition: components["schemas"]["org-custom-property"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** custom property deleted event */ + "webhook-custom-property-deleted": { + /** @enum {string} */ + action: "deleted"; + definition: { + /** @description The name of the property that was deleted. */ + property_name: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** custom property updated event */ + "webhook-custom-property-updated": { + /** @enum {string} */ + action: "updated"; + definition: components["schemas"]["org-custom-property"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** Custom property values updated event */ + "webhook-custom-property-values-updated": { + /** @enum {string} */ + action: "updated"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + repository: components["schemas"]["repository-webhooks"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + /** @description The new custom property values for the repository. */ + new_property_values: components["schemas"]["custom-property-value"][]; + /** @description The old custom property values for the repository. */ + old_property_values: components["schemas"]["custom-property-value"][]; + }; + /** delete event */ + "webhook-delete": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The pusher type for the event. Can be either `user` or a deploy key. */ + pusher_type: string; + /** @description The [`git ref`](https://docs.github.com/rest/git/refs#get-a-reference) resource. */ + ref: string; + /** + * @description The type of Git ref object deleted in the repository. + * @enum {string} + */ + ref_type: "tag" | "branch"; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert auto-dismissed event */ + "webhook-dependabot-alert-auto-dismissed": { + /** @enum {string} */ + action: "auto_dismissed"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert auto-reopened event */ + "webhook-dependabot-alert-auto-reopened": { + /** @enum {string} */ + action: "auto_reopened"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert created event */ + "webhook-dependabot-alert-created": { + /** @enum {string} */ + action: "created"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert dismissed event */ + "webhook-dependabot-alert-dismissed": { + /** @enum {string} */ + action: "dismissed"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert fixed event */ + "webhook-dependabot-alert-fixed": { + /** @enum {string} */ + action: "fixed"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert reintroduced event */ + "webhook-dependabot-alert-reintroduced": { + /** @enum {string} */ + action: "reintroduced"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Dependabot alert reopened event */ + "webhook-dependabot-alert-reopened": { + /** @enum {string} */ + action: "reopened"; + alert: components["schemas"]["dependabot-alert"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** deploy_key created event */ + "webhook-deploy-key-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [`deploy key`](https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key) resource. */ + key: { + added_by?: string | null; + created_at: string; + id: number; + key: string; + last_used?: string | null; + read_only: boolean; + title: string; + /** Format: uri */ + url: string; + verified: boolean; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** deploy_key deleted event */ + "webhook-deploy-key-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [`deploy key`](https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key) resource. */ + key: { + added_by?: string | null; + created_at: string; + id: number; + key: string; + last_used?: string | null; + read_only: boolean; + title: string; + /** Format: uri */ + url: string; + verified: boolean; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** deployment created event */ + "webhook-deployment-created": { + /** @enum {string} */ + action: "created"; + /** + * Deployment + * @description The [deployment](https://docs.github.com/rest/deployments/deployments#list-deployments). + */ + deployment: { + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + environment: string; + id: number; + node_id: string; + original_environment: string; + payload: Record | string; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "workflow_job" + | "pull_request_review_thread" + | "merge_queue_entry" + | "secret_scanning_alert_location" + | "merge_group" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + production_environment?: boolean; + ref: string; + /** Format: uri */ + repository_url: string; + sha: string; + /** Format: uri */ + statuses_url: string; + task: string; + transient_environment?: boolean; + updated_at: string; + /** Format: uri */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** Workflow */ + workflow: { + /** Format: uri */ + badge_url: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + node_id: string; + path: string; + state: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + /** Deployment Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + display_title: string; + event: string; + head_branch: string; + head_commit?: unknown; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: unknown; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: unknown; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: unknown; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting" + | "pending"; + /** User */ + triggering_actor?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + } | null; + }; + /** deployment protection rule requested event */ + "webhook-deployment-protection-rule-requested": { + /** @enum {string} */ + action?: "requested"; + /** @description The name of the environment that has the deployment protection rule. */ + environment?: string; + /** @description The event that triggered the deployment protection rule. */ + event?: string; + /** + * Format: uri + * @description The URL to review the deployment protection rule. + */ + deployment_callback_url?: string; + deployment?: components["schemas"]["deployment"]; + pull_requests?: components["schemas"]["pull-request"][]; + repository?: components["schemas"]["repository-webhooks"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-deployment-review-approved": { + /** @enum {string} */ + action: "approved"; + approver?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + comment?: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + reviewers?: { + /** User */ + reviewer?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @enum {string} */ + type?: "User"; + }[]; + sender: components["schemas"]["simple-user-webhooks"]; + since: string; + workflow_job_run?: { + conclusion: unknown; + created_at: string; + environment: string; + html_url: string; + id: number; + name: unknown; + status: string; + updated_at: string; + }; + workflow_job_runs?: { + conclusion?: unknown; + created_at?: string; + environment?: string; + html_url?: string; + id?: number; + name?: string | null; + status?: string; + updated_at?: string; + }[]; + /** Deployment Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + display_title: string; + event: string; + head_branch: string; + head_commit?: unknown; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting" + | "pending"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + } | null; + }; + "webhook-deployment-review-rejected": { + /** @enum {string} */ + action: "rejected"; + approver?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + comment?: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + reviewers?: { + /** User */ + reviewer?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @enum {string} */ + type?: "User"; + }[]; + sender: components["schemas"]["simple-user-webhooks"]; + since: string; + workflow_job_run?: { + conclusion: unknown; + created_at: string; + environment: string; + html_url: string; + id: number; + name: unknown; + status: string; + updated_at: string; + }; + workflow_job_runs?: { + conclusion?: string | null; + created_at?: string; + environment?: string; + html_url?: string; + id?: number; + name?: string | null; + status?: string; + updated_at?: string; + }[]; + /** Deployment Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string; + head_commit?: unknown; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + display_title: string; + } | null; + }; + "webhook-deployment-review-requested": { + /** @enum {string} */ + action: "requested"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + environment: string; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + /** User */ + requestor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + reviewers: { + /** User */ + reviewer?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login?: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @enum {string} */ + type?: "User" | "Team"; + }[]; + sender: components["schemas"]["simple-user-webhooks"]; + since: string; + workflow_job_run: { + conclusion: unknown; + created_at: string; + environment: string; + html_url: string; + id: number; + name: string | null; + status: string; + updated_at: string; + }; + /** Deployment Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string; + head_commit?: unknown; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting" + | "pending"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + display_title: string; + } | null; + }; + /** deployment_status created event */ + "webhook-deployment-status-created": { + /** @enum {string} */ + action: "created"; + check_run?: { + /** Format: date-time */ + completed_at: string | null; + /** + * @description The result of the completed check run. This value will be `null` until the check run has completed. + * @enum {string|null} + */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | "skipped" + | null; + /** Format: uri */ + details_url: string; + external_id: string; + /** @description The SHA of the commit that is being checked. */ + head_sha: string; + /** Format: uri */ + html_url: string; + /** @description The id of the check. */ + id: number; + /** @description The name of the check run. */ + name: string; + node_id: string; + /** Format: date-time */ + started_at: string; + /** + * @description The current status of the check run. Can be `queued`, `in_progress`, or `completed`. + * @enum {string} + */ + status: "queued" | "in_progress" | "completed" | "waiting" | "pending"; + /** Format: uri */ + url: string; + } | null; + /** + * Deployment + * @description The [deployment](https://docs.github.com/rest/deployments/deployments#list-deployments). + */ + deployment: { + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + environment: string; + id: number; + node_id: string; + original_environment: string; + payload: string | Record | null; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "merge_queue_entry" + | "workflow_job" + | "pull_request_review_thread" + | "secret_scanning_alert_location" + | "merge_group" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + production_environment?: boolean; + ref: string; + /** Format: uri */ + repository_url: string; + sha: string; + /** Format: uri */ + statuses_url: string; + task: string; + transient_environment?: boolean; + updated_at: string; + /** Format: uri */ + url: string; + }; + /** @description The [deployment status](https://docs.github.com/rest/deployments/statuses#list-deployment-statuses). */ + deployment_status: { + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + deployment_url: string; + /** @description The optional human-readable description added to the status. */ + description: string; + environment: string; + /** Format: uri */ + environment_url?: string; + id: number; + /** Format: uri */ + log_url?: string; + node_id: string; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "merge_queue_entry" + | "workflow_job" + | "merge_group" + | "secret_scanning_alert_location" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + /** Format: uri */ + repository_url: string; + /** @description The new state. Can be `pending`, `success`, `failure`, or `error`. */ + state: string; + /** @description The optional link added to the status. */ + target_url: string; + updated_at: string; + /** Format: uri */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** Workflow */ + workflow?: { + /** Format: uri */ + badge_url: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + node_id: string; + path: string; + state: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + /** Deployment Workflow Run */ + workflow_run?: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + artifacts_url?: string; + cancel_url?: string; + check_suite_id: number; + check_suite_node_id: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "startup_failure"; + /** Format: date-time */ + created_at: string; + display_title: string; + event: string; + head_branch: string; + head_commit?: unknown; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: unknown; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + jobs_url?: string; + logs_url?: string; + name: string; + node_id: string; + path: string; + previous_attempt_url?: unknown; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: unknown; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "waiting" + | "pending"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + workflow_url?: string; + } | null; + }; + /** discussion answered event */ + "webhook-discussion-answered": { + /** @enum {string} */ + action: "answered"; + answer: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + child_comment_count: number; + /** Format: date-time */ + created_at: string; + discussion_id: number; + html_url: string; + id: number; + node_id: string; + parent_id: unknown; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + /** Format: date-time */ + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion category changed event */ + "webhook-discussion-category-changed": { + /** @enum {string} */ + action: "category_changed"; + changes: { + category: { + from: { + /** Format: date-time */ + created_at: string; + description: string; + emoji: string; + id: number; + is_answerable: boolean; + name: string; + node_id?: string; + repository_id: number; + slug: string; + updated_at: string; + }; + }; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion closed event */ + "webhook-discussion-closed": { + /** @enum {string} */ + action: "closed"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion_comment created event */ + "webhook-discussion-comment-created": { + /** @enum {string} */ + action: "created"; + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + child_comment_count: number; + created_at: string; + discussion_id: number; + html_url: string; + id: number; + node_id: string; + parent_id: number | null; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion_comment deleted event */ + "webhook-discussion-comment-deleted": { + /** @enum {string} */ + action: "deleted"; + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + child_comment_count: number; + created_at: string; + discussion_id: number; + html_url: string; + id: number; + node_id: string; + parent_id: number | null; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion_comment edited event */ + "webhook-discussion-comment-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + body: { + from: string; + }; + }; + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + child_comment_count: number; + created_at: string; + discussion_id: number; + html_url: string; + id: number; + node_id: string; + parent_id: number | null; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion created event */ + "webhook-discussion-created": { + /** @enum {string} */ + action: "created"; + discussion: { + active_lock_reason: string | null; + answer_chosen_at: string | null; + /** User */ + answer_chosen_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + answer_html_url: string | null; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string | null; + category: { + /** Format: date-time */ + created_at: string; + description: string; + emoji: string; + id: number; + is_answerable: boolean; + name: string; + node_id?: string; + repository_id: number; + slug: string; + updated_at: string; + }; + comments: number; + /** Format: date-time */ + created_at: string; + html_url: string; + id: number; + locked: boolean; + node_id: string; + number: number; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + /** @enum {string} */ + state: "open" | "locked" | "converting" | "transferring"; + timeline_url?: string; + title: string; + /** Format: date-time */ + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: unknown; + answer_chosen_at: unknown; + answer_chosen_by: unknown; + answer_html_url: string | null; + author_association?: string; + body?: string | null; + category?: { + created_at?: string; + description?: string; + emoji?: string; + id?: number; + is_answerable?: boolean; + name?: string; + node_id?: string; + repository_id?: number; + slug?: string; + updated_at?: string; + }; + comments?: number; + created_at?: string; + html_url?: string; + id?: number; + /** @enum {boolean} */ + locked: false; + node_id?: string; + number?: number; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** @enum {string} */ + state: "open" | "converting" | "transferring"; + timeline_url?: string; + title?: string; + updated_at?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion deleted event */ + "webhook-discussion-deleted": { + /** @enum {string} */ + action: "deleted"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion edited event */ + "webhook-discussion-edited": { + /** @enum {string} */ + action: "edited"; + changes?: { + body?: { + from: string; + }; + title?: { + from: string; + }; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion labeled event */ + "webhook-discussion-labeled": { + /** @enum {string} */ + action: "labeled"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion locked event */ + "webhook-discussion-locked": { + /** @enum {string} */ + action: "locked"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion pinned event */ + "webhook-discussion-pinned": { + /** @enum {string} */ + action: "pinned"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion reopened event */ + "webhook-discussion-reopened": { + /** @enum {string} */ + action: "reopened"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion transferred event */ + "webhook-discussion-transferred": { + /** @enum {string} */ + action: "transferred"; + changes: { + new_discussion: components["schemas"]["discussion"]; + new_repository: components["schemas"]["repository-webhooks"]; + }; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion unanswered event */ + "webhook-discussion-unanswered": { + /** @enum {string} */ + action: "unanswered"; + discussion: components["schemas"]["discussion"]; + old_answer: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + body: string; + child_comment_count: number; + /** Format: date-time */ + created_at: string; + discussion_id: number; + html_url: string; + id: number; + node_id: string; + parent_id: unknown; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + repository_url: string; + /** Format: date-time */ + updated_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion unlabeled event */ + "webhook-discussion-unlabeled": { + /** @enum {string} */ + action: "unlabeled"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion unlocked event */ + "webhook-discussion-unlocked": { + /** @enum {string} */ + action: "unlocked"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** discussion unpinned event */ + "webhook-discussion-unpinned": { + /** @enum {string} */ + action: "unpinned"; + discussion: components["schemas"]["discussion"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** + * fork event + * @description A user forks a repository. + */ + "webhook-fork": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + /** @description The created [`repository`](https://docs.github.com/rest/repos/repos#get-a-repository) resource. */ + forkee: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } & { + allow_forking?: boolean; + archive_url?: string; + archived?: boolean; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + clone_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + created_at?: string; + default_branch?: string; + deployments_url?: string; + description?: string | null; + disabled?: boolean; + downloads_url?: string; + events_url?: string; + /** @enum {boolean} */ + fork?: true; + forks?: number; + forks_count?: number; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + git_url?: string; + has_downloads?: boolean; + has_issues?: boolean; + has_pages?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + homepage?: string | null; + hooks_url?: string; + html_url?: string; + id?: number; + is_template?: boolean; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + language?: unknown; + languages_url?: string; + license?: unknown; + merges_url?: string; + milestones_url?: string; + mirror_url?: unknown; + name?: string; + node_id?: string; + notifications_url?: string; + open_issues?: number; + open_issues_count?: number; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + public?: boolean; + pulls_url?: string; + pushed_at?: string; + releases_url?: string; + size?: number; + ssh_url?: string; + stargazers_count?: number; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + svn_url?: string; + tags_url?: string; + teams_url?: string; + topics?: unknown[]; + trees_url?: string; + updated_at?: string; + url?: string; + visibility?: string; + watchers?: number; + watchers_count?: number; + }; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** github_app_authorization revoked event */ + "webhook-github-app-authorization-revoked": { + /** @enum {string} */ + action: "revoked"; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** gollum event */ + "webhook-gollum": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description The pages that were updated. */ + pages: { + /** + * @description The action that was performed on the page. Can be `created` or `edited`. + * @enum {string} + */ + action: "created" | "edited"; + /** + * Format: uri + * @description Points to the HTML wiki page. + */ + html_url: string; + /** @description The name of the page. */ + page_name: string; + /** @description The latest commit SHA of the page. */ + sha: string; + summary: string | null; + /** @description The current page title. */ + title: string; + }[]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation created event */ + "webhook-installation-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects that the installation can access. */ + repositories?: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + /** User */ + requester?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation deleted event */ + "webhook-installation-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects that the installation can access. */ + repositories?: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + requester?: unknown; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation new_permissions_accepted event */ + "webhook-installation-new-permissions-accepted": { + /** @enum {string} */ + action: "new_permissions_accepted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects that the installation can access. */ + repositories?: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + requester?: unknown; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation_repositories added event */ + "webhook-installation-repositories-added": { + /** @enum {string} */ + action: "added"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects, which were added to the installation. */ + repositories_added: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + /** @description An array of repository objects, which were removed from the installation. */ + repositories_removed: { + full_name?: string; + /** @description Unique identifier of the repository */ + id?: number; + /** @description The name of the repository. */ + name?: string; + node_id?: string; + /** @description Whether the repository is private or public. */ + private?: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** User */ + requester: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation_repositories removed event */ + "webhook-installation-repositories-removed": { + /** @enum {string} */ + action: "removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects, which were added to the installation. */ + repositories_added: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + /** @description An array of repository objects, which were removed from the installation. */ + repositories_removed: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** User */ + requester: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** installation suspend event */ + "webhook-installation-suspend": { + /** @enum {string} */ + action: "suspend"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects that the installation can access. */ + repositories?: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + requester?: unknown; + sender: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-installation-target-renamed": { + account: { + archived_at?: string | null; + avatar_url: string; + created_at?: string; + description?: unknown; + events_url?: string; + followers?: number; + followers_url?: string; + following?: number; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + has_organization_projects?: boolean; + has_repository_projects?: boolean; + hooks_url?: string; + html_url: string; + id: number; + is_verified?: boolean; + issues_url?: string; + login?: string; + members_url?: string; + name?: string; + node_id: string; + organizations_url?: string; + public_gists?: number; + public_members_url?: string; + public_repos?: number; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + slug?: string; + starred_url?: string; + subscriptions_url?: string; + type?: string; + updated_at?: string; + url?: string; + website_url?: unknown; + }; + /** @enum {string} */ + action: "renamed"; + changes: { + login?: { + from: string; + }; + slug?: { + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + target_type: string; + }; + /** installation unsuspend event */ + "webhook-installation-unsuspend": { + /** @enum {string} */ + action: "unsuspend"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description An array of repository objects that the installation can access. */ + repositories?: { + full_name: string; + /** @description Unique identifier of the repository */ + id: number; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** @description Whether the repository is private or public. */ + private: boolean; + }[]; + repository?: components["schemas"]["repository-webhooks"]; + requester?: unknown; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issue_comment created event */ + "webhook-issue-comment-created": { + /** @enum {string} */ + action: "created"; + /** + * issue comment + * @description The [comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment) itself. + */ + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue comment */ + body: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + /** + * Format: int64 + * @description Unique identifier of the issue comment + */ + id: number; + /** Format: uri */ + issue_url: string; + node_id: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to. */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + labels_url?: string; + locked: boolean; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issue_comment deleted event */ + "webhook-issue-comment-deleted": { + /** @enum {string} */ + action: "deleted"; + /** + * issue comment + * @description The [comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment) itself. + */ + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue comment */ + body: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + /** + * Format: int64 + * @description Unique identifier of the issue comment + */ + id: number; + /** Format: uri */ + issue_url: string; + node_id: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to. */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + labels_url?: string; + locked: boolean; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issue_comment edited event */ + "webhook-issue-comment-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the comment. */ + changes: { + body?: { + /** @description The previous version of the body. */ + from: string; + }; + }; + /** + * issue comment + * @description The [comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment) itself. + */ + comment: { + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue comment */ + body: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + /** + * Format: int64 + * @description Unique identifier of the issue comment + */ + id: number; + /** Format: uri */ + issue_url: string; + node_id: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) the comment belongs to. */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + labels_url?: string; + locked: boolean; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues assigned event */ + "webhook-issues-assigned": { + /** + * @description The action that was performed. + * @enum {string} + */ + action: "assigned"; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues closed event */ + "webhook-issues-closed": { + /** + * @description The action that was performed. + * @enum {string} + */ + action: "closed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "security_and_analysis" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + assignee?: unknown; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels?: unknown[]; + labels_url?: string; + locked?: boolean; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** @enum {string} */ + state: "closed" | "open"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues deleted event */ + "webhook-issues-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues demilestoned event */ + "webhook-issues-demilestoned": { + /** @enum {string} */ + action: "demilestoned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + assignee?: unknown; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels?: unknown[]; + labels_url?: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + state?: string; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone?: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues edited event */ + "webhook-issues-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the issue. */ + changes: { + body?: { + /** @description The previous version of the body. */ + from: string; + }; + title?: { + /** @description The previous version of the title. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "security_and_analysis" + | "pull_request_review_thread" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Label */ + label?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues labeled event */ + "webhook-issues-labeled": { + /** @enum {string} */ + action: "labeled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Label */ + label?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues locked event */ + "webhook-issues-locked": { + /** @enum {string} */ + action: "locked"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "security_and_analysis" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + } & { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + assignee?: unknown; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels?: unknown[]; + labels_url?: string; + /** @enum {boolean} */ + locked: true; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + state?: string; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues milestoned event */ + "webhook-issues-milestoned": { + /** @enum {string} */ + action: "milestoned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + assignee?: unknown; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels?: unknown[]; + labels_url?: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + state?: string; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues opened event */ + "webhook-issues-opened": { + /** @enum {string} */ + action: "opened"; + changes?: { + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + old_issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + } | null; + /** + * Repository + * @description A git repository + */ + old_repository: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** @description Whether the repository has discussions enabled. */ + has_discussions?: boolean; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require commit signoff. */ + web_commit_signoff_required?: boolean; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "security_and_analysis" + | "pull_request_review_thread" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues pinned event */ + "webhook-issues-pinned": { + /** @enum {string} */ + action: "pinned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues reopened event */ + "webhook-issues-reopened": { + /** @enum {string} */ + action: "reopened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "pull_request_review_thread" + | "reminder" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason?: string | null; + assignee?: unknown; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels?: unknown[]; + labels_url?: string; + locked?: boolean; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + /** @enum {string} */ + state: "open" | "closed"; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues transferred event */ + "webhook-issues-transferred": { + /** @enum {string} */ + action: "transferred"; + changes: { + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + new_issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** + * Repository + * @description A git repository + */ + new_repository: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues unassigned event */ + "webhook-issues-unassigned": { + /** + * @description The action that was performed. + * @enum {string} + */ + action: "unassigned"; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues unlabeled event */ + "webhook-issues-unlabeled": { + /** @enum {string} */ + action: "unlabeled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + | "reminder" + | "pull_request_review_thread" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write" | "admin"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Label */ + label?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues unlocked event */ + "webhook-issues-unlocked": { + /** @enum {string} */ + action: "unlocked"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + } & { + active_lock_reason: unknown; + assignee?: unknown; + assignees?: unknown[]; + author_association?: string; + body?: string | null; + closed_at?: string | null; + comments?: number; + comments_url?: string; + created_at?: string; + events_url?: string; + html_url?: string; + id?: number; + labels?: unknown[]; + labels_url?: string; + /** @enum {boolean} */ + locked: false; + milestone?: unknown; + node_id?: string; + number?: number; + performed_via_github_app?: unknown; + reactions?: { + "+1"?: number; + "-1"?: number; + confused?: number; + eyes?: number; + heart?: number; + hooray?: number; + laugh?: number; + rocket?: number; + total_count?: number; + url?: string; + }; + repository_url?: string; + state?: string; + timeline_url?: string; + title?: string; + updated_at?: string; + url?: string; + user?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** issues unpinned event */ + "webhook-issues-unpinned": { + /** @enum {string} */ + action: "unpinned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Issue + * @description The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself. + */ + issue: { + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description Contents of the issue */ + body: string | null; + /** Format: date-time */ + closed_at: string | null; + comments: number; + /** Format: uri */ + comments_url: string; + /** Format: date-time */ + created_at: string; + draft?: boolean; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** Format: int64 */ + id: number; + labels?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + /** Format: uri-template */ + labels_url: string; + locked?: boolean; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** + * App + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + performed_via_github_app?: { + /** Format: date-time */ + created_at: string | null; + description: string | null; + /** @description The list of events for the GitHub app */ + events?: ( + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "content_reference" + | "create" + | "delete" + | "deployment" + | "deployment_review" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "milestone" + | "organization" + | "org_block" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_dispatch" + | "secret_scanning_alert" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_dispatch" + | "workflow_run" + )[]; + /** Format: uri */ + external_url: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the GitHub app */ + id: number | null; + /** @description The name of the GitHub app */ + name: string; + node_id: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The set of permissions for the GitHub app */ + permissions?: { + /** @enum {string} */ + actions?: "read" | "write"; + /** @enum {string} */ + administration?: "read" | "write"; + /** @enum {string} */ + checks?: "read" | "write"; + /** @enum {string} */ + content_references?: "read" | "write"; + /** @enum {string} */ + contents?: "read" | "write"; + /** @enum {string} */ + deployments?: "read" | "write"; + /** @enum {string} */ + discussions?: "read" | "write"; + /** @enum {string} */ + emails?: "read" | "write"; + /** @enum {string} */ + environments?: "read" | "write"; + /** @enum {string} */ + issues?: "read" | "write"; + /** @enum {string} */ + keys?: "read" | "write"; + /** @enum {string} */ + members?: "read" | "write"; + /** @enum {string} */ + metadata?: "read" | "write"; + /** @enum {string} */ + organization_administration?: "read" | "write"; + /** @enum {string} */ + organization_hooks?: "read" | "write"; + /** @enum {string} */ + organization_packages?: "read" | "write"; + /** @enum {string} */ + organization_plan?: "read" | "write"; + /** @enum {string} */ + organization_projects?: "read" | "write"; + /** @enum {string} */ + organization_secrets?: "read" | "write"; + /** @enum {string} */ + organization_self_hosted_runners?: "read" | "write"; + /** @enum {string} */ + organization_user_blocking?: "read" | "write"; + /** @enum {string} */ + packages?: "read" | "write"; + /** @enum {string} */ + pages?: "read" | "write"; + /** @enum {string} */ + pull_requests?: "read" | "write"; + /** @enum {string} */ + repository_hooks?: "read" | "write"; + /** @enum {string} */ + repository_projects?: "read" | "write"; + /** @enum {string} */ + secret_scanning_alerts?: "read" | "write"; + /** @enum {string} */ + secrets?: "read" | "write"; + /** @enum {string} */ + security_events?: "read" | "write"; + /** @enum {string} */ + security_scanning_alert?: "read" | "write"; + /** @enum {string} */ + single_file?: "read" | "write"; + /** @enum {string} */ + statuses?: "read" | "write"; + /** @enum {string} */ + team_discussions?: "read" | "write"; + /** @enum {string} */ + vulnerability_alerts?: "read" | "write"; + /** @enum {string} */ + workflows?: "read" | "write"; + }; + /** @description The slug name of the GitHub app */ + slug?: string; + /** Format: date-time */ + updated_at: string | null; + } | null; + pull_request?: { + /** Format: uri */ + diff_url?: string; + /** Format: uri */ + html_url?: string; + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + patch_url?: string; + /** Format: uri */ + url?: string; + }; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + repository_url: string; + /** + * @description State of the issue; either 'open' or 'closed' + * @enum {string} + */ + state?: "open" | "closed"; + state_reason?: string | null; + /** Format: uri */ + timeline_url?: string; + /** @description Title of the issue */ + title: string; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the issue + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** label created event */ + "webhook-label-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** label deleted event */ + "webhook-label-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** label edited event */ + "webhook-label-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the label if the action was `edited`. */ + changes?: { + color?: { + /** @description The previous version of the color if the action was `edited`. */ + from: string; + }; + description?: { + /** @description The previous version of the description if the action was `edited`. */ + from: string; + }; + name?: { + /** @description The previous version of the name if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase cancelled event */ + "webhook-marketplace-purchase-cancelled": { + /** @enum {string} */ + action: "cancelled"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + } & { + account?: { + id?: number; + login?: string; + node_id?: string; + organization_billing_email?: string | null; + type?: string; + }; + billing_cycle?: string; + free_trial_ends_on?: string | null; + next_billing_date: string | null; + on_free_trial?: boolean; + plan?: { + bullets?: (string | null)[]; + description?: string; + has_free_trial?: boolean; + id?: number; + monthly_price_in_cents?: number; + name?: string; + /** @enum {string} */ + price_model?: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name?: string | null; + yearly_price_in_cents?: number; + }; + unit_count?: number; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Marketplace Purchase */ + previous_marketplace_purchase?: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: unknown; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase changed event */ + "webhook-marketplace-purchase-changed": { + /** @enum {string} */ + action: "changed"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + } & { + account?: { + id?: number; + login?: string; + node_id?: string; + organization_billing_email?: string | null; + type?: string; + }; + billing_cycle?: string; + free_trial_ends_on?: string | null; + next_billing_date: string | null; + on_free_trial?: boolean; + plan?: { + bullets?: (string | null)[]; + description?: string; + has_free_trial?: boolean; + id?: number; + monthly_price_in_cents?: number; + name?: string; + /** @enum {string} */ + price_model?: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name?: string | null; + yearly_price_in_cents?: number; + }; + unit_count?: number; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Marketplace Purchase */ + previous_marketplace_purchase?: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean | null; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase pending_change event */ + "webhook-marketplace-purchase-pending-change": { + /** @enum {string} */ + action: "pending_change"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + } & { + account?: { + id?: number; + login?: string; + node_id?: string; + organization_billing_email?: string | null; + type?: string; + }; + billing_cycle?: string; + free_trial_ends_on?: string | null; + next_billing_date: string | null; + on_free_trial?: boolean; + plan?: { + bullets?: (string | null)[]; + description?: string; + has_free_trial?: boolean; + id?: number; + monthly_price_in_cents?: number; + name?: string; + /** @enum {string} */ + price_model?: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name?: string | null; + yearly_price_in_cents?: number; + }; + unit_count?: number; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Marketplace Purchase */ + previous_marketplace_purchase?: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase pending_change_cancelled event */ + "webhook-marketplace-purchase-pending-change-cancelled": { + /** @enum {string} */ + action: "pending_change_cancelled"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: unknown; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + } & { + next_billing_date: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Marketplace Purchase */ + previous_marketplace_purchase?: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: unknown; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** marketplace_purchase purchased event */ + "webhook-marketplace-purchase-purchased": { + /** @enum {string} */ + action: "purchased"; + effective_date: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + marketplace_purchase: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: string | null; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + } & { + account?: { + id?: number; + login?: string; + node_id?: string; + organization_billing_email?: string | null; + type?: string; + }; + billing_cycle?: string; + free_trial_ends_on?: string | null; + next_billing_date: string | null; + on_free_trial?: boolean; + plan?: { + bullets?: (string | null)[]; + description?: string; + has_free_trial?: boolean; + id?: number; + monthly_price_in_cents?: number; + name?: string; + /** @enum {string} */ + price_model?: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name?: string | null; + yearly_price_in_cents?: number; + }; + unit_count?: number; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Marketplace Purchase */ + previous_marketplace_purchase?: { + account: { + id: number; + login: string; + node_id: string; + organization_billing_email: string | null; + type: string; + }; + billing_cycle: string; + free_trial_ends_on: unknown; + next_billing_date?: string | null; + on_free_trial: boolean; + plan: { + bullets: string[]; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + /** @enum {string} */ + price_model: "FREE" | "FLAT_RATE" | "PER_UNIT"; + unit_name: string | null; + yearly_price_in_cents: number; + }; + unit_count: number; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** member added event */ + "webhook-member-added": { + /** @enum {string} */ + action: "added"; + changes?: { + permission?: { + /** @enum {string} */ + to: "write" | "admin" | "read"; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** User */ + member: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** member edited event */ + "webhook-member-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the collaborator permissions */ + changes: { + old_permission?: { + /** @description The previous permissions of the collaborator if the action was edited. */ + from: string; + }; + permission?: { + from?: string | null; + to?: string | null; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** User */ + member: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** member removed event */ + "webhook-member-removed": { + /** @enum {string} */ + action: "removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** User */ + member: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** membership added event */ + "webhook-membership-added": { + /** @enum {string} */ + action: "added"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** User */ + member: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + /** + * @description The scope of the membership. Currently, can only be `team`. + * @enum {string} + */ + scope: "team"; + /** User */ + sender: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** @enum {string} */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** membership removed event */ + "webhook-membership-removed": { + /** @enum {string} */ + action: "removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** User */ + member: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + /** + * @description The scope of the membership. Currently, can only be `team`. + * @enum {string} + */ + scope: "team" | "organization"; + /** User */ + sender: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** @enum {string} */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + "webhook-merge-group-checks-requested": { + /** @enum {string} */ + action: "checks_requested"; + installation?: components["schemas"]["simple-installation"]; + merge_group: components["schemas"]["merge-group"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-merge-group-destroyed": { + /** @enum {string} */ + action: "destroyed"; + /** + * @description Explains why the merge group is being destroyed. The group could have been merged, removed from the queue (dequeued), or invalidated by an earlier queue entry being dequeued (invalidated). + * @enum {string} + */ + reason?: "merged" | "invalidated" | "dequeued"; + installation?: components["schemas"]["simple-installation"]; + merge_group: components["schemas"]["merge-group"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** meta deleted event */ + "webhook-meta-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + /** @description The modified webhook. This will contain different keys based on the type of webhook it is: repository, organization, business, app, or GitHub Marketplace. */ + hook: { + active: boolean; + config: { + /** @enum {string} */ + content_type: "json" | "form"; + insecure_ssl: string; + secret?: string; + /** Format: uri */ + url: string; + }; + created_at: string; + events: ( + | "*" + | "branch_protection_rule" + | "check_run" + | "check_suite" + | "code_scanning_alert" + | "commit_comment" + | "create" + | "delete" + | "deployment" + | "deployment_status" + | "deploy_key" + | "discussion" + | "discussion_comment" + | "fork" + | "gollum" + | "issues" + | "issue_comment" + | "label" + | "member" + | "membership" + | "meta" + | "milestone" + | "organization" + | "org_block" + | "package" + | "page_build" + | "project" + | "project_card" + | "project_column" + | "public" + | "pull_request" + | "pull_request_review" + | "pull_request_review_comment" + | "pull_request_review_thread" + | "push" + | "registry_package" + | "release" + | "repository" + | "repository_import" + | "repository_vulnerability_alert" + | "secret_scanning_alert" + | "secret_scanning_alert_location" + | "security_and_analysis" + | "star" + | "status" + | "team" + | "team_add" + | "watch" + | "workflow_job" + | "workflow_run" + | "repository_dispatch" + | "projects_v2_item" + )[]; + id: number; + name: string; + type: string; + updated_at: string; + }; + /** @description The id of the modified webhook. */ + hook_id: number; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["nullable-repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone closed event */ + "webhook-milestone-closed": { + /** @enum {string} */ + action: "closed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone created event */ + "webhook-milestone-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone deleted event */ + "webhook-milestone-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone edited event */ + "webhook-milestone-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the milestone if the action was `edited`. */ + changes: { + description?: { + /** @description The previous version of the description if the action was `edited`. */ + from: string; + }; + due_on?: { + /** @description The previous version of the due date if the action was `edited`. */ + from: string; + }; + title?: { + /** @description The previous version of the title if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** milestone opened event */ + "webhook-milestone-opened": { + /** @enum {string} */ + action: "opened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** org_block blocked event */ + "webhook-org-block-blocked": { + /** @enum {string} */ + action: "blocked"; + /** User */ + blocked_user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** org_block unblocked event */ + "webhook-org-block-unblocked": { + /** @enum {string} */ + action: "unblocked"; + /** User */ + blocked_user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** organization deleted event */ + "webhook-organization-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Membership + * @description The membership between the user and the organization. Not present when the action is `member_invited`. + */ + membership?: { + /** Format: uri */ + organization_url: string; + role: string; + state: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** organization member_added event */ + "webhook-organization-member-added": { + /** @enum {string} */ + action: "member_added"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Membership + * @description The membership between the user and the organization. Not present when the action is `member_invited`. + */ + membership: { + /** Format: uri */ + organization_url: string; + role: string; + state: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** organization member_invited event */ + "webhook-organization-member-invited": { + /** @enum {string} */ + action: "member_invited"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The invitation for the user or email if the action is `member_invited`. */ + invitation: { + /** Format: date-time */ + created_at: string; + email: string | null; + /** Format: date-time */ + failed_at: string | null; + failed_reason: string | null; + id: number; + /** Format: uri */ + invitation_teams_url: string; + /** User */ + inviter: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + login: string | null; + node_id: string; + role: string; + team_count: number; + invitation_source?: string; + }; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** User */ + user?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** organization member_removed event */ + "webhook-organization-member-removed": { + /** @enum {string} */ + action: "member_removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Membership + * @description The membership between the user and the organization. Not present when the action is `member_invited`. + */ + membership: { + /** Format: uri */ + organization_url: string; + role: string; + state: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** organization renamed event */ + "webhook-organization-renamed": { + /** @enum {string} */ + action: "renamed"; + changes?: { + login?: { + from?: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** + * Membership + * @description The membership between the user and the organization. Not present when the action is `member_invited`. + */ + membership?: { + /** Format: uri */ + organization_url: string; + role: string; + state: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + organization: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Ruby Gems metadata */ + "webhook-rubygems-metadata": { + name?: string; + description?: string; + readme?: string; + homepage?: string; + version_info?: { + version?: string; + }; + platform?: string; + metadata?: { + [key: string]: string; + }; + repo?: string; + dependencies?: { + [key: string]: string; + }[]; + commit_oid?: string; + }; + /** package published event */ + "webhook-package-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description Information about the package. */ + package: { + created_at: string | null; + description: string | null; + ecosystem: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + namespace: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + package_type: string; + package_version: { + /** User */ + author?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body?: string | Record; + body_html?: string; + container_metadata?: { + labels?: unknown; + manifest?: unknown; + tag?: { + digest?: string; + name?: string; + }; + } | null; + created_at?: string; + description: string; + docker_metadata?: { + tags?: string[]; + }[]; + draft?: boolean; + /** Format: uri */ + html_url: string; + id: number; + installation_command: string; + manifest?: string; + metadata: { + [key: string]: unknown; + }[]; + name: string; + npm_metadata?: { + name?: string; + version?: string; + npm_user?: string; + author?: unknown; + bugs?: unknown; + dependencies?: Record; + dev_dependencies?: Record; + peer_dependencies?: Record; + optional_dependencies?: Record; + description?: string; + dist?: unknown; + git_head?: string; + homepage?: string; + license?: string; + main?: string; + repository?: unknown; + scripts?: Record; + id?: string; + node_version?: string; + npm_version?: string; + has_shrinkwrap?: boolean; + maintainers?: Record[]; + contributors?: Record[]; + engines?: Record; + keywords?: string[]; + files?: string[]; + bin?: Record; + man?: Record; + directories?: unknown; + os?: string[]; + cpu?: string[]; + readme?: string; + installation_command?: string; + release_id?: number; + commit_oid?: string; + published_via_actions?: boolean; + deleted_by_id?: number; + } | null; + nuget_metadata?: + | { + id?: number | string; + name?: string; + value?: OneOf< + [ + boolean, + string, + number, + { + url?: string; + branch?: string; + commit?: string; + type?: string; + }, + ] + >; + }[] + | null; + package_files: { + content_type: string; + created_at: string; + /** Format: uri */ + download_url: string; + id: number; + md5: string | null; + name: string; + sha1: string | null; + sha256: string | null; + size: number; + state: string | null; + updated_at: string; + }[]; + package_url?: string; + prerelease?: boolean; + release?: { + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + created_at: string; + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + prerelease: boolean; + published_at: string; + tag_name: string; + target_commitish: string; + /** Format: uri */ + url: string; + }; + rubygems_metadata?: components["schemas"]["webhook-rubygems-metadata"][]; + source_url?: string; + summary: string; + tag_name?: string; + target_commitish?: string; + target_oid?: string; + updated_at?: string; + version: string; + } | null; + registry: { + /** Format: uri */ + about_url: string; + name: string; + type: string; + /** Format: uri */ + url: string; + vendor: string; + } | null; + updated_at: string | null; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** package updated event */ + "webhook-package-updated": { + /** @enum {string} */ + action: "updated"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** @description Information about the package. */ + package: { + created_at: string; + description: string | null; + ecosystem: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + namespace: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + package_type: string; + package_version: { + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string; + body_html: string; + created_at: string; + description: string; + docker_metadata?: { + tags?: string[]; + }[]; + draft?: boolean; + /** Format: uri */ + html_url: string; + id: number; + installation_command: string; + manifest?: string; + metadata: { + [key: string]: unknown; + }[]; + name: string; + package_files: { + content_type: string; + created_at: string; + /** Format: uri */ + download_url: string; + id: number; + md5: string | null; + name: string; + sha1: string | null; + sha256: string; + size: number; + state: string; + updated_at: string; + }[]; + package_url?: string; + prerelease?: boolean; + release?: { + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + created_at: string; + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string; + prerelease: boolean; + published_at: string; + tag_name: string; + target_commitish: string; + /** Format: uri */ + url: string; + }; + rubygems_metadata?: components["schemas"]["webhook-rubygems-metadata"][]; + /** Format: uri */ + source_url?: string; + summary: string; + tag_name?: string; + target_commitish: string; + target_oid: string; + updated_at: string; + version: string; + }; + registry: { + /** Format: uri */ + about_url: string; + name: string; + type: string; + /** Format: uri */ + url: string; + vendor: string; + } | null; + updated_at: string; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** page_build event */ + "webhook-page-build": { + /** @description The [List GitHub Pages builds](https://docs.github.com/rest/pages/pages#list-github-pages-builds) itself. */ + build: { + commit: string | null; + created_at: string; + duration: number; + error: { + message: string | null; + }; + /** User */ + pusher: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + status: string; + updated_at: string; + /** Format: uri */ + url: string; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + id: number; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** personal_access_token_request approved event */ + "webhook-personal-access-token-request-approved": { + /** @enum {string} */ + action: "approved"; + personal_access_token_request: components["schemas"]["personal-access-token-request"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + installation: components["schemas"]["simple-installation"]; + }; + /** personal_access_token_request cancelled event */ + "webhook-personal-access-token-request-cancelled": { + /** @enum {string} */ + action: "cancelled"; + personal_access_token_request: components["schemas"]["personal-access-token-request"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + installation: components["schemas"]["simple-installation"]; + }; + /** personal_access_token_request created event */ + "webhook-personal-access-token-request-created": { + /** @enum {string} */ + action: "created"; + personal_access_token_request: components["schemas"]["personal-access-token-request"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + installation: components["schemas"]["simple-installation"]; + }; + /** personal_access_token_request denied event */ + "webhook-personal-access-token-request-denied": { + /** @enum {string} */ + action: "denied"; + personal_access_token_request: components["schemas"]["personal-access-token-request"]; + organization: components["schemas"]["organization-simple-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + installation: components["schemas"]["simple-installation"]; + }; + "webhook-ping": { + /** + * Webhook + * @description The webhook that is being pinged + */ + hook?: { + /** @description Determines whether the hook is actually triggered for the events it subscribes to. */ + active: boolean; + /** @description Only included for GitHub Apps. When you register a new GitHub App, GitHub sends a ping event to the webhook URL you specified during registration. The GitHub App ID sent in this field is required for authenticating an app. */ + app_id?: number; + config: { + content_type?: components["schemas"]["webhook-config-content-type"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + secret?: components["schemas"]["webhook-config-secret"]; + url?: components["schemas"]["webhook-config-url"]; + }; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + deliveries_url?: string; + /** @description Determines what events the hook is triggered for. Default: ['push']. */ + events: string[]; + /** @description Unique identifier of the webhook. */ + id: number; + last_response?: components["schemas"]["hook-response"]; + /** + * @description The type of webhook. The only valid value is 'web'. + * @enum {string} + */ + name: "web"; + /** Format: uri */ + ping_url?: string; + /** Format: uri */ + test_url?: string; + type: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url?: string; + }; + /** @description The ID of the webhook that triggered the ping. */ + hook_id?: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + /** @description Random string of GitHub zen. */ + zen?: string; + }; + /** @description The webhooks ping payload encoded with URL encoding. */ + "webhook-ping-form-encoded": { + /** @description A URL-encoded string of the ping JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** project_card converted event */ + "webhook-project-card-converted": { + /** @enum {string} */ + action: "converted"; + changes: { + note: { + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Card */ + project_card: { + after_id?: number | null; + /** @description Whether or not the card is archived */ + archived: boolean; + column_id: number; + /** Format: uri */ + column_url: string; + /** Format: uri */ + content_url?: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The project card's ID */ + id: number; + node_id: string; + note: string | null; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_card created event */ + "webhook-project-card-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Card */ + project_card: { + after_id?: number | null; + /** @description Whether or not the card is archived */ + archived: boolean; + column_id: number; + /** Format: uri */ + column_url: string; + /** Format: uri */ + content_url?: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The project card's ID */ + id: number; + node_id: string; + note: string | null; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_card deleted event */ + "webhook-project-card-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Card */ + project_card: { + after_id?: number | null; + /** @description Whether or not the card is archived */ + archived: boolean; + column_id: number | null; + /** Format: uri */ + column_url: string; + /** Format: uri */ + content_url?: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** @description The project card's ID */ + id: number; + node_id: string; + note: string | null; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["nullable-repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_card edited event */ + "webhook-project-card-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + note: { + from: string | null; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Card */ + project_card: { + after_id?: number | null; + /** @description Whether or not the card is archived */ + archived: boolean; + column_id: number; + /** Format: uri */ + column_url: string; + /** Format: uri */ + content_url?: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description The project card's ID */ + id: number; + node_id: string; + note: string | null; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_card moved event */ + "webhook-project-card-moved": { + /** @enum {string} */ + action: "moved"; + changes?: { + column_id: { + from: number; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + project_card: { + after_id?: number | null; + /** @description Whether or not the card is archived */ + archived: boolean; + column_id: number; + /** Format: uri */ + column_url: string; + /** Format: uri */ + content_url?: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** @description The project card's ID */ + id: number; + node_id: string; + note: string | null; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } & { + after_id: number | null; + archived?: boolean; + column_id?: number; + column_url?: string; + created_at?: string; + creator?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + } | null; + id?: number; + node_id?: string; + note?: string | null; + project_url?: string; + updated_at?: string; + url?: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project closed event */ + "webhook-project-closed": { + /** @enum {string} */ + action: "closed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project */ + project: { + /** @description Body of the project */ + body: string | null; + /** Format: uri */ + columns_url: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + id: number; + /** @description Name of the project */ + name: string; + node_id: string; + number: number; + /** Format: uri */ + owner_url: string; + /** + * @description State of the project; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project_column created event */ + "webhook-project-column-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Column */ + project_column: { + after_id?: number | null; + /** Format: uri */ + cards_url: string; + /** Format: date-time */ + created_at: string; + /** @description The unique identifier of the project column */ + id: number; + /** @description Name of the project column */ + name: string; + node_id: string; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project_column deleted event */ + "webhook-project-column-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Column */ + project_column: { + after_id?: number | null; + /** Format: uri */ + cards_url: string; + /** Format: date-time */ + created_at: string; + /** @description The unique identifier of the project column */ + id: number; + /** @description Name of the project column */ + name: string; + node_id: string; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["nullable-repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project_column edited event */ + "webhook-project-column-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + name?: { + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Column */ + project_column: { + after_id?: number | null; + /** Format: uri */ + cards_url: string; + /** Format: date-time */ + created_at: string; + /** @description The unique identifier of the project column */ + id: number; + /** @description Name of the project column */ + name: string; + node_id: string; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project_column moved event */ + "webhook-project-column-moved": { + /** @enum {string} */ + action: "moved"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project Column */ + project_column: { + after_id?: number | null; + /** Format: uri */ + cards_url: string; + /** Format: date-time */ + created_at: string; + /** @description The unique identifier of the project column */ + id: number; + /** @description Name of the project column */ + name: string; + node_id: string; + /** Format: uri */ + project_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project created event */ + "webhook-project-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project */ + project: { + /** @description Body of the project */ + body: string | null; + /** Format: uri */ + columns_url: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + id: number; + /** @description Name of the project */ + name: string; + node_id: string; + number: number; + /** Format: uri */ + owner_url: string; + /** + * @description State of the project; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** project deleted event */ + "webhook-project-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project */ + project: { + /** @description Body of the project */ + body: string | null; + /** Format: uri */ + columns_url: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + id: number; + /** @description Name of the project */ + name: string; + node_id: string; + number: number; + /** Format: uri */ + owner_url: string; + /** + * @description State of the project; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["nullable-repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project edited event */ + "webhook-project-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the project if the action was `edited`. */ + changes?: { + body?: { + /** @description The previous version of the body if the action was `edited`. */ + from: string; + }; + name?: { + /** @description The changes to the project if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project */ + project: { + /** @description Body of the project */ + body: string | null; + /** Format: uri */ + columns_url: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + id: number; + /** @description Name of the project */ + name: string; + node_id: string; + number: number; + /** Format: uri */ + owner_url: string; + /** + * @description State of the project; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** project reopened event */ + "webhook-project-reopened": { + /** @enum {string} */ + action: "reopened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Project */ + project: { + /** @description Body of the project */ + body: string | null; + /** Format: uri */ + columns_url: string; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + id: number; + /** @description Name of the project */ + name: string; + node_id: string; + number: number; + /** Format: uri */ + owner_url: string; + /** + * @description State of the project; either 'open' or 'closed' + * @enum {string} + */ + state: "open" | "closed"; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Project Closed Event */ + "webhook-projects-v2-project-closed": { + /** @enum {string} */ + action: "closed"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** @description A project was created */ + "webhook-projects-v2-project-created": { + /** @enum {string} */ + action: "created"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Project Deleted Event */ + "webhook-projects-v2-project-deleted": { + /** @enum {string} */ + action: "deleted"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Project Edited Event */ + "webhook-projects-v2-project-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + description?: { + from?: string | null; + to?: string | null; + }; + public?: { + from?: boolean; + to?: boolean; + }; + short_description?: { + from?: string | null; + to?: string | null; + }; + title?: { + from?: string; + to?: string; + }; + }; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Archived Event */ + "webhook-projects-v2-item-archived": { + /** @enum {string} */ + action: "archived"; + changes: { + archived_at?: { + /** Format: date-time */ + from?: string | null; + /** Format: date-time */ + to?: string | null; + }; + }; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Converted Event */ + "webhook-projects-v2-item-converted": { + /** @enum {string} */ + action: "converted"; + changes: { + content_type?: { + from?: string | null; + to?: string; + }; + }; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Created Event */ + "webhook-projects-v2-item-created": { + /** @enum {string} */ + action: "created"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Deleted Event */ + "webhook-projects-v2-item-deleted": { + /** @enum {string} */ + action: "deleted"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Edited Event */ + "webhook-projects-v2-item-edited": { + /** @enum {string} */ + action: "edited"; + changes?: OneOf< + [ + { + field_value: { + field_node_id?: string; + field_type?: string; + }; + }, + { + body: { + from?: string | null; + to?: string | null; + }; + }, + ] + >; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Reordered Event */ + "webhook-projects-v2-item-reordered": { + /** @enum {string} */ + action: "reordered"; + changes: { + previous_projects_v2_item_node_id?: { + from?: string | null; + to?: string | null; + }; + }; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Item Restored Event */ + "webhook-projects-v2-item-restored": { + /** @enum {string} */ + action: "restored"; + changes: { + archived_at?: { + /** Format: date-time */ + from?: string | null; + /** Format: date-time */ + to?: string | null; + }; + }; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2_item: components["schemas"]["projects-v2-item"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Projects v2 Project Reopened Event */ + "webhook-projects-v2-project-reopened": { + /** @enum {string} */ + action: "reopened"; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + projects_v2: components["schemas"]["projects-v2"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** public event */ + "webhook-public": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request assigned event */ + "webhook-pull-request-assigned": { + /** @enum {string} */ + action: "assigned"; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request auto_merge_disabled event */ + "webhook-pull-request-auto-merge-disabled": { + /** @enum {string} */ + action: "auto_merge_disabled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + reason: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request auto_merge_enabled event */ + "webhook-pull-request-auto-merge-enabled": { + /** @enum {string} */ + action: "auto_merge_enabled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + reason?: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request closed event */ + "webhook-pull-request-closed": { + /** @enum {string} */ + action: "closed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request"] & { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow updating the pull request's branch. */ + allow_update_branch?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a merge commit message. + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., "Merge pull request #123 from branch-name"). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a squash merge commit message: + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.** + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request converted_to_draft event */ + "webhook-pull-request-converted-to-draft": { + /** @enum {string} */ + action: "converted_to_draft"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request"] & { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow updating the pull request's branch. */ + allow_update_branch?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a merge commit message. + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., "Merge pull request #123 from branch-name"). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a squash merge commit message: + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.** + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request demilestoned event */ + "webhook-pull-request-demilestoned": { + /** @enum {string} */ + action: "demilestoned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + milestone?: components["schemas"]["milestone"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request dequeued event */ + "webhook-pull-request-dequeued": { + /** @enum {string} */ + action: "dequeued"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + reason: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request edited event */ + "webhook-pull-request-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the comment if the action was `edited`. */ + changes: { + base?: { + ref: { + from: string; + }; + sha: { + from: string; + }; + }; + body?: { + /** @description The previous version of the body if the action was `edited`. */ + from: string; + }; + title?: { + /** @description The previous version of the title if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request"] & { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow updating the pull request's branch. */ + allow_update_branch?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a merge commit message. + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., "Merge pull request #123 from branch-name"). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a squash merge commit message: + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request enqueued event */ + "webhook-pull-request-enqueued": { + /** @enum {string} */ + action: "enqueued"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request labeled event */ + "webhook-pull-request-labeled": { + /** @enum {string} */ + action: "labeled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request locked event */ + "webhook-pull-request-locked": { + /** @enum {string} */ + action: "locked"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request milestoned event */ + "webhook-pull-request-milestoned": { + /** @enum {string} */ + action: "milestoned"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + milestone?: components["schemas"]["milestone"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request opened event */ + "webhook-pull-request-opened": { + /** @enum {string} */ + action: "opened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request"] & { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow updating the pull request's branch. */ + allow_update_branch?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a merge commit message. + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a squash merge commit message: + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.** + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request ready_for_review event */ + "webhook-pull-request-ready-for-review": { + /** @enum {string} */ + action: "ready_for_review"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request"] & { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow updating the pull request's branch. */ + allow_update_branch?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a merge commit message. + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., "Merge pull request #123 from branch-name"). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a squash merge commit message: + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.** + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request reopened event */ + "webhook-pull-request-reopened": { + /** @enum {string} */ + action: "reopened"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: components["schemas"]["pull-request"] & { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow updating the pull request's branch. */ + allow_update_branch?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a merge commit message. + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., "Merge pull request #123 from branch-name"). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a squash merge commit message: + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.** + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review_comment created event */ + "webhook-pull-request-review-comment-created": { + /** @enum {string} */ + action: "created"; + /** + * Pull Request Review Comment + * @description The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) itself. + */ + comment: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number | null; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge?: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft?: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions?: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review_comment deleted event */ + "webhook-pull-request-review-comment-deleted": { + /** @enum {string} */ + action: "deleted"; + /** + * Pull Request Review Comment + * @description The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) itself. + */ + comment: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge?: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft?: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review_comment edited event */ + "webhook-pull-request-review-comment-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the comment. */ + changes: { + body?: { + /** @description The previous version of the body. */ + from: string; + }; + }; + /** + * Pull Request Review Comment + * @description The [comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request) itself. + */ + comment: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge?: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft?: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review dismissed event */ + "webhook-pull-request-review-dismissed": { + /** @enum {string} */ + action: "dismissed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** @description The review that was affected. */ + review: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the review. */ + body: string | null; + /** @description A commit SHA for the review. */ + commit_id: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the review */ + id: number; + node_id: string; + /** Format: uri */ + pull_request_url: string; + /** @enum {string} */ + state: "dismissed" | "approved" | "changes_requested"; + /** Format: date-time */ + submitted_at: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review edited event */ + "webhook-pull-request-review-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + body?: { + /** @description The previous version of the body if the action was `edited`. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** @description The review that was affected. */ + review: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the review. */ + body: string | null; + /** @description A commit SHA for the review. */ + commit_id: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the review */ + id: number; + node_id: string; + /** Format: uri */ + pull_request_url: string; + state: string; + /** Format: date-time */ + submitted_at: string | null; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request review_request_removed event */ + "webhook-pull-request-review-request-removed": OneOf< + [ + { + /** @enum {string} */ + action: "review_request_removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title. + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** User */ + requested_reviewer: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + sender: components["schemas"]["simple-user-webhooks"]; + }, + { + /** @enum {string} */ + action: "review_request_removed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + requested_team: { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }, + ] + >; + /** pull_request review_requested event */ + "webhook-pull-request-review-requested": OneOf< + [ + { + /** @enum {string} */ + action: "review_requested"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** User */ + requested_reviewer: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + sender: components["schemas"]["simple-user-webhooks"]; + }, + { + /** @enum {string} */ + action: "review_requested"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + requested_team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }, + ] + >; + /** pull_request_review submitted event */ + "webhook-pull-request-review-submitted": { + /** @enum {string} */ + action: "submitted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + /** @description The review that was affected. */ + review: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the review. */ + body: string | null; + /** @description A commit SHA for the review. */ + commit_id: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the review */ + id: number; + node_id: string; + /** Format: uri */ + pull_request_url: string; + state: string; + /** Format: date-time */ + submitted_at: string | null; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request_review_thread resolved event */ + "webhook-pull-request-review-thread-resolved": { + /** @enum {string} */ + action: "resolved"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + thread: { + comments: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number | null; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }[]; + node_id: string; + }; + }; + /** pull_request_review_thread unresolved event */ + "webhook-pull-request-review-thread-unresolved": { + /** @enum {string} */ + action: "unresolved"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Simple Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + closed_at: string | null; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + commits_url: string; + created_at: string; + /** Format: uri */ + diff_url: string; + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + merge_commit_sha: string | null; + merged_at: string | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + number: number; + /** Format: uri */ + patch_url: string; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + /** Format: uri */ + review_comments_url: string; + /** @enum {string} */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + title: string; + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + thread: { + comments: { + _links: { + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + pull_request: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + }; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** @description The text of the comment. */ + body: string; + /** @description The SHA of the commit to which the comment applies. */ + commit_id: string; + /** Format: date-time */ + created_at: string; + /** @description The diff of the line that the comment refers to. */ + diff_hunk: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + */ + html_url: string; + /** @description The ID of the pull request review comment. */ + id: number; + /** @description The comment ID to reply to. */ + in_reply_to_id?: number; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + line: number | null; + /** @description The node ID of the pull request review comment. */ + node_id: string; + /** @description The SHA of the original commit to which the comment applies. */ + original_commit_id: string; + /** @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment */ + original_line: number; + /** @description The index of the original line in the diff to which the comment applies. */ + original_position: number; + /** @description The first line of the range for a multi-line comment. */ + original_start_line: number | null; + /** @description The relative path of the file to which the comment applies. */ + path: string; + /** @description The line index in the diff to which the comment applies. */ + position: number | null; + /** @description The ID of the pull request review to which the comment belongs. */ + pull_request_review_id: number | null; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** Reactions */ + reactions: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** + * @description The side of the first line of the range for a multi-line comment. + * @enum {string} + */ + side: "LEFT" | "RIGHT"; + /** @description The first line of the range for a multi-line comment. */ + start_line: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side: "LEFT" | "RIGHT" | null; + /** + * @description The level at which the comment is targeted, can be a diff line or a file. + * @enum {string} + */ + subject_type?: "line" | "file"; + /** Format: date-time */ + updated_at: string; + /** + * Format: uri + * @description URL for the pull request review comment + */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }[]; + node_id: string; + }; + }; + /** pull_request synchronize event */ + "webhook-pull-request-synchronize": { + /** @enum {string} */ + action: "synchronize"; + after: string; + before: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit message title. + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request unassigned event */ + "webhook-pull-request-unassigned": { + /** @enum {string} */ + action: "unassigned"; + /** User */ + assignee?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request unlabeled event */ + "webhook-pull-request-unlabeled": { + /** @enum {string} */ + action: "unlabeled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** Label */ + label?: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string | null; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string | null; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit message title. + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization" | "Mannequin"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** pull_request unlocked event */ + "webhook-pull-request-unlocked": { + /** @enum {string} */ + action: "unlocked"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + /** @description The pull request number. */ + number: number; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** Pull Request */ + pull_request: { + _links: { + /** Link */ + comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + commits: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + html: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + issue: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comment: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + review_comments: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + self: { + /** Format: uri-template */ + href: string; + }; + /** Link */ + statuses: { + /** Format: uri-template */ + href: string; + }; + }; + /** @enum {string|null} */ + active_lock_reason: + | "resolved" + | "off-topic" + | "too heated" + | "spam" + | null; + additions?: number; + /** User */ + assignee: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + assignees: ({ + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null)[]; + /** + * AuthorAssociation + * @description How the author is associated with the repository. + * @enum {string} + */ + author_association: + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** + * PullRequestAutoMerge + * @description The status of auto merging a pull request. + */ + auto_merge: { + /** @description Commit message for the merge commit. */ + commit_message: string | null; + /** @description Title for the merge commit message. */ + commit_title: string; + /** User */ + enabled_by: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + } | null; + base: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + body: string | null; + changed_files?: number; + /** Format: date-time */ + closed_at: string | null; + comments?: number; + /** Format: uri */ + comments_url: string; + commits?: number; + /** Format: uri */ + commits_url: string; + /** Format: date-time */ + created_at: string; + deletions?: number; + /** Format: uri */ + diff_url: string; + /** @description Indicates whether or not the pull request is a draft. */ + draft: boolean; + head: { + label: string; + ref: string; + /** + * Repository + * @description A git repository + */ + repo: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: + | "PR_BODY" + | "COMMIT_MESSAGES" + | "BLANK"; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** + * @description Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + } | null; + sha: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + issue_url: string; + labels: { + /** @description 6-character hex code, without the leading #, identifying the color */ + color: string; + default: boolean; + description: string | null; + id: number; + /** @description The name of the label. */ + name: string; + node_id: string; + /** + * Format: uri + * @description URL for the label + */ + url: string; + }[]; + locked: boolean; + /** @description Indicates whether maintainers can modify the pull request. */ + maintainer_can_modify?: boolean; + merge_commit_sha: string | null; + mergeable?: boolean | null; + mergeable_state?: string; + merged?: boolean | null; + /** Format: date-time */ + merged_at: string | null; + /** User */ + merged_by?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** Format: date-time */ + closed_at: string | null; + closed_issues: number; + /** Format: date-time */ + created_at: string; + /** User */ + creator: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + description: string | null; + /** Format: date-time */ + due_on: string | null; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + labels_url: string; + node_id: string; + /** @description The number of the milestone. */ + number: number; + open_issues: number; + /** + * @description The state of the milestone. + * @enum {string} + */ + state: "open" | "closed"; + /** @description The title of the milestone. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + node_id: string; + /** @description Number uniquely identifying the pull request within its repository. */ + number: number; + /** Format: uri */ + patch_url: string; + rebaseable?: boolean | null; + requested_reviewers: OneOf< + [ + { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null, + { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }, + ] + >[]; + requested_teams: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }[]; + /** Format: uri-template */ + review_comment_url: string; + review_comments?: number; + /** Format: uri */ + review_comments_url: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state: "open" | "closed"; + /** Format: uri */ + statuses_url: string; + /** @description The title of the pull request. */ + title: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** User */ + user: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** push event */ + "webhook-push": { + /** @description The SHA of the most recent commit on `ref` after the push. */ + after: string; + base_ref: string | null; + /** @description The SHA of the most recent commit on `ref` before the push. */ + before: string; + /** @description An array of commit objects describing the pushed commits. (Pushed commits are all commits that are included in the `compare` between the `before` commit and the `after` commit.) The array includes a maximum of 20 commits. If necessary, you can use the [Commits API](https://docs.github.com/rest/commits) to fetch additional commits. This limit is applied to timeline events only and isn't applied to webhook deliveries. */ + commits: { + /** @description An array of files added in the commit. A maximum of 3000 changed files will be reported per commit. */ + added?: string[]; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** @description Whether this commit is distinct from any that have been pushed before. */ + distinct: boolean; + id: string; + /** @description The commit message. */ + message: string; + /** @description An array of files modified by the commit. A maximum of 3000 changed files will be reported per commit. */ + modified?: string[]; + /** @description An array of files removed in the commit. A maximum of 3000 changed files will be reported per commit. */ + removed?: string[]; + /** + * Format: date-time + * @description The ISO 8601 timestamp of the commit. + */ + timestamp: string; + tree_id: string; + /** + * Format: uri + * @description URL that points to the commit API resource. + */ + url: string; + }[]; + /** @description URL that shows the changes in this `ref` update, from the `before` commit to the `after` commit. For a newly created `ref` that is directly based on the default branch, this is the comparison between the head of the default branch and the `after` commit. Otherwise, this shows all commits until the `after` commit. */ + compare: string; + /** @description Whether this push created the `ref`. */ + created: boolean; + /** @description Whether this push deleted the `ref`. */ + deleted: boolean; + enterprise?: components["schemas"]["enterprise-webhooks"]; + /** @description Whether this push was a force push of the `ref`. */ + forced: boolean; + /** Commit */ + head_commit: { + /** @description An array of files added in the commit. */ + added?: string[]; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** @description Whether this commit is distinct from any that have been pushed before. */ + distinct: boolean; + id: string; + /** @description The commit message. */ + message: string; + /** @description An array of files modified by the commit. */ + modified?: string[]; + /** @description An array of files removed in the commit. */ + removed?: string[]; + /** + * Format: date-time + * @description The ISO 8601 timestamp of the commit. + */ + timestamp: string; + tree_id: string; + /** + * Format: uri + * @description URL that points to the commit API resource. + */ + url: string; + } | null; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + pusher: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email?: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** @description The full git ref that was pushed. Example: `refs/heads/main` or `refs/tags/v3.14.1`. */ + ref: string; + /** + * Repository + * @description A git repository + */ + repository: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + /** + * @description Whether discussions are enabled. + * @default false + */ + has_discussions: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + /** @description Whether to require contributors to sign off on web-based commits */ + web_commit_signoff_required?: boolean; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-registry-package-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + registry_package: { + created_at: string | null; + description: string | null; + ecosystem: string; + html_url: string; + id: number; + name: string; + namespace: string; + owner: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + package_type: string; + package_version: { + author?: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + body?: string | Record; + body_html?: string; + container_metadata?: { + labels?: unknown; + manifest?: unknown; + tag?: { + digest?: string; + name?: string; + }; + }; + created_at?: string; + description: string; + docker_metadata?: { + tags?: string[]; + }[]; + draft?: boolean; + html_url: string; + id: number; + installation_command: string; + manifest?: string; + metadata: { + [key: string]: unknown; + }[]; + name: string; + npm_metadata?: { + name?: string; + version?: string; + npm_user?: string; + author?: string | Record | null; + bugs?: string | Record | null; + dependencies?: Record; + dev_dependencies?: Record; + peer_dependencies?: Record; + optional_dependencies?: Record; + description?: string; + dist?: string | Record | null; + git_head?: string; + homepage?: string; + license?: string; + main?: string; + repository?: string | Record | null; + scripts?: Record; + id?: string; + node_version?: string; + npm_version?: string; + has_shrinkwrap?: boolean; + maintainers?: string[]; + contributors?: string[]; + engines?: Record; + keywords?: string[]; + files?: string[]; + bin?: Record; + man?: Record; + directories?: string | Record | null; + os?: string[]; + cpu?: string[]; + readme?: string; + installation_command?: string; + release_id?: number; + commit_oid?: string; + published_via_actions?: boolean; + deleted_by_id?: number; + } | null; + nuget_metadata?: + | { + id?: string | Record | number | null; + name?: string; + value?: OneOf< + [ + boolean, + string, + number, + { + url?: string; + branch?: string; + commit?: string; + type?: string; + }, + ] + >; + }[] + | null; + package_files: { + content_type: string; + created_at: string; + download_url: string; + id: number; + md5: string | null; + name: string; + sha1: string | null; + sha256: string | null; + size: number; + state: string | null; + updated_at: string; + }[]; + package_url: string; + prerelease?: boolean; + release?: { + author?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + created_at?: string; + draft?: boolean; + html_url?: string; + id?: number; + name?: string | null; + prerelease?: boolean; + published_at?: string; + tag_name?: string; + target_commitish?: string; + url?: string; + }; + rubygems_metadata?: components["schemas"]["webhook-rubygems-metadata"][]; + summary: string; + tag_name?: string; + target_commitish?: string; + target_oid?: string; + updated_at?: string; + version: string; + } | null; + registry: { + about_url?: string; + name?: string; + type?: string; + url?: string; + vendor?: string; + } | null; + updated_at: string | null; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + "webhook-registry-package-updated": { + /** @enum {string} */ + action: "updated"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + registry_package: { + created_at: string; + description: unknown; + ecosystem: string; + html_url: string; + id: number; + name: string; + namespace: string; + owner: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + package_type: string; + package_version: { + author: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + body: string; + body_html: string; + created_at: string; + description: string; + docker_metadata?: ({ + tags?: string[]; + } | null)[]; + draft?: boolean; + html_url: string; + id: number; + installation_command: string; + manifest?: string; + metadata: { + [key: string]: unknown; + }[]; + name: string; + package_files: { + content_type?: string; + created_at?: string; + download_url?: string; + id?: number; + md5?: string | null; + name?: string; + sha1?: string | null; + sha256?: string; + size?: number; + state?: string; + updated_at?: string; + }[]; + package_url: string; + prerelease?: boolean; + release?: { + author: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + created_at: string; + draft: boolean; + html_url: string; + id: number; + name: string; + prerelease: boolean; + published_at: string; + tag_name: string; + target_commitish: string; + url: string; + }; + rubygems_metadata?: components["schemas"]["webhook-rubygems-metadata"][]; + summary: string; + tag_name?: string; + target_commitish: string; + target_oid: string; + updated_at: string; + version: string; + }; + registry: unknown; + updated_at: string; + }; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** release created event */ + "webhook-release-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** + * Release + * @description The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object. + */ + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** release deleted event */ + "webhook-release-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** + * Release + * @description The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object. + */ + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** release edited event */ + "webhook-release-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + body?: { + /** @description The previous version of the body if the action was `edited`. */ + from: string; + }; + name?: { + /** @description The previous version of the name if the action was `edited`. */ + from: string; + }; + make_latest?: { + /** @description Whether this release was explicitly `edited` to be the latest. */ + to: boolean; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** + * Release + * @description The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object. + */ + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** release prereleased event */ + "webhook-release-prereleased": { + /** @enum {string} */ + action: "prereleased"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + } & { + assets?: unknown[]; + assets_url?: string; + author?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + body?: string | null; + created_at?: string; + draft?: boolean; + html_url?: string; + id?: number; + name?: string | null; + node_id?: string; + /** + * @description Whether the release is identified as a prerelease or a full release. + * @enum {boolean} + */ + prerelease: true; + published_at?: string | null; + tag_name?: string; + tarball_url?: string | null; + target_commitish?: string; + upload_url?: string; + url?: string; + zipball_url?: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** release published event */ + "webhook-release-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + } & { + assets?: unknown[]; + assets_url?: string; + author?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + body?: string | null; + created_at?: string; + draft?: boolean; + html_url?: string; + id?: number; + name?: string | null; + node_id?: string; + prerelease?: boolean; + /** Format: date-time */ + published_at: string | null; + tag_name?: string; + tarball_url?: string | null; + target_commitish?: string; + upload_url?: string; + url?: string; + zipball_url?: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** release released event */ + "webhook-release-released": { + /** @enum {string} */ + action: "released"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + /** + * Release + * @description The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object. + */ + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** release unpublished event */ + "webhook-release-unpublished": { + /** @enum {string} */ + action: "unpublished"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + release: { + assets: { + /** Format: uri */ + browser_download_url: string; + content_type: string; + /** Format: date-time */ + created_at: string; + download_count: number; + id: number; + label: string | null; + /** @description The file name of the asset. */ + name: string; + node_id: string; + size: number; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded"; + /** Format: date-time */ + updated_at: string; + /** User */ + uploader?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + url: string; + }[]; + /** Format: uri */ + assets_url: string; + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + body: string | null; + /** Format: date-time */ + created_at: string | null; + /** Format: uri */ + discussion_url?: string; + /** @description Whether the release is a draft or published */ + draft: boolean; + /** Format: uri */ + html_url: string; + id: number; + name: string | null; + node_id: string; + /** @description Whether the release is identified as a prerelease or a full release. */ + prerelease: boolean; + /** Format: date-time */ + published_at: string | null; + /** Reactions */ + reactions?: { + "+1": number; + "-1": number; + confused: number; + eyes: number; + heart: number; + hooray: number; + laugh: number; + rocket: number; + total_count: number; + /** Format: uri */ + url: string; + }; + /** @description The name of the tag. */ + tag_name: string; + /** Format: uri */ + tarball_url: string | null; + /** @description Specifies the commitish value that determines where the Git tag is created from. */ + target_commitish: string; + /** Format: uri-template */ + upload_url: string; + /** Format: uri */ + url: string; + /** Format: uri */ + zipball_url: string | null; + } & { + assets?: unknown[]; + assets_url?: string; + author?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + body?: string | null; + created_at?: string; + draft?: boolean; + html_url?: string; + id?: number; + name?: string | null; + node_id?: string; + prerelease?: boolean; + published_at: string | null; + tag_name?: string; + tarball_url?: string | null; + target_commitish?: string; + upload_url?: string; + url?: string; + zipball_url?: string | null; + }; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** Repository advisory published event */ + "webhook-repository-advisory-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + repository_advisory: components["schemas"]["repository-advisory"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** Repository advisory reported event */ + "webhook-repository-advisory-reported": { + /** @enum {string} */ + action: "reported"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + repository_advisory: components["schemas"]["repository-advisory"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** repository archived event */ + "webhook-repository-archived": { + /** @enum {string} */ + action: "archived"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository created event */ + "webhook-repository-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository deleted event */ + "webhook-repository-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_dispatch event */ + "webhook-repository-dispatch-sample": { + /** @enum {string} */ + action: "sample.collected"; + branch: string; + client_payload: { + [key: string]: unknown; + } | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository edited event */ + "webhook-repository-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + default_branch?: { + from: string; + }; + description?: { + from: string | null; + }; + homepage?: { + from: string | null; + }; + topics?: { + from?: string[] | null; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_import event */ + "webhook-repository-import": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** @enum {string} */ + status: "success" | "cancelled" | "failure"; + }; + /** repository privatized event */ + "webhook-repository-privatized": { + /** @enum {string} */ + action: "privatized"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository publicized event */ + "webhook-repository-publicized": { + /** @enum {string} */ + action: "publicized"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository renamed event */ + "webhook-repository-renamed": { + /** @enum {string} */ + action: "renamed"; + changes: { + repository: { + name: { + from: string; + }; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository ruleset created event */ + "webhook-repository-ruleset-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + repository_ruleset: components["schemas"]["repository-ruleset"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository ruleset deleted event */ + "webhook-repository-ruleset-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + repository_ruleset: components["schemas"]["repository-ruleset"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository ruleset edited event */ + "webhook-repository-ruleset-edited": { + /** @enum {string} */ + action: "edited"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + repository_ruleset: components["schemas"]["repository-ruleset"]; + changes?: { + name?: { + from?: string; + }; + enforcement?: { + from?: string; + }; + conditions?: { + added?: components["schemas"]["repository-ruleset-conditions"][]; + deleted?: components["schemas"]["repository-ruleset-conditions"][]; + updated?: { + condition?: components["schemas"]["repository-ruleset-conditions"]; + changes?: { + condition_type?: { + from?: string; + }; + target?: { + from?: string; + }; + include?: { + from?: string[]; + }; + exclude?: { + from?: string[]; + }; + }; + }[]; + }; + rules?: { + added?: components["schemas"]["repository-rule"][]; + deleted?: components["schemas"]["repository-rule"][]; + updated?: { + rule?: components["schemas"]["repository-rule"]; + changes?: { + configuration?: { + from?: string; + }; + rule_type?: { + from?: string; + }; + pattern?: { + from?: string; + }; + }; + }[]; + }; + }; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository transferred event */ + "webhook-repository-transferred": { + /** @enum {string} */ + action: "transferred"; + changes: { + owner: { + from: { + /** Organization */ + organization?: { + /** Format: uri */ + avatar_url: string; + description: string | null; + /** Format: uri */ + events_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url?: string; + id: number; + /** Format: uri */ + issues_url: string; + login: string; + /** Format: uri-template */ + members_url: string; + node_id: string; + /** Format: uri-template */ + public_members_url: string; + /** Format: uri */ + repos_url: string; + /** Format: uri */ + url: string; + }; + /** User */ + user?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + }; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository unarchived event */ + "webhook-repository-unarchived": { + /** @enum {string} */ + action: "unarchived"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_vulnerability_alert create event */ + "webhook-repository-vulnerability-alert-create": { + /** @enum {string} */ + action: "create"; + alert: { + affected_package_name: string; + affected_range: string; + created_at: string; + dismiss_reason?: string; + dismissed_at?: string; + /** User */ + dismisser?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + external_identifier: string; + /** Format: uri */ + external_reference: string | null; + fix_reason?: string; + /** Format: date-time */ + fixed_at?: string; + fixed_in?: string; + ghsa_id: string; + id: number; + node_id: string; + number: number; + severity: string; + /** @enum {string} */ + state: "open" | "dismissed" | "fixed"; + } & { + affected_package_name?: string; + affected_range?: string; + created_at?: string; + external_identifier?: string; + external_reference?: string | null; + fixed_in?: string; + ghsa_id?: string; + id?: number; + node_id?: string; + number?: number; + severity?: string; + /** @enum {string} */ + state: "open"; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_vulnerability_alert dismiss event */ + "webhook-repository-vulnerability-alert-dismiss": { + /** @enum {string} */ + action: "dismiss"; + alert: { + affected_package_name: string; + affected_range: string; + created_at: string; + dismiss_comment?: string | null; + dismiss_reason?: string; + dismissed_at?: string; + /** User */ + dismisser?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + external_identifier: string; + /** Format: uri */ + external_reference: string | null; + fix_reason?: string; + /** Format: date-time */ + fixed_at?: string; + fixed_in?: string; + ghsa_id: string; + id: number; + node_id: string; + number: number; + severity: string; + /** @enum {string} */ + state: "open" | "dismissed" | "fixed"; + } & { + affected_package_name?: string; + affected_range?: string; + created_at?: string; + dismiss_comment?: string | null; + dismiss_reason: string; + dismissed_at: string; + /** User */ + dismisser: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + external_identifier?: string; + external_reference?: string | null; + fixed_in?: string; + ghsa_id?: string; + id?: number; + node_id?: string; + number?: number; + severity?: string; + /** @enum {string} */ + state: "dismissed"; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_vulnerability_alert reopen event */ + "webhook-repository-vulnerability-alert-reopen": { + /** @enum {string} */ + action: "reopen"; + alert: { + affected_package_name: string; + affected_range: string; + created_at: string; + dismiss_reason?: string; + dismissed_at?: string; + /** User */ + dismisser?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + external_identifier: string; + /** Format: uri */ + external_reference: string | null; + fix_reason?: string; + /** Format: date-time */ + fixed_at?: string; + fixed_in?: string; + ghsa_id: string; + id: number; + node_id: string; + number: number; + severity: string; + /** @enum {string} */ + state: "open" | "dismissed" | "fixed"; + } & { + affected_package_name?: string; + affected_range?: string; + created_at?: string; + external_identifier?: string; + external_reference?: string | null; + fixed_in?: string; + ghsa_id?: string; + id?: number; + node_id?: string; + number?: number; + severity?: string; + /** @enum {string} */ + state: "open"; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** repository_vulnerability_alert resolve event */ + "webhook-repository-vulnerability-alert-resolve": { + /** @enum {string} */ + action: "resolve"; + alert: { + affected_package_name: string; + affected_range: string; + created_at: string; + dismiss_reason?: string; + dismissed_at?: string; + /** User */ + dismisser?: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + external_identifier: string; + /** Format: uri */ + external_reference: string | null; + fix_reason?: string; + /** Format: date-time */ + fixed_at?: string; + fixed_in?: string; + ghsa_id: string; + id: number; + node_id: string; + number: number; + severity: string; + /** @enum {string} */ + state: "open" | "dismissed" | "fixed"; + } & { + affected_package_name?: string; + affected_range?: string; + created_at?: string; + external_identifier?: string; + external_reference?: string | null; + fix_reason?: string; + /** Format: date-time */ + fixed_at?: string; + fixed_in?: string; + ghsa_id?: string; + id?: number; + node_id?: string; + number?: number; + severity?: string; + /** @enum {string} */ + state: "fixed" | "open"; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** secret_scanning_alert created event */ + "webhook-secret-scanning-alert-created": { + /** @enum {string} */ + action: "created"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** Secret Scanning Alert Location Created Event */ + "webhook-secret-scanning-alert-location-created": { + /** @enum {string} */ + action?: "created"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + installation?: components["schemas"]["simple-installation"]; + location: components["schemas"]["secret-scanning-location"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** Secret Scanning Alert Location Created Event */ + "webhook-secret-scanning-alert-location-created-form-encoded": { + /** @description A URL-encoded string of the secret_scanning_alert_location.created JSON payload. The decoded payload is a JSON object. */ + payload: string; + }; + /** secret_scanning_alert reopened event */ + "webhook-secret-scanning-alert-reopened": { + /** @enum {string} */ + action: "reopened"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** secret_scanning_alert resolved event */ + "webhook-secret-scanning-alert-resolved": { + /** @enum {string} */ + action: "resolved"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** secret_scanning_alert revoked event */ + "webhook-secret-scanning-alert-revoked": { + /** @enum {string} */ + action: "revoked"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** secret_scanning_alert validated event */ + "webhook-secret-scanning-alert-validated": { + /** @enum {string} */ + action: "validated"; + alert: components["schemas"]["secret-scanning-alert-webhook"]; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** security_advisory published event */ + "webhook-security-advisory-published": { + /** @enum {string} */ + action: "published"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + /** @description The details of the security advisory, including summary, description, and severity. */ + security_advisory: { + cvss: { + score: number; + vector_string: string | null; + }; + cwes: { + cwe_id: string; + name: string; + }[]; + description: string; + ghsa_id: string; + identifiers: { + type: string; + value: string; + }[]; + published_at: string; + references: { + /** Format: uri */ + url: string; + }[]; + severity: string; + summary: string; + updated_at: string; + vulnerabilities: { + first_patched_version: { + identifier: string; + } | null; + package: { + ecosystem: string; + name: string; + }; + severity: string; + vulnerable_version_range: string; + }[]; + withdrawn_at: string | null; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** security_advisory updated event */ + "webhook-security-advisory-updated": { + /** @enum {string} */ + action: "updated"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + /** @description The details of the security advisory, including summary, description, and severity. */ + security_advisory: { + cvss: { + score: number; + vector_string: string | null; + }; + cwes: { + cwe_id: string; + name: string; + }[]; + description: string; + ghsa_id: string; + identifiers: { + type: string; + value: string; + }[]; + published_at: string; + references: { + /** Format: uri */ + url: string; + }[]; + severity: string; + summary: string; + updated_at: string; + vulnerabilities: { + first_patched_version: { + identifier: string; + } | null; + package: { + ecosystem: string; + name: string; + }; + severity: string; + vulnerable_version_range: string; + }[]; + withdrawn_at: string | null; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** security_advisory withdrawn event */ + "webhook-security-advisory-withdrawn": { + /** @enum {string} */ + action: "withdrawn"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + /** @description The details of the security advisory, including summary, description, and severity. */ + security_advisory: { + cvss: { + score: number; + vector_string: string | null; + }; + cwes: { + cwe_id: string; + name: string; + }[]; + description: string; + ghsa_id: string; + identifiers: { + type: string; + value: string; + }[]; + published_at: string; + references: { + /** Format: uri */ + url: string; + }[]; + severity: string; + summary: string; + updated_at: string; + vulnerabilities: { + first_patched_version: { + identifier: string; + } | null; + package: { + ecosystem: string; + name: string; + }; + severity: string; + vulnerable_version_range: string; + }[]; + withdrawn_at: string; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** security_and_analysis event */ + "webhook-security-and-analysis": { + changes: { + from?: { + security_and_analysis?: components["schemas"]["security-and-analysis"]; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["full-repository"]; + sender?: components["schemas"]["simple-user-webhooks"]; + }; + /** sponsorship cancelled event */ + "webhook-sponsorship-cancelled": { + /** @enum {string} */ + action: "cancelled"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: { + created_at: string; + maintainer?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + node_id: string; + privacy_level: string; + /** User */ + sponsor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** User */ + sponsorable: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + tier: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** sponsorship created event */ + "webhook-sponsorship-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: { + created_at: string; + maintainer?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + node_id: string; + privacy_level: string; + /** User */ + sponsor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** User */ + sponsorable: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + tier: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** sponsorship edited event */ + "webhook-sponsorship-edited": { + /** @enum {string} */ + action: "edited"; + changes: { + privacy_level?: { + /** @description The `edited` event types include the details about the change when someone edits a sponsorship to change the privacy. */ + from: string; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: { + created_at: string; + maintainer?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + node_id: string; + privacy_level: string; + /** User */ + sponsor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** User */ + sponsorable: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + tier: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** sponsorship pending_cancellation event */ + "webhook-sponsorship-pending-cancellation": { + /** @enum {string} */ + action: "pending_cancellation"; + /** @description The `pending_cancellation` and `pending_tier_change` event types will include the date the cancellation or tier change will take effect. */ + effective_date?: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: { + created_at: string; + maintainer?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + node_id: string; + privacy_level: string; + /** User */ + sponsor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** User */ + sponsorable: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + tier: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** sponsorship pending_tier_change event */ + "webhook-sponsorship-pending-tier-change": { + /** @enum {string} */ + action: "pending_tier_change"; + changes: { + tier: { + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + from: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** @description The `pending_cancellation` and `pending_tier_change` event types will include the date the cancellation or tier change will take effect. */ + effective_date?: string; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: { + created_at: string; + maintainer?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + node_id: string; + privacy_level: string; + /** User */ + sponsor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** User */ + sponsorable: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + tier: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** sponsorship tier_changed event */ + "webhook-sponsorship-tier-changed": { + /** @enum {string} */ + action: "tier_changed"; + changes: { + tier: { + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + from: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository?: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + sponsorship: { + created_at: string; + maintainer?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + node_id: string; + privacy_level: string; + /** User */ + sponsor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** User */ + sponsorable: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** + * Sponsorship Tier + * @description The `tier_changed` and `pending_tier_change` will include the original tier before the change or pending change. For more information, see the pending tier change payload. + */ + tier: { + created_at: string; + description: string; + is_custom_ammount?: boolean; + is_custom_amount?: boolean; + is_one_time: boolean; + monthly_price_in_cents: number; + monthly_price_in_dollars: number; + name: string; + node_id: string; + }; + }; + }; + /** star created event */ + "webhook-star-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** @description The time the star was created. This is a timestamp in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. Will be `null` for the `deleted` action. */ + starred_at: string | null; + }; + /** star deleted event */ + "webhook-star-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** @description The time the star was created. This is a timestamp in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. Will be `null` for the `deleted` action. */ + starred_at: unknown; + }; + /** status event */ + "webhook-status": { + /** Format: uri */ + avatar_url?: string | null; + /** @description An array of branch objects containing the status' SHA. Each branch contains the given SHA, but the SHA may or may not be the head of the branch. The array includes a maximum of 10 branches. */ + branches: { + commit: { + sha: string | null; + /** Format: uri */ + url: string | null; + }; + name: string; + protected: boolean; + }[]; + commit: { + /** User */ + author: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id?: number; + login?: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + comments_url: string; + commit: { + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + } & { + date: string; + email?: string; + name?: string; + }; + comment_count: number; + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + } & { + date: string; + email?: string; + name?: string; + }; + message: string; + tree: { + sha: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + url: string; + verification: { + payload: string | null; + /** @enum {string} */ + reason: + | "expired_key" + | "not_signing_key" + | "gpgverify_error" + | "gpgverify_unavailable" + | "unsigned" + | "unknown_signature_type" + | "no_user" + | "unverified_email" + | "bad_email" + | "unknown_key" + | "malformed_signature" + | "invalid" + | "valid" + | "bad_cert" + | "ocsp_pending"; + signature: string | null; + verified: boolean; + }; + }; + /** User */ + committer: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id?: number; + login?: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + html_url: string; + node_id: string; + parents: { + /** Format: uri */ + html_url: string; + sha: string; + /** Format: uri */ + url: string; + }[]; + sha: string; + /** Format: uri */ + url: string; + }; + context: string; + created_at: string; + /** @description The optional human-readable description added to the status. */ + description: string | null; + enterprise?: components["schemas"]["enterprise-webhooks"]; + /** @description The unique identifier of the status. */ + id: number; + installation?: components["schemas"]["simple-installation"]; + name: string; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** @description The Commit SHA. */ + sha: string; + /** + * @description The new state. Can be `pending`, `success`, `failure`, or `error`. + * @enum {string} + */ + state: "pending" | "success" | "failure" | "error"; + /** @description The optional link added to the status. */ + target_url: string | null; + updated_at: string; + }; + /** team_add event */ + "webhook-team-add": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** team added_to_repository event */ + "webhook-team-added-to-repository": { + /** @enum {string} */ + action: "added_to_repository"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** team created event */ + "webhook-team-created": { + /** @enum {string} */ + action: "created"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender: components["schemas"]["simple-user-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** team deleted event */ + "webhook-team-deleted": { + /** @enum {string} */ + action: "deleted"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender?: components["schemas"]["simple-user-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** team edited event */ + "webhook-team-edited": { + /** @enum {string} */ + action: "edited"; + /** @description The changes to the team if the action was `edited`. */ + changes: { + description?: { + /** @description The previous version of the description if the action was `edited`. */ + from: string; + }; + name?: { + /** @description The previous version of the name if the action was `edited`. */ + from: string; + }; + privacy?: { + /** @description The previous version of the team's privacy if the action was `edited`. */ + from: string; + }; + notification_setting?: { + /** @description The previous version of the team's notification setting if the action was `edited`. */ + from: string; + }; + repository?: { + permissions: { + from: { + /** @description The previous version of the team member's `admin` permission on a repository, if the action was `edited`. */ + admin?: boolean; + /** @description The previous version of the team member's `pull` permission on a repository, if the action was `edited`. */ + pull?: boolean; + /** @description The previous version of the team member's `push` permission on a repository, if the action was `edited`. */ + push?: boolean; + }; + }; + }; + }; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender: components["schemas"]["simple-user-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** team removed_from_repository event */ + "webhook-team-removed-from-repository": { + /** @enum {string} */ + action: "removed_from_repository"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization: components["schemas"]["organization-simple-webhooks"]; + /** + * Repository + * @description A git repository + */ + repository?: { + /** + * @description Whether to allow auto-merge for pull requests. + * @default false + */ + allow_auto_merge?: boolean; + /** @description Whether to allow private forks */ + allow_forking?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + */ + allow_squash_merge?: boolean; + allow_update_branch?: boolean; + /** Format: uri-template */ + archive_url: string; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri */ + clone_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + created_at: number | string; + /** @description The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + /** @description The default branch of the repository. */ + default_branch: string; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + */ + delete_branch_on_merge?: boolean; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** @description Returns whether or not this repository is disabled. */ + disabled?: boolean; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + forks: number; + forks_count: number; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + git_url: string; + /** + * @description Whether downloads are enabled. + * @default true + */ + has_downloads: boolean; + /** + * @description Whether issues are enabled. + * @default true + */ + has_issues: boolean; + has_pages: boolean; + /** + * @description Whether projects are enabled. + * @default true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + */ + has_wiki: boolean; + homepage: string | null; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + is_template?: boolean; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + language: string | null; + /** Format: uri */ + languages_url: string; + /** License */ + license: { + key: string; + name: string; + node_id: string; + spdx_id: string; + /** Format: uri */ + url: string | null; + } | null; + master_branch?: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** Format: uri */ + mirror_url: string | null; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + open_issues: number; + open_issues_count: number; + organization?: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + permissions?: { + admin: boolean; + maintain?: boolean; + pull: boolean; + push: boolean; + triage?: boolean; + }; + /** @description Whether the repository is private or public. */ + private: boolean; + public?: boolean; + /** Format: uri-template */ + pulls_url: string; + pushed_at: number | string | null; + /** Format: uri-template */ + releases_url: string; + role_name?: string | null; + size: number; + ssh_url: string; + stargazers?: number; + stargazers_count: number; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + svn_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + topics: string[]; + /** Format: uri-template */ + trees_url: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + /** @enum {string} */ + visibility: "public" | "private" | "internal"; + watchers: number; + watchers_count: number; + }; + sender: components["schemas"]["simple-user-webhooks"]; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + deleted?: boolean; + /** @description Description of the team */ + description?: string | null; + /** Format: uri */ + html_url?: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url?: string; + /** @description Name of the team */ + name: string; + node_id?: string; + parent?: { + /** @description Description of the team */ + description: string | null; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the team */ + id: number; + /** Format: uri-template */ + members_url: string; + /** @description Name of the team */ + name: string; + node_id: string; + /** @description Permission that the team will have for its repositories */ + permission: string; + /** @enum {string} */ + privacy: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url: string; + slug: string; + /** + * Format: uri + * @description URL for the team + */ + url: string; + } | null; + /** @description Permission that the team will have for its repositories */ + permission?: string; + /** @enum {string} */ + privacy?: "open" | "closed" | "secret"; + /** + * @description Whether team members will receive notifications when their team is @mentioned + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** Format: uri */ + repositories_url?: string; + slug?: string; + /** + * Format: uri + * @description URL for the team + */ + url?: string; + }; + }; + /** watch started event */ + "webhook-watch-started": { + /** @enum {string} */ + action: "started"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + }; + /** workflow_dispatch event */ + "webhook-workflow-dispatch": { + enterprise?: components["schemas"]["enterprise-webhooks"]; + inputs: { + [key: string]: unknown; + } | null; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + ref: string; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow: string; + }; + /** workflow_job completed event */ + "webhook-workflow-job-completed": { + /** @enum {string} */ + action: "completed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow_job: { + /** Format: uri */ + check_run_url: string; + completed_at: string | null; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | null + | "skipped" + | "cancelled" + | "action_required" + | "neutral" + | "timed_out"; + /** @description The time that the job created. */ + created_at: string; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** @description Custom labels for the job. Specified by the [`"runs-on"` attribute](https://docs.github.com/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) in the workflow YAML. */ + labels: string[]; + name: string; + node_id: string; + run_attempt: number; + run_id: number; + /** Format: uri */ + run_url: string; + /** @description The ID of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_group_id: number | null; + /** @description The name of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_group_name: string | null; + /** @description The ID of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_id: number | null; + /** @description The name of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_name: string | null; + started_at: string; + /** + * @description The current status of the job. Can be `queued`, `in_progress`, `waiting`, or `completed`. + * @enum {string} + */ + status: "queued" | "in_progress" | "completed" | "waiting"; + /** @description The name of the current branch. */ + head_branch: string | null; + /** @description The name of the workflow. */ + workflow_name: string | null; + steps: { + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "failure" | "skipped" | "success" | "cancelled" | null; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: "in_progress" | "completed" | "queued"; + }[]; + /** Format: uri */ + url: string; + } & { + check_run_url?: string; + completed_at?: string; + /** @enum {string} */ + conclusion: + | "success" + | "failure" + | "skipped" + | "cancelled" + | "action_required" + | "neutral" + | "timed_out"; + /** @description The time that the job created. */ + created_at?: string; + head_sha?: string; + html_url?: string; + id?: number; + labels?: (string | null)[]; + name?: string; + node_id?: string; + run_attempt?: number; + run_id?: number; + run_url?: string; + runner_group_id?: number | null; + runner_group_name?: string | null; + runner_id?: number | null; + runner_name?: string | null; + started_at?: string; + status?: string; + /** @description The name of the current branch. */ + head_branch?: string | null; + /** @description The name of the workflow. */ + workflow_name?: string | null; + steps?: unknown[]; + url?: string; + }; + deployment?: components["schemas"]["deployment"]; + }; + /** workflow_job in_progress event */ + "webhook-workflow-job-in-progress": { + /** @enum {string} */ + action: "in_progress"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow_job: { + /** Format: uri */ + check_run_url: string; + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "success" | "failure" | null | "cancelled" | "neutral"; + /** @description The time that the job created. */ + created_at: string; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** @description Custom labels for the job. Specified by the [`"runs-on"` attribute](https://docs.github.com/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) in the workflow YAML. */ + labels: string[]; + name: string; + node_id: string; + run_attempt: number; + run_id: number; + /** Format: uri */ + run_url: string; + /** @description The ID of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_group_id: number | null; + /** @description The name of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_group_name: string | null; + /** @description The ID of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_id: number | null; + /** @description The name of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. */ + runner_name: string | null; + started_at: string; + /** + * @description The current status of the job. Can be `queued`, `in_progress`, or `completed`. + * @enum {string} + */ + status: "queued" | "in_progress" | "completed"; + /** @description The name of the current branch. */ + head_branch: string | null; + /** @description The name of the workflow. */ + workflow_name: string | null; + steps: { + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "failure" | "skipped" | "success" | null | "cancelled"; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: "in_progress" | "completed" | "queued" | "pending"; + }[]; + /** Format: uri */ + url: string; + } & { + check_run_url?: string; + completed_at?: string | null; + conclusion?: string | null; + /** @description The time that the job created. */ + created_at?: string; + head_sha?: string; + html_url?: string; + id?: number; + labels?: string[]; + name?: string; + node_id?: string; + run_attempt?: number; + run_id?: number; + run_url?: string; + runner_group_id?: number | null; + runner_group_name?: string | null; + runner_id?: number | null; + runner_name?: string | null; + started_at?: string; + /** @enum {string} */ + status: "in_progress" | "completed" | "queued"; + /** @description The name of the current branch. */ + head_branch?: string | null; + /** @description The name of the workflow. */ + workflow_name?: string | null; + steps: { + completed_at: string | null; + conclusion: string | null; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: "in_progress" | "completed" | "pending" | "queued"; + }[]; + url?: string; + }; + deployment?: components["schemas"]["deployment"]; + }; + /** workflow_job queued event */ + "webhook-workflow-job-queued": { + /** @enum {string} */ + action: "queued"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow_job: { + /** Format: uri */ + check_run_url: string; + completed_at: string | null; + conclusion: string | null; + /** @description The time that the job created. */ + created_at: string; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + labels: string[]; + name: string; + node_id: string; + run_attempt: number; + run_id: number; + /** Format: uri */ + run_url: string; + runner_group_id: number | null; + runner_group_name: string | null; + runner_id: number | null; + runner_name: string | null; + /** Format: date-time */ + started_at: string; + /** @enum {string} */ + status: "queued" | "in_progress" | "completed" | "waiting"; + /** @description The name of the current branch. */ + head_branch: string | null; + /** @description The name of the workflow. */ + workflow_name: string | null; + steps: { + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "failure" | "skipped" | "success" | "cancelled" | null; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: "completed" | "in_progress" | "queued" | "pending"; + }[]; + /** Format: uri */ + url: string; + }; + deployment?: components["schemas"]["deployment"]; + }; + /** workflow_job waiting event */ + "webhook-workflow-job-waiting": { + /** @enum {string} */ + action: "waiting"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + workflow_job: { + /** Format: uri */ + check_run_url: string; + completed_at: string | null; + conclusion: string | null; + /** @description The time that the job created. */ + created_at: string; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + labels: string[]; + name: string; + node_id: string; + run_attempt: number; + run_id: number; + /** Format: uri */ + run_url: string; + runner_group_id: number | null; + runner_group_name: string | null; + runner_id: number | null; + runner_name: string | null; + /** Format: date-time */ + started_at: string; + /** @description The name of the current branch. */ + head_branch: string | null; + /** @description The name of the workflow. */ + workflow_name: string | null; + /** @enum {string} */ + status: "queued" | "in_progress" | "completed" | "waiting"; + steps: { + completed_at: string | null; + /** @enum {string|null} */ + conclusion: "failure" | "skipped" | "success" | "cancelled" | null; + name: string; + number: number; + started_at: string | null; + /** @enum {string} */ + status: + | "completed" + | "in_progress" + | "queued" + | "pending" + | "waiting"; + }[]; + /** Format: uri */ + url: string; + }; + deployment?: components["schemas"]["deployment"]; + }; + /** workflow_run completed event */ + "webhook-workflow-run-completed": { + /** @enum {string} */ + action: "completed"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** Workflow */ + workflow: { + /** Format: uri */ + badge_url: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + node_id: string; + path: string; + state: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + artifacts_url: string; + /** Format: uri */ + cancel_url: string; + check_suite_id: number; + check_suite_node_id: string; + /** Format: uri */ + check_suite_url: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "skipped"; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** Repository Lite */ + head_repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + jobs_url: string; + /** Format: uri */ + logs_url: string; + name: string | null; + node_id: string; + path: string; + /** Format: uri */ + previous_attempt_url: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + /** Repository Lite */ + repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + rerun_url: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "pending" + | "waiting"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + /** Format: uri */ + workflow_url: string; + } & { + actor?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + artifacts_url?: string; + cancel_url?: string; + check_suite_id?: number; + check_suite_node_id?: string; + check_suite_url?: string; + /** @enum {string} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | "skipped"; + created_at?: string; + event?: string; + head_branch?: string | null; + head_commit?: { + author?: { + email?: string; + name?: string; + }; + committer?: { + email?: string; + name?: string; + }; + id?: string; + message?: string; + timestamp?: string; + tree_id?: string; + }; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha?: string; + html_url?: string; + id?: number; + jobs_url?: string; + logs_url?: string; + name?: string | null; + node_id?: string; + path?: string; + previous_attempt_url?: string | null; + pull_requests?: unknown[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt?: number; + run_number?: number; + run_started_at?: string; + status?: string; + triggering_actor?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + } | null; + updated_at?: string; + url?: string; + workflow_id?: number; + workflow_url?: string; + }; + }; + /** workflow_run in_progress event */ + "webhook-workflow-run-in-progress": { + /** @enum {string} */ + action: "in_progress"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** Workflow */ + workflow: { + /** Format: uri */ + badge_url: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + node_id: string; + path: string; + state: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + artifacts_url: string; + /** Format: uri */ + cancel_url: string; + check_suite_id: number; + check_suite_node_id: string; + /** Format: uri */ + check_suite_url: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | "skipped" + | null; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** Repository Lite */ + head_repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + jobs_url: string; + /** Format: uri */ + logs_url: string; + name: string | null; + node_id: string; + path: string; + /** Format: uri */ + previous_attempt_url: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + /** Repository Lite */ + repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + rerun_url: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "pending"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + /** Format: uri */ + workflow_url: string; + } & { + actor?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + artifacts_url?: string; + cancel_url?: string; + check_suite_id?: number; + check_suite_node_id?: string; + check_suite_url?: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "skipped" + | "stale" + | null; + created_at?: string; + event?: string; + head_branch?: string | null; + head_commit?: { + author?: { + email?: string; + name?: string; + }; + committer?: { + email?: string; + name?: string; + }; + id?: string; + message?: string; + timestamp?: string; + tree_id?: string; + }; + head_repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string | null; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + head_sha?: string; + html_url?: string; + id?: number; + jobs_url?: string; + logs_url?: string; + name?: string | null; + node_id?: string; + path?: string; + previous_attempt_url?: string | null; + pull_requests?: unknown[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + repository?: { + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + description?: string | null; + downloads_url?: string; + events_url?: string; + fork?: boolean; + forks_url?: string; + full_name?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + hooks_url?: string; + html_url?: string; + id?: number; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + name?: string; + node_id?: string; + notifications_url?: string; + owner?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + private?: boolean; + pulls_url?: string; + releases_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + url?: string; + }; + rerun_url?: string; + run_attempt?: number; + run_number?: number; + run_started_at?: string; + status?: string; + triggering_actor?: { + avatar_url?: string; + events_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + id?: number; + login?: string; + node_id?: string; + organizations_url?: string; + received_events_url?: string; + repos_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + url?: string; + }; + updated_at?: string; + url?: string; + workflow_id?: number; + workflow_url?: string; + }; + }; + /** workflow_run requested event */ + "webhook-workflow-run-requested": { + /** @enum {string} */ + action: "requested"; + enterprise?: components["schemas"]["enterprise-webhooks"]; + installation?: components["schemas"]["simple-installation"]; + organization?: components["schemas"]["organization-simple-webhooks"]; + repository: components["schemas"]["repository-webhooks"]; + sender: components["schemas"]["simple-user-webhooks"]; + /** Workflow */ + workflow: { + /** Format: uri */ + badge_url: string; + /** Format: date-time */ + created_at: string; + /** Format: uri */ + html_url: string; + id: number; + name: string; + node_id: string; + path: string; + state: string; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + } | null; + /** Workflow Run */ + workflow_run: { + /** User */ + actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: uri */ + artifacts_url: string; + /** Format: uri */ + cancel_url: string; + check_suite_id: number; + check_suite_node_id: string; + /** Format: uri */ + check_suite_url: string; + /** @enum {string|null} */ + conclusion: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required" + | "stale" + | null + | "skipped" + | "startup_failure"; + /** Format: date-time */ + created_at: string; + event: string; + head_branch: string | null; + /** SimpleCommit */ + head_commit: { + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + author: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + /** + * Committer + * @description Metaproperties for Git author/committer information. + */ + committer: { + /** Format: date-time */ + date?: string; + /** Format: email */ + email: string | null; + /** @description The git author's name. */ + name: string; + username?: string; + }; + id: string; + message: string; + timestamp: string; + tree_id: string; + }; + /** Repository Lite */ + head_repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + head_sha: string; + /** Format: uri */ + html_url: string; + id: number; + /** Format: uri */ + jobs_url: string; + /** Format: uri */ + logs_url: string; + name: string | null; + node_id: string; + path: string; + /** Format: uri */ + previous_attempt_url: string | null; + pull_requests: { + base: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + head: { + ref: string; + /** Repo Ref */ + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + sha: string; + }; + id: number; + number: number; + /** Format: uri */ + url: string; + }[]; + referenced_workflows?: + | { + path: string; + ref?: string; + sha: string; + }[] + | null; + /** Repository Lite */ + repository: { + /** Format: uri-template */ + archive_url: string; + /** Format: uri-template */ + assignees_url: string; + /** Format: uri-template */ + blobs_url: string; + /** Format: uri-template */ + branches_url: string; + /** Format: uri-template */ + collaborators_url: string; + /** Format: uri-template */ + comments_url: string; + /** Format: uri-template */ + commits_url: string; + /** Format: uri-template */ + compare_url: string; + /** Format: uri-template */ + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + /** Format: uri-template */ + git_commits_url: string; + /** Format: uri-template */ + git_refs_url: string; + /** Format: uri-template */ + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + /** @description Unique identifier of the repository */ + id: number; + /** Format: uri-template */ + issue_comment_url: string; + /** Format: uri-template */ + issue_events_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + /** Format: uri-template */ + milestones_url: string; + /** @description The name of the repository. */ + name: string; + node_id: string; + /** Format: uri-template */ + notifications_url: string; + /** User */ + owner: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** @description Whether the repository is private or public. */ + private: boolean; + /** Format: uri-template */ + pulls_url: string; + /** Format: uri-template */ + releases_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri-template */ + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri-template */ + trees_url: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + rerun_url: string; + run_attempt: number; + run_number: number; + /** Format: date-time */ + run_started_at: string; + /** @enum {string} */ + status: + | "requested" + | "in_progress" + | "completed" + | "queued" + | "pending" + | "waiting"; + /** User */ + triggering_actor: { + /** Format: uri */ + avatar_url?: string; + deleted?: boolean; + email?: string | null; + /** Format: uri-template */ + events_url?: string; + /** Format: uri */ + followers_url?: string; + /** Format: uri-template */ + following_url?: string; + /** Format: uri-template */ + gists_url?: string; + gravatar_id?: string; + /** Format: uri */ + html_url?: string; + id: number; + login: string; + name?: string; + node_id?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + received_events_url?: string; + /** Format: uri */ + repos_url?: string; + site_admin?: boolean; + /** Format: uri-template */ + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** @enum {string} */ + type?: "Bot" | "User" | "Organization"; + /** Format: uri */ + url?: string; + } | null; + /** Format: date-time */ + updated_at: string; + /** Format: uri */ + url: string; + workflow_id: number; + /** Format: uri */ + workflow_url: string; + display_title: string; + }; + }; + }; + responses: { + /** @description Validation failed, or the endpoint has been spammed. */ + validation_failed_simple: { + content: { + "application/json": components["schemas"]["validation-error-simple"]; + }; + }; + /** @description Resource not found */ + not_found: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Bad Request */ + bad_request: { + content: { + "application/json": components["schemas"]["basic-error"]; + "application/scim+json": components["schemas"]["scim-error"]; + }; + }; + /** @description Validation failed, or the endpoint has been spammed. */ + validation_failed: { + content: { + "application/json": components["schemas"]["validation-error"]; + }; + }; + /** @description Accepted */ + accepted: { + content: { + "application/json": Record; + }; + }; + /** @description Not modified */ + not_modified: { + content: never; + }; + /** @description Requires authentication */ + requires_authentication: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Forbidden */ + forbidden: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Service unavailable */ + service_unavailable: { + content: { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + }; + }; + }; + /** @description Forbidden Gist */ + forbidden_gist: { + content: { + "application/json": { + block?: { + reason?: string; + created_at?: string; + html_url?: string | null; + }; + message?: string; + documentation_url?: string; + }; + }; + }; + /** @description Moved permanently */ + moved_permanently: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Conflict */ + conflict: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Response */ + actions_runner_jitconfig: { + content: { + "application/json": { + runner: components["schemas"]["runner"]; + /** @description The base64 encoded runner configuration. */ + encoded_jit_config: string; + }; + }; + }; + /** @description Response */ + actions_runner_labels: { + content: { + "application/json": { + total_count: number; + labels: components["schemas"]["runner-label"][]; + }; + }; + }; + /** @description Response */ + actions_runner_labels_readonly: { + content: { + "application/json": { + total_count: number; + labels: components["schemas"]["runner-label"][]; + }; + }; + }; + /** @description Internal Error */ + internal_error: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description The value of `per_page` multiplied by `page` cannot be greater than 10000. */ + package_es_list_error: { + content: never; + }; + /** @description A header with no content is returned. */ + no_content: { + content: never; + }; + /** @description Gone */ + gone: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Temporary Redirect */ + temporary_redirect: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Response if GitHub Advanced Security is not enabled for this repository */ + code_scanning_forbidden_read: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Response if the repository is archived or if GitHub Advanced Security is not enabled for this repository */ + code_scanning_forbidden_write: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Found */ + found: { + content: never; + }; + /** @description Response if there is already a validation run in progress with a different default setup configuration */ + code_scanning_conflict: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Response if GitHub Advanced Security is not enabled for this repository */ + dependency_review_forbidden: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** @description Unavailable due to service under maintenance. */ + porter_maintenance: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + parameters: { + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results before this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + "pagination-before"?: string; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for results after this cursor. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + "pagination-after"?: string; + /** @description The direction to sort the results by. */ + direction?: "asc" | "desc"; + /** @description The GHSA (GitHub Security Advisory) identifier of the advisory. */ + ghsa_id: string; + /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + "per-page"?: number; + /** @description Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors. */ + cursor?: string; + "delivery-id": number; + /** @description The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + page?: number; + /** @description Only show results that were last updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: string; + /** @description The unique identifier of the installation. */ + "installation-id": number; + /** @description The client ID of the GitHub app. */ + "client-id": string; + "app-slug": string; + /** @description The unique identifier of the classroom assignment. */ + "assignment-id": number; + /** @description The unique identifier of the classroom. */ + "classroom-id": number; + /** @description The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: string; + /** + * @description A comma-separated list of states. If specified, only alerts with these states will be returned. + * + * Can be: `auto_dismissed`, `dismissed`, `fixed`, `open` + */ + "dependabot-alert-comma-separated-states"?: string; + /** + * @description A comma-separated list of severities. If specified, only alerts with these severities will be returned. + * + * Can be: `low`, `medium`, `high`, `critical` + */ + "dependabot-alert-comma-separated-severities"?: string; + /** + * @description A comma-separated list of ecosystems. If specified, only alerts for these ecosystems will be returned. + * + * Can be: `composer`, `go`, `maven`, `npm`, `nuget`, `pip`, `pub`, `rubygems`, `rust` + */ + "dependabot-alert-comma-separated-ecosystems"?: string; + /** @description A comma-separated list of package names. If specified, only alerts for these packages will be returned. */ + "dependabot-alert-comma-separated-packages"?: string; + /** @description The scope of the vulnerable dependency. If specified, only alerts with this scope will be returned. */ + "dependabot-alert-scope"?: "development" | "runtime"; + /** + * @description The property by which to sort the results. + * `created` means when the alert was created. + * `updated` means when the alert's state last changed. + */ + "dependabot-alert-sort"?: "created" | "updated"; + /** + * @description **Deprecated**. The number of results per page (max 100), starting from the first matching result. + * This parameter must not be used in combination with `last`. + * Instead, use `per_page` in combination with `after` to fetch the first page of results. + */ + "pagination-first"?: number; + /** + * @description **Deprecated**. The number of results per page (max 100), starting from the last matching result. + * This parameter must not be used in combination with `first`. + * Instead, use `per_page` in combination with `before` to fetch the last page of results. + */ + "pagination-last"?: number; + /** @description Set to `open` or `resolved` to only list secret scanning alerts in a specific state. */ + "secret-scanning-alert-state"?: "open" | "resolved"; + /** + * @description A comma-separated list of secret types to return. By default all secret types are returned. + * See "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)" + * for a complete list of secret types. + */ + "secret-scanning-alert-secret-type"?: string; + /** @description A comma-separated list of resolutions. Only secret scanning alerts with one of these resolutions are listed. Valid resolutions are `false_positive`, `wont_fix`, `revoked`, `pattern_edited`, `pattern_deleted` or `used_in_tests`. */ + "secret-scanning-alert-resolution"?: string; + /** @description The property to sort the results by. `created` means when the alert was created. `updated` means when the alert was updated or resolved. */ + "secret-scanning-alert-sort"?: "created" | "updated"; + /** @description A comma-separated list of validities that, when present, will return alerts that match the validities in this list. Valid options are `active`, `inactive`, and `unknown`. */ + "secret-scanning-alert-validity"?: string; + /** @description The unique identifier of the gist. */ + "gist-id": string; + /** @description The unique identifier of the comment. */ + "comment-id": number; + /** @description A list of comma separated label names. Example: `bug,ui,@high` */ + labels?: string; + /** @description account_id parameter */ + "account-id": number; + /** @description The unique identifier of the plan. */ + "plan-id": number; + /** @description The property to sort the results by. */ + sort?: "created" | "updated"; + /** @description The account owner of the repository. The name is not case sensitive. */ + owner: string; + /** @description The name of the repository without the `.git` extension. The name is not case sensitive. */ + repo: string; + /** @description If `true`, show notifications marked as read. */ + all?: boolean; + /** @description If `true`, only shows notifications in which the user is directly participating or mentioned. */ + participating?: boolean; + /** @description Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + before?: string; + /** @description The unique identifier of the notification thread. This corresponds to the value returned in the `id` field when you retrieve notifications (for example with the [`GET /notifications` operation](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user)). */ + "thread-id": number; + /** @description An organization ID. Only return organizations with an ID greater than this ID. */ + "since-org"?: number; + /** @description The organization name. The name is not case sensitive. */ + org: string; + /** @description The unique identifier of the repository. */ + "repository-id": number; + /** @description Unique identifier of the self-hosted runner. */ + "runner-id": number; + /** @description The name of a self-hosted runner's custom label. */ + "runner-label-name": string; + /** @description The name of the secret. */ + "secret-name": string; + /** @description The number of results per page (max 30). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + "variables-per-page"?: number; + /** @description The name of the variable. */ + "variable-name": string; + /** @description The handle for the GitHub user account. */ + username: string; + /** @description The name of a code scanning tool. Only results by this tool will be listed. You can specify the tool by using either `tool_name` or `tool_guid`, but not both. */ + "tool-name"?: components["schemas"]["code-scanning-analysis-tool-name"]; + /** @description The GUID of a code scanning tool. Only results by this tool will be listed. Note that some code scanning tools may not include a GUID in their analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, but not both. */ + "tool-guid"?: components["schemas"]["code-scanning-analysis-tool-guid"]; + /** @description The unique identifier of the hook. You can find this value in the `X-GitHub-Hook-ID` header of a webhook delivery. */ + "hook-id": number; + /** @description The unique identifier of the invitation. */ + "invitation-id": number; + /** @description The name of the codespace. */ + "codespace-name": string; + /** @description The unique identifier of the migration. */ + "migration-id": number; + /** @description repo_name parameter */ + "repo-name": string; + /** @description The slug of the team name. */ + "team-slug": string; + /** @description The unique identifier of the role. */ + "role-id": number; + /** + * @description The selected visibility of the packages. This parameter is optional and only filters an existing result set. + * + * The `internal` visibility is only supported for GitHub Packages registries that allow for granular permissions. For other ecosystems `internal` is synonymous with `private`. + * For the list of GitHub Packages registries that support granular permissions, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + */ + "package-visibility"?: "public" | "private" | "internal"; + /** @description The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + "package-type": + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** @description The name of the package. */ + "package-name": string; + /** @description Unique identifier of the package version. */ + "package-version-id": number; + /** @description The property by which to sort the results. */ + "personal-access-token-sort"?: "created_at"; + /** @description A list of owner usernames to use to filter the results. */ + "personal-access-token-owner"?: string[]; + /** @description The name of the repository to use to filter the results. */ + "personal-access-token-repository"?: string; + /** @description The permission to use to filter the results. */ + "personal-access-token-permission"?: string; + /** @description Only show fine-grained personal access tokens used before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + "personal-access-token-before"?: string; + /** @description Only show fine-grained personal access tokens used after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + "personal-access-token-after"?: string; + /** @description The unique identifier of the fine-grained personal access token. */ + "fine-grained-personal-access-token-id": number; + /** @description The custom property name. The name is case sensitive. */ + "custom-property-name": string; + /** @description The name of the repository to filter on. When specified, only rule evaluations from this repository will be returned. */ + "repository-name-in-query"?: number; + /** + * @description The time period to filter by. + * + * For example, `day` will filter for rule suites that occurred in the past 24 hours, and `week` will filter for insights that occurred in the past 7 days (168 hours). + */ + "time-period"?: "hour" | "day" | "week" | "month"; + /** @description The handle for the GitHub user account to filter on. When specified, only rule evaluations triggered by this actor will be returned. */ + "actor-name-in-query"?: string; + /** @description The rule results to filter on. When specified, only suites with this result will be returned. */ + "rule-suite-result"?: "pass" | "fail" | "bypass" | "all"; + /** + * @description The unique identifier of the rule suite result. + * To get this ID, you can use [GET /repos/{owner}/{repo}/rulesets/rule-suites](https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites) + * for repositories and [GET /orgs/{org}/rulesets/rule-suites](https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites) + * for organizations. + */ + "rule-suite-id": number; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events before this cursor. To receive an initial cursor on your first request, include an empty "before" query string. */ + "secret-scanning-pagination-before-org-repo"?: string; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events after this cursor. To receive an initial cursor on your first request, include an empty "after" query string. */ + "secret-scanning-pagination-after-org-repo"?: string; + /** @description The number that identifies the discussion. */ + "discussion-number": number; + /** @description The number that identifies the comment. */ + "comment-number": number; + /** @description The unique identifier of the reaction. */ + "reaction-id": number; + /** @description The unique identifier of the project. */ + "project-id": number; + /** @description The security feature to enable or disable. */ + "security-product": + | "dependency_graph" + | "dependabot_alerts" + | "dependabot_security_updates" + | "advanced_security" + | "code_scanning_default_setup" + | "secret_scanning" + | "secret_scanning_push_protection"; + /** + * @description The action to take. + * + * `enable_all` means to enable the specified security feature for all repositories in the organization. + * `disable_all` means to disable the specified security feature for all repositories in the organization. + */ + "org-security-product-enablement": "enable_all" | "disable_all"; + /** @description The unique identifier of the card. */ + "card-id": number; + /** @description The unique identifier of the column. */ + "column-id": number; + /** @description The name field of an artifact. When specified, only artifacts with this name will be returned. */ + "artifact-name"?: string; + /** @description The unique identifier of the artifact. */ + "artifact-id": number; + /** @description The full Git reference for narrowing down the cache. The `ref` for a branch should be formatted as `refs/heads/`. To reference a pull request use `refs/pull//merge`. */ + "actions-cache-git-ref-full"?: string; + /** @description An explicit key or prefix for identifying the cache */ + "actions-cache-key"?: string; + /** @description The property to sort the results by. `created_at` means when the cache was created. `last_accessed_at` means when the cache was last accessed. `size_in_bytes` is the size of the cache in bytes. */ + "actions-cache-list-sort"?: + | "created_at" + | "last_accessed_at" + | "size_in_bytes"; + /** @description A key for identifying the cache. */ + "actions-cache-key-required": string; + /** @description The unique identifier of the GitHub Actions cache. */ + "cache-id": number; + /** @description The unique identifier of the job. */ + "job-id": number; + /** @description Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. */ + actor?: string; + /** @description Returns workflow runs associated with a branch. Use the name of the branch of the `push`. */ + "workflow-run-branch"?: string; + /** @description Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://docs.github.com/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows)." */ + event?: string; + /** @description Returns workflow runs with the check run `status` or `conclusion` that you specify. For example, a conclusion can be `success` or a status can be `in_progress`. Only GitHub can set a status of `waiting` or `requested`. */ + "workflow-run-status"?: + | "completed" + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "skipped" + | "stale" + | "success" + | "timed_out" + | "in_progress" + | "queued" + | "requested" + | "waiting" + | "pending"; + /** @description Returns workflow runs created within the given date-time range. For more information on the syntax, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." */ + created?: string; + /** @description If `true` pull requests are omitted from the response (empty array). */ + "exclude-pull-requests"?: boolean; + /** @description Returns workflow runs with the `check_suite_id` that you specify. */ + "workflow-run-check-suite-id"?: number; + /** @description Only returns workflow runs that are associated with the specified `head_sha`. */ + "workflow-run-head-sha"?: string; + /** @description The unique identifier of the workflow run. */ + "run-id": number; + /** @description The attempt number of the workflow run. */ + "attempt-number": number; + /** @description The ID of the workflow. You can also pass the workflow file name as a string. */ + "workflow-id": number | string; + /** @description The unique identifier of the autolink. */ + "autolink-id": number; + /** @description The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql). */ + branch: string; + /** @description The unique identifier of the check run. */ + "check-run-id": number; + /** @description The unique identifier of the check suite. */ + "check-suite-id": number; + /** @description Returns check runs with the specified `name`. */ + "check-name"?: string; + /** @description Returns check runs with the specified `status`. */ + status?: "queued" | "in_progress" | "completed"; + /** @description The Git reference for the results you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. */ + "git-ref"?: components["schemas"]["code-scanning-ref"]; + /** @description The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. */ + "alert-number": components["schemas"]["alert-number"]; + /** @description The SHA of the commit. */ + "commit-sha": string; + /** @description The commit reference. Can be a commit SHA, branch name (`heads/BRANCH_NAME`), or tag name (`tags/TAG_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. */ + "commit-ref": string; + /** @description A comma-separated list of full manifest paths. If specified, only alerts for these manifests will be returned. */ + "dependabot-alert-comma-separated-manifests"?: string; + /** + * @description The number that identifies a Dependabot alert in its repository. + * You can find this at the end of the URL for a Dependabot alert within GitHub, + * or in `number` fields in the response from the + * `GET /repos/{owner}/{repo}/dependabot/alerts` operation. + */ + "dependabot-alert-number": components["schemas"]["alert-number"]; + /** @description The full path, relative to the repository root, of the dependency manifest file. */ + "manifest-path"?: string; + /** @description deployment_id parameter */ + "deployment-id": number; + /** @description The name of the environment. The name must be URL encoded. For example, any slashes in the name must be replaced with `%2F`. */ + "environment-name": string; + /** @description The unique identifier of the branch policy. */ + "branch-policy-id": number; + /** @description The unique identifier of the protection rule. */ + "protection-rule-id": number; + /** @description A user ID. Only return users with an ID greater than this ID. */ + "since-user"?: number; + /** @description The number that identifies the issue. */ + "issue-number": number; + /** @description The unique identifier of the key. */ + "key-id": number; + /** @description The number that identifies the milestone. */ + "milestone-number": number; + /** @description The ID of the Pages deployment. You can also give the commit SHA of the deployment. */ + "pages-deployment-id": number | string; + /** @description The number that identifies the pull request. */ + "pull-number": number; + /** @description The unique identifier of the review. */ + "review-id": number; + /** @description The unique identifier of the asset. */ + "asset-id": number; + /** @description The unique identifier of the release. */ + "release-id": number; + /** @description The name of the ref. Cannot contain wildcard characters. When specified, only rule evaluations triggered for this ref will be returned. */ + "ref-in-query"?: string; + /** @description The unique identifier of the tag protection. */ + "tag-protection-id": number; + /** @description The time frame to display results for. */ + per?: "day" | "week"; + /** @description A repository ID. Only return repositories with an ID greater than this ID. */ + "since-repo"?: number; + /** @description Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. */ + order?: "desc" | "asc"; + /** @description The unique identifier of the team. */ + "team-id": number; + /** @description ID of the Repository to filter on */ + "repository-id-in-query"?: number; + /** @description The ID of the export operation, or `latest`. Currently only `latest` is currently supported. */ + "export-id": string; + /** @description The unique identifier of the GPG key. */ + "gpg-key-id": number; + /** @description Only show repositories updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + "since-repo-date"?: string; + /** @description Only show repositories updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + "before-repo-date"?: string; + /** @description The unique identifier of the SSH signing key. */ + "ssh-signing-key-id": number; + /** @description The property to sort the results by. `created` means when the repository was starred. `updated` means when the repository was last pushed to. */ + "sort-starred"?: "created" | "updated"; + }; + requestBodies: never; + headers: { + /** @example ; rel="next", ; rel="last" */ + link: string; + /** @example text/html */ + "content-type": string; + /** @example 0.17.4 */ + "x-common-marker-version": string; + /** @example 5000 */ + "x-rate-limit-limit": number; + /** @example 4999 */ + "x-rate-limit-remaining": number; + /** @example 1590701888 */ + "x-rate-limit-reset": number; + /** @example https://pipelines.actions.githubusercontent.com/OhgS4QRKqmgx7bKC27GKU83jnQjyeqG8oIMTge8eqtheppcmw8/_apis/pipelines/1/runs/176/signedlogcontent?urlExpires=2020-01-24T18%3A10%3A31.5729946Z&urlSigningMethod=HMACV1&urlSignature=agG73JakPYkHrh06seAkvmH7rBR4Ji4c2%2B6a2ejYh3E%3D */ + location: string; + }; + pathItems: never; +} + +export type $defs = Record; + +export type external = Record; + +export interface operations { + /** + * GitHub API Root + * @description Get Hypermedia links to resources accessible in GitHub's REST API + */ + "meta/root": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["root"]; + }; + }; + }; + }; + /** + * List global security advisories + * @description Lists all global security advisories that match the specified parameters. If no other parameters are defined, the request will return only GitHub-reviewed advisories that are not malware. + * + * By default, all responses will exclude advisories for malware, because malware are not standard vulnerabilities. To list advisories for malware, you must include the `type` parameter in your request, with the value `malware`. For more information about the different types of security advisories, see "[About the GitHub Advisory database](https://docs.github.com/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database#about-types-of-security-advisories)." + */ + "security-advisories/list-global-advisories": { + parameters: { + query?: { + /** @description If specified, only advisories with this GHSA (GitHub Security Advisory) identifier will be returned. */ + ghsa_id?: string; + /** @description If specified, only advisories of this type will be returned. By default, a request with no other parameters defined will only return reviewed advisories that are not malware. */ + type?: "reviewed" | "malware" | "unreviewed"; + /** @description If specified, only advisories with this CVE (Common Vulnerabilities and Exposures) identifier will be returned. */ + cve_id?: string; + /** @description If specified, only advisories for these ecosystems will be returned. */ + ecosystem?: + | "actions" + | "composer" + | "erlang" + | "go" + | "maven" + | "npm" + | "nuget" + | "other" + | "pip" + | "pub" + | "rubygems" + | "rust"; + /** @description If specified, only advisories with these severities will be returned. */ + severity?: "unknown" | "low" | "medium" | "high" | "critical"; + /** + * @description If specified, only advisories with these Common Weakness Enumerations (CWEs) will be returned. + * + * Example: `cwes=79,284,22` or `cwes[]=79&cwes[]=284&cwes[]=22` + */ + cwes?: string | string[]; + /** @description Whether to only return advisories that have been withdrawn. */ + is_withdrawn?: boolean; + /** + * @description If specified, only return advisories that affect any of `package` or `package@version`. A maximum of 1000 packages can be specified. + * If the query parameter causes the URL to exceed the maximum URL length supported by your client, you must specify fewer packages. + * + * Example: `affects=package1,package2@1.0.0,package3@^2.0.0` or `affects[]=package1&affects[]=package2@1.0.0` + */ + affects?: string | string[]; + /** + * @description If specified, only return advisories that were published on a date or date range. + * + * For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." + */ + published?: string; + /** + * @description If specified, only return advisories that were updated on a date or date range. + * + * For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." + */ + updated?: string; + /** + * @description If specified, only show advisories that were updated or published on a date or date range. + * + * For more information on the syntax of the date range, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." + */ + modified?: string; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + direction?: components["parameters"]["direction"]; + /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + /** @description The property to sort the results by. */ + sort?: "updated" | "published"; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["global-advisory"][]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + /** @description Too many requests */ + 429: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Get a global security advisory + * @description Gets a global security advisory using its GitHub Security Advisory (GHSA) identifier. + */ + "security-advisories/get-global-advisory": { + parameters: { + path: { + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["global-advisory"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get the authenticated app + * @description Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/apps/apps#list-installations-for-the-authenticated-app)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-authenticated": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"]; + }; + }; + }; + }; + /** + * Create a GitHub App from a manifest + * @description Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. + */ + "apps/create-from-manifest": { + parameters: { + path: { + code: string; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["integration"] & { + client_id: string; + client_secret: string; + webhook_secret: string | null; + pem: string; + [key: string]: unknown; + }; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get a webhook configuration for an app + * @description Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-webhook-config-for-app": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * Update a webhook configuration for an app + * @description Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/update-webhook-config-for-app": { + requestBody: { + content: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * List deliveries for an app webhook + * @description Returns a list of webhook deliveries for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/list-webhook-deliveries": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + cursor?: components["parameters"]["cursor"]; + redelivery?: boolean; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery-item"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a delivery for an app webhook + * @description Returns a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-webhook-delivery": { + parameters: { + path: { + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery"]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Redeliver a delivery for an app webhook + * @description Redeliver a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/redeliver-webhook-delivery": { + parameters: { + path: { + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List installation requests for the authenticated app + * @description Lists all the pending installation requests for the authenticated GitHub App. + */ + "apps/list-installation-requests-for-authenticated-app": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description List of integration installation requests */ + 200: { + content: { + "application/json": components["schemas"]["integration-installation-request"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * List installations for the authenticated app + * @description You must use a [JWT](https://docs.github.com/enterprise-server@3.9/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * The permissions the installation has are included under the `permissions` key. + */ + "apps/list-installations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + since?: components["parameters"]["since"]; + outdated?: string; + }; + }; + responses: { + /** @description The permissions the installation has are included under the `permissions` key. */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + /** + * @description The ID of the installation. + * @example 1 + */ + id: number; + account: + | ({ + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + } & { + /** @description A short description of the enterprise. */ + description?: string | null; + /** + * Format: uri + * @example https://github.com/enterprises/octo-business + */ + html_url: string; + /** + * Format: uri + * @description The enterprise's website URL. + */ + website_url?: string | null; + /** + * @description Unique identifier of the enterprise + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the enterprise. + * @example Octo Business + */ + name: string; + /** + * @description The slug url identifier for the enterprise. + * @example octo-business + */ + slug: string; + /** + * Format: date-time + * @example 2019-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2019-01-26T19:14:43Z + */ + updated_at: string | null; + /** Format: uri */ + avatar_url: string; + }) + | null; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** + * Format: uri + * @example https://api.github.com/installations/1/access_tokens + */ + access_tokens_url: string; + /** + * Format: uri + * @example https://api.github.com/installation/repositories + */ + repositories_url: string; + /** + * Format: uri + * @example https://github.com/organizations/github/settings/installations/1 + */ + html_url: string; + /** @example 1 */ + app_id: number; + /** @description The ID of the user or organization this token is being scoped to. */ + target_id: number; + /** @example Organization */ + target_type: string; + /** + * App Permissions + * @description The permissions granted to the user access token. + * @example { + * "contents": "read", + * "issues": "read", + * "deployments": "write", + * "single_file": "read" + * } + */ + permissions: { + /** + * @description The level of permission to grant the access token for GitHub Actions workflows, workflow runs, and artifacts. + * @enum {string} + */ + actions?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository creation, deletion, settings, teams, and collaborators creation. + * @enum {string} + */ + administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token for checks on code. + * @enum {string} + */ + checks?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges. + * @enum {string} + */ + contents?: "read" | "write"; + /** + * @description The level of permission to grant the access token for deployments and deployment statuses. + * @enum {string} + */ + deployments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for managing repository environments. + * @enum {string} + */ + environments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for issues and related comments, assignees, labels, and milestones. + * @enum {string} + */ + issues?: "read" | "write"; + /** + * @description The level of permission to grant the access token to search repositories, list collaborators, and access repository metadata. + * @enum {string} + */ + metadata?: "read" | "write"; + /** + * @description The level of permission to grant the access token for packages published to GitHub Packages. + * @enum {string} + */ + packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to retrieve Pages statuses, configuration, and builds, as well as create new builds. + * @enum {string} + */ + pages?: "read" | "write"; + /** + * @description The level of permission to grant the access token for pull requests and related comments, assignees, labels, milestones, and merges. + * @enum {string} + */ + pull_requests?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for a repository. + * @enum {string} + */ + repository_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository projects, columns, and cards. + * @enum {string} + */ + repository_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token to view and manage secret scanning alerts. + * @enum {string} + */ + secret_scanning_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository secrets. + * @enum {string} + */ + secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage security events like code scanning alerts. + * @enum {string} + */ + security_events?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage just a single file. + * @enum {string} + */ + single_file?: "read" | "write"; + /** + * @description The level of permission to grant the access token for commit statuses. + * @enum {string} + */ + statuses?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage Dependabot alerts. + * @enum {string} + */ + vulnerability_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to update GitHub Actions workflow files. + * @enum {string} + */ + workflows?: "write"; + /** + * @description The level of permission to grant the access token for organization teams and members. + * @enum {string} + */ + members?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage access to an organization. + * @enum {string} + */ + organization_administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token for custom repository roles management. This property is in beta and is subject to change. + * @enum {string} + */ + organization_custom_roles?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage announcement banners for an organization. + * @enum {string} + */ + organization_announcement_banners?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for an organization. + * @enum {string} + */ + organization_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing and managing fine-grained personal access token requests to an organization. + * @enum {string} + */ + organization_personal_access_tokens?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing and managing fine-grained personal access tokens that have been approved by an organization. + * @enum {string} + */ + organization_personal_access_token_requests?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing an organization's plan. + * @enum {string} + */ + organization_plan?: "read"; + /** + * @description The level of permission to grant the access token to manage organization projects and projects beta (where available). + * @enum {string} + */ + organization_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token for organization packages published to GitHub Packages. + * @enum {string} + */ + organization_packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage organization secrets. + * @enum {string} + */ + organization_secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage GitHub Actions self-hosted runners available to an organization. + * @enum {string} + */ + organization_self_hosted_runners?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage users blocked by the organization. + * @enum {string} + */ + organization_user_blocking?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage team discussions and related comments. + * @enum {string} + */ + team_discussions?: "read" | "write"; + }; + events: string[]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** @example config.yaml */ + single_file_name: string | null; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + /** @example github-actions */ + app_slug: string; + /** + * Simple User + * @description A GitHub user. + */ + suspended_by: { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + } | null; + /** Format: date-time */ + suspended_at: string | null; + /** @example "test_13f1e99741e3e004@d7e1eb0bc0a1ba12.com" */ + contact_email?: string | null; + }[]; + }; + }; + }; + }; + /** + * Get an installation for the authenticated app + * @description Enables an authenticated GitHub App to find an installation's information using the installation id. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an installation for the authenticated app + * @description Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/rest/apps/apps#suspend-an-app-installation)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/delete-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create an installation access token for an app + * @description Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. + * + * Optionally, you can use the `repositories` or `repository_ids` body parameters to specify individual repositories that the installation access token can access. If you don't use `repositories` or `repository_ids` to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner. + * + * Optionally, use the `permissions` body parameter to specify the permissions that the installation access token should have. If `permissions` is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted. + * + * When using the repository or permission parameters to reduce the access of the token, the complexity of the token is increased due to both the number of permissions in the request and the number of repositories the token will have access to. If the complexity is too large, the token will fail to be issued. If this occurs, the error message will indicate the maximum number of repositories that should be requested. For the average application requesting 8 permissions, this limit is around 5000 repositories. With fewer permissions requested, more repositories are supported. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/create-installation-access-token": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description List of repository names that the token should have access to */ + repositories?: string[]; + /** + * @description List of repository IDs that the token should have access to + * @example [ + * 1 + * ] + */ + repository_ids?: number[]; + permissions?: components["schemas"]["app-permissions"]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["installation-token"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Suspend an app installation + * @description Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/suspend-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unsuspend an app installation + * @description Removes a GitHub App installation suspension. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/unsuspend-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an app authorization + * @description OAuth and GitHub application owners can revoke a grant for their application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * Deleting an application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + "apps/delete-authorization": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The OAuth access token used to authenticate to the GitHub API. */ + access_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Check a token + * @description OAuth applications and GitHub applications with OAuth authorizations can use this API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. + */ + "apps/check-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The access_token of the OAuth or GitHub application. */ + access_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an app token + * @description OAuth or GitHub application owners can revoke a single token for an OAuth application or a GitHub application with an OAuth authorization. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. + */ + "apps/delete-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The OAuth access token used to authenticate to the GitHub API. */ + access_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Reset a token + * @description OAuth applications and GitHub applications with OAuth authorizations can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + "apps/reset-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The access_token of the OAuth or GitHub application. */ + access_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a scoped access token + * @description Use a non-scoped user access token to create a repository-scoped and/or permission-scoped user access token. You can specify + * which repositories the token can access and which permissions are granted to the + * token. + * + * Invalid tokens will return `404 NOT FOUND`. + * + * You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) + * when accessing this endpoint, using the `client_id` and `client_secret` of the GitHub App + * as the username and password. + */ + "apps/scope-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The access token used to authenticate to the GitHub API. + * @example e72e16c7e42f292c6912e7710c838347ae178b4a + */ + access_token: string; + /** + * @description The name of the user or organization to scope the user access token to. **Required** unless `target_id` is specified. + * @example octocat + */ + target?: string; + /** + * @description The ID of the user or organization to scope the user access token to. **Required** unless `target` is specified. + * @example 1 + */ + target_id?: number; + /** @description The list of repository names to scope the user access token to. `repositories` may not be specified if `repository_ids` is specified. */ + repositories?: string[]; + /** + * @description The list of repository IDs to scope the user access token to. `repository_ids` may not be specified if `repositories` is specified. + * @example [ + * 1 + * ] + */ + repository_ids?: number[]; + permissions?: components["schemas"]["app-permissions"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an app + * @description **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + */ + "apps/get-by-slug": { + parameters: { + path: { + app_slug: components["parameters"]["app-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get an assignment + * @description Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + "classroom/get-an-assignment": { + parameters: { + path: { + assignment_id: components["parameters"]["assignment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["classroom-assignment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List accepted assignments for an assignment + * @description Lists any assignment repositories that have been created by students accepting a GitHub Classroom assignment. Accepted assignments will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + "classroom/list-accepted-assigments-for-an-assignment": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + assignment_id: components["parameters"]["assignment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["classroom-accepted-assignment"][]; + }; + }; + }; + }; + /** + * Get assignment grades + * @description Gets grades for a GitHub Classroom assignment. Grades will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + */ + "classroom/get-assignment-grades": { + parameters: { + path: { + assignment_id: components["parameters"]["assignment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["classroom-assignment-grade"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List classrooms + * @description Lists GitHub Classroom classrooms for the current user. Classrooms will only be returned if the current user is an administrator of one or more GitHub Classrooms. + */ + "classroom/list-classrooms": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-classroom"][]; + }; + }; + }; + }; + /** + * Get a classroom + * @description Gets a GitHub Classroom classroom for the current user. Classroom will only be returned if the current user is an administrator of the GitHub Classroom. + */ + "classroom/get-a-classroom": { + parameters: { + path: { + classroom_id: components["parameters"]["classroom-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["classroom"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List assignments for a classroom + * @description Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. + */ + "classroom/list-assignments-for-a-classroom": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + classroom_id: components["parameters"]["classroom-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-classroom-assignment"][]; + }; + }; + }; + }; + /** + * Get all codes of conduct + * @description Returns array of all GitHub's codes of conduct. + */ + "codes-of-conduct/get-all-codes-of-conduct": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-of-conduct"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a code of conduct + * @description Returns information about the specified GitHub code of conduct. + */ + "codes-of-conduct/get-conduct-code": { + parameters: { + path: { + key: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-of-conduct"]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get emojis + * @description Lists all the emojis available to use on GitHub. + */ + "emojis/get": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + [key: string]: string; + }; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * List Dependabot alerts for an enterprise + * @description Lists Dependabot alerts for repositories that are owned by the specified enterprise. + * + * The authenticated user must be a member of the enterprise to use this endpoint. + * + * Alerts are only returned for organizations in the enterprise for which you are an organization owner or a security manager. For more information about security managers, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. + */ + "dependabot/list-alerts-for-enterprise": { + parameters: { + query?: { + state?: components["parameters"]["dependabot-alert-comma-separated-states"]; + severity?: components["parameters"]["dependabot-alert-comma-separated-severities"]; + ecosystem?: components["parameters"]["dependabot-alert-comma-separated-ecosystems"]; + package?: components["parameters"]["dependabot-alert-comma-separated-packages"]; + scope?: components["parameters"]["dependabot-alert-scope"]; + sort?: components["parameters"]["dependabot-alert-sort"]; + direction?: components["parameters"]["direction"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + first?: components["parameters"]["pagination-first"]; + last?: components["parameters"]["pagination-last"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert-with-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List secret scanning alerts for an enterprise + * @description Lists secret scanning alerts for eligible repositories in an enterprise, from newest to oldest. + * + * Alerts are only returned for organizations in the enterprise for which the authenticated user is an organization owner or a [security manager](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization). + * + * The authenticated user must be a member of the enterprise in order to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope or `security_events` scope to use this endpoint. + */ + "secret-scanning/list-alerts-for-enterprise": { + parameters: { + query?: { + state?: components["parameters"]["secret-scanning-alert-state"]; + secret_type?: components["parameters"]["secret-scanning-alert-secret-type"]; + resolution?: components["parameters"]["secret-scanning-alert-resolution"]; + sort?: components["parameters"]["secret-scanning-alert-sort"]; + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + validity?: components["parameters"]["secret-scanning-alert-validity"]; + }; + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-secret-scanning-alert"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List public events + * @description We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. + */ + "activity/list-public-events": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get feeds + * @description GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user: + * + * * **Timeline**: The GitHub global public timeline + * * **User**: The public timeline for any user, using `uri_template`. For more information, see "[Hypermedia](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + * * **Current user public**: The public timeline for the authenticated user + * * **Current user**: The private timeline for the authenticated user + * * **Current user actor**: The private timeline for activity created by the authenticated user + * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + * + * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + */ + "activity/get-feeds": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["feed"]; + }; + }; + }; + }; + /** + * List gists for the authenticated user + * @description Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: + */ + "gists/list": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Create a gist + * @description Allows you to add a new gist with one or more files. + * + * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + */ + "gists/create": { + requestBody: { + content: { + "application/json": { + /** + * @description Description of the gist + * @example Example Ruby script + */ + description?: string; + /** + * @description Names and content for the files that make up the gist + * @example { + * "hello.rb": { + * "content": "puts \"Hello, World!\"" + * } + * } + */ + files: { + [key: string]: { + /** @description Content of the file */ + content: string; + }; + }; + public?: boolean | ("true" | "false"); + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/gists/aa5a315d61ae9438b18d */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List public gists + * @description List public gists sorted by most recently updated to least recently updated. + * + * Note: With [pagination](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + */ + "gists/list-public": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List starred gists + * @description List the authenticated user's starred gists: + */ + "gists/list-starred": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a gist + * @description Gets a specified gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/get": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden_gist"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a gist */ + "gists/delete": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a gist + * @description Allows you to update a gist's description and to update, delete, or rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. + */ + "gists/update": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The description of the gist. + * @example Example Ruby script + */ + description?: string; + /** + * @description The gist files to be updated, renamed, or deleted. Each `key` must match the current filename + * (including extension) of the targeted gist file. For example: `hello.py`. + * + * To delete a file, set the whole file to null. For example: `hello.py : null`. + * @example { + * "hello.rb": { + * "content": "blah", + * "filename": "goodbye.rb" + * } + * } + */ + files?: { + [key: string]: { + /** @description The new content of the file. */ + content?: string; + /** @description The new filename for the file. */ + filename?: string | null; + }; + }; + } | null; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List gist comments + * @description Lists the comments on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/list-comments": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["gist-comment"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a gist comment + * @description Creates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/create-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The comment text. + * @example Body of the attachment + */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/gists/a6db0bec360bb87e9418/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["gist-comment"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a gist comment + * @description Gets a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/get-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-comment"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden_gist"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a gist comment */ + "gists/delete-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a gist comment + * @description Updates a comment on a gist. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/update-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The comment text. + * @example Body of the attachment + */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** List gist commits */ + "gists/list-commits": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + /** @example ; rel="next" */ + Link?: string; + }; + content: { + "application/json": components["schemas"]["gist-commit"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** List gist forks */ + "gists/list-forks": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["gist-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Fork a gist */ + "gists/fork": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/gists/aa5a315d61ae9438b18d */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["base-gist"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Check if a gist is starred */ + "gists/check-is-starred": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response if gist is starred */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + /** @description Not Found if gist is not starred */ + 404: { + content: { + "application/json": Record; + }; + }; + }; + }; + /** + * Star a gist + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "gists/star": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Unstar a gist */ + "gists/unstar": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a gist revision + * @description Gets a specified gist revision. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences. + */ + "gists/get-revision": { + parameters: { + path: { + gist_id: components["parameters"]["gist-id"]; + sha: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all gitignore templates + * @description List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user). + */ + "gitignore/get-all-templates": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a gitignore template + * @description Get the content of a gitignore template. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw .gitignore contents. + */ + "gitignore/get-template": { + parameters: { + path: { + name: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gitignore-template"]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * List repositories accessible to the app installation + * @description List repositories that an app installation can access. + */ + "apps/list-repos-accessible-to-installation": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["repository"][]; + /** @example selected */ + repository_selection?: string; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Revoke an installation access token + * @description Revokes the installation token you're using to authenticate as an installation and access this endpoint. + * + * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app)" endpoint. + */ + "apps/revoke-installation-access-token": { + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List issues assigned to the authenticated user + * @description List issues assigned to the authenticated user across all visible repositories including owned repositories, member + * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not + * necessarily assigned to you. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list": { + parameters: { + query?: { + /** @description Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. */ + filter?: + | "assigned" + | "created" + | "mentioned" + | "subscribed" + | "repos" + | "all"; + /** @description Indicates the state of the issues to return. */ + state?: "open" | "closed" | "all"; + labels?: components["parameters"]["labels"]; + /** @description What to sort results by. */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + collab?: boolean; + orgs?: boolean; + owned?: boolean; + pulls?: boolean; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all commonly used licenses + * @description Lists the most commonly used licenses on GitHub. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + "licenses/get-all-commonly-used": { + parameters: { + query?: { + featured?: boolean; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["license-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a license + * @description Gets information about a specific license. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)." + */ + "licenses/get": { + parameters: { + path: { + license: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["license"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Render a Markdown document */ + "markdown/render": { + requestBody: { + content: { + "application/json": { + /** @description The Markdown text to render in HTML. */ + text: string; + /** + * @description The rendering mode. + * @default markdown + * @example markdown + * @enum {string} + */ + mode?: "markdown" | "gfm"; + /** @description The repository context to use when creating references in `gfm` mode. For example, setting `context` to `octo-org/octo-repo` will change the text `#42` into an HTML link to issue 42 in the `octo-org/octo-repo` repository. */ + context?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + "Content-Type": components["headers"]["content-type"]; + /** @example 279 */ + "Content-Length"?: string; + "X-CommonMarker-Version": components["headers"]["x-common-marker-version"]; + }; + content: { + "text/html": string; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Render a Markdown document in raw mode + * @description You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. + */ + "markdown/render-raw": { + requestBody?: { + content: { + "text/plain": string; + "text/x-markdown": string; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + "X-CommonMarker-Version": components["headers"]["x-common-marker-version"]; + }; + content: { + "text/html": string; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a subscription plan for an account + * @description Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/get-subscription-plan-for-account": { + parameters: { + path: { + account_id: components["parameters"]["account-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["marketplace-purchase"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + /** @description Not Found when the account has not purchased the listing */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * List plans + * @description Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-plans": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["marketplace-listing-plan"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List accounts for a plan + * @description Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-accounts-for-plan": { + parameters: { + query?: { + sort?: components["parameters"]["sort"]; + /** @description To return the oldest accounts first, set to `asc`. Ignored without the `sort` parameter. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + plan_id: components["parameters"]["plan-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["marketplace-purchase"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a subscription plan for an account (stubbed) + * @description Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/get-subscription-plan-for-account-stubbed": { + parameters: { + path: { + account_id: components["parameters"]["account-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["marketplace-purchase"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + /** @description Not Found when the account has not purchased the listing */ + 404: { + content: never; + }; + }; + }; + /** + * List plans (stubbed) + * @description Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-plans-stubbed": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["marketplace-listing-plan"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * List accounts for a plan (stubbed) + * @description Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-accounts-for-plan-stubbed": { + parameters: { + query?: { + sort?: components["parameters"]["sort"]; + /** @description To return the oldest accounts first, set to `asc`. Ignored without the `sort` parameter. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + plan_id: components["parameters"]["plan-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["marketplace-purchase"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * Get GitHub meta information + * @description Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://docs.github.com/articles/about-github-s-ip-addresses/)." + * + * The API's response also includes a list of GitHub's domain names. + * + * The values shown in the documentation's response are example values. You must always query the API directly to get the latest values. + * + * **Note:** This endpoint returns both IPv4 and IPv6 addresses. However, not all features support IPv6. You should refer to the specific documentation for each feature to determine if IPv6 is supported. + */ + "meta/get": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["api-overview"]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** List public events for a network of repositories */ + "activity/list-public-events-for-repo-network": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List notifications for the authenticated user + * @description List all notifications for the current user, sorted by most recently updated. + */ + "activity/list-notifications-for-authenticated-user": { + parameters: { + query?: { + all?: components["parameters"]["all"]; + participating?: components["parameters"]["participating"]; + since?: components["parameters"]["since"]; + before?: components["parameters"]["before"]; + page?: components["parameters"]["page"]; + /** @description The number of results per page (max 50). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["thread"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Mark notifications as read + * @description Marks all notifications as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + "activity/mark-notifications-as-read": { + requestBody?: { + content: { + "application/json": { + /** + * Format: date-time + * @description Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; + /** @description Whether the notification has been read. */ + read?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": { + message?: string; + }; + }; + }; + /** @description Reset Content */ + 205: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a thread + * @description Gets information about a notification thread. + */ + "activity/get-thread": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["thread"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Mark a thread as done + * @description Marks a thread as "done." Marking a thread as "done" is equivalent to marking a notification in your notification inbox on GitHub as done: https://github.com/notifications. + */ + "activity/mark-thread-as-done": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description No content */ + 204: { + content: never; + }; + }; + }; + /** + * Mark a thread as read + * @description Marks a thread as "read." Marking a thread as "read" is equivalent to clicking a notification in your notification inbox on GitHub: https://github.com/notifications. + */ + "activity/mark-thread-as-read": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description Reset Content */ + 205: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a thread subscription for the authenticated user + * @description This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/activity/watching#get-a-repository-subscription). + * + * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + */ + "activity/get-thread-subscription-for-authenticated-user": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["thread-subscription"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Set a thread subscription + * @description If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**. + * + * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. + * + * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription) endpoint. + */ + "activity/set-thread-subscription": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Whether to block all notifications from a thread. + * @default false + */ + ignored?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["thread-subscription"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Delete a thread subscription + * @description Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/activity/notifications#set-a-thread-subscription) endpoint and set `ignore` to `true`. + */ + "activity/delete-thread-subscription": { + parameters: { + path: { + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get Octocat + * @description Get the octocat as ASCII art + */ + "meta/get-octocat": { + parameters: { + query?: { + /** @description The words to show in Octocat's speech bubble */ + s?: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/octocat-stream": string; + }; + }; + }; + }; + /** + * List organizations + * @description Lists all organizations, in the order that they were created on GitHub. + * + * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of organizations. + */ + "orgs/list": { + parameters: { + query?: { + since?: components["parameters"]["since-org"]; + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + /** @example ; rel="next" */ + Link?: string; + }; + content: { + "application/json": components["schemas"]["organization-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get an organization + * @description Gets information about an organization. + * + * When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://docs.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * + * To see the full details about an organization, the authenticated user must be an organization owner. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to see the full details about an organization. + * + * To see information about an organization's GitHub plan, GitHub Apps need the `Organization plan` permission. + */ + "orgs/get": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-full"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an organization + * @description Deletes an organization and all its repositories. + * + * The organization login will be unavailable for 90 days after deletion. + * + * Please review the Terms of Service regarding account deletion before using this endpoint: + * + * https://docs.github.com/site-policy/github-terms/github-terms-of-service + */ + "orgs/delete": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update an organization + * @description **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * + * Updates the organization's profile and member privileges. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` or `repo` scope to use this endpoint. + */ + "orgs/update": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Billing email address. This address is not publicized. */ + billing_email?: string; + /** @description The company name. */ + company?: string; + /** @description The publicly visible email address. */ + email?: string; + /** @description The Twitter username of the company. */ + twitter_username?: string; + /** @description The location. */ + location?: string; + /** @description The shorthand name of the company. */ + name?: string; + /** @description The description of the company. */ + description?: string; + /** @description Whether an organization can use organization projects. */ + has_organization_projects?: boolean; + /** @description Whether repositories that belong to the organization can use repository projects. */ + has_repository_projects?: boolean; + /** + * @description Default permission level members have for organization repositories. + * @default read + * @enum {string} + */ + default_repository_permission?: "read" | "write" | "admin" | "none"; + /** + * @description Whether of non-admin organization members can create repositories. **Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details. + * @default true + */ + members_can_create_repositories?: boolean; + /** @description Whether organization members can create internal repositories, which are visible to all enterprise members. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see "[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. */ + members_can_create_internal_repositories?: boolean; + /** @description Whether organization members can create private repositories, which are visible to organization members with permission. For more information, see "[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. */ + members_can_create_private_repositories?: boolean; + /** @description Whether organization members can create public repositories, which are visible to anyone. For more information, see "[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. */ + members_can_create_public_repositories?: boolean; + /** + * @description Specifies which types of repositories non-admin organization members can create. `private` is only available to repositories that are part of an organization on GitHub Enterprise Cloud. + * **Note:** This parameter is deprecated and will be removed in the future. Its return value ignores internal repositories. Using this parameter overrides values set in `members_can_create_repositories`. See the parameter deprecation notice in the operation description for details. + * @enum {string} + */ + members_allowed_repository_creation_type?: "all" | "private" | "none"; + /** + * @description Whether organization members can create GitHub Pages sites. Existing published sites will not be impacted. + * @default true + */ + members_can_create_pages?: boolean; + /** + * @description Whether organization members can create public GitHub Pages sites. Existing published sites will not be impacted. + * @default true + */ + members_can_create_public_pages?: boolean; + /** + * @description Whether organization members can create private GitHub Pages sites. Existing published sites will not be impacted. + * @default true + */ + members_can_create_private_pages?: boolean; + /** + * @description Whether organization members can fork private organization repositories. + * @default false + */ + members_can_fork_private_repositories?: boolean; + /** + * @description Whether contributors to organization repositories are required to sign off on commits they make through GitHub's web interface. + * @default false + */ + web_commit_signoff_required?: boolean; + /** @example "http://github.blog" */ + blog?: string; + /** + * @description Whether GitHub Advanced Security is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + advanced_security_enabled_for_new_repositories?: boolean; + /** + * @description Whether Dependabot alerts is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + dependabot_alerts_enabled_for_new_repositories?: boolean; + /** + * @description Whether Dependabot security updates is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + dependabot_security_updates_enabled_for_new_repositories?: boolean; + /** + * @description Whether dependency graph is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + dependency_graph_enabled_for_new_repositories?: boolean; + /** + * @description Whether secret scanning is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + secret_scanning_enabled_for_new_repositories?: boolean; + /** + * @description Whether secret scanning push protection is automatically enabled for new repositories. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * You can check which security and analysis features are currently enabled by using a `GET /orgs/{org}` request. + */ + secret_scanning_push_protection_enabled_for_new_repositories?: boolean; + /** @description Whether a custom link is shown to contributors who are blocked from pushing a secret by push protection. */ + secret_scanning_push_protection_custom_link_enabled?: boolean; + /** @description If `secret_scanning_push_protection_custom_link_enabled` is true, the URL that will be displayed to contributors who are blocked from pushing a secret. */ + secret_scanning_push_protection_custom_link?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-full"]; + }; + }; + 409: components["responses"]["conflict"]; + /** @description Validation failed */ + 422: { + content: { + "application/json": + | components["schemas"]["validation-error"] + | components["schemas"]["validation-error-simple"]; + }; + }; + }; + }; + /** + * Get GitHub Actions cache usage for an organization + * @description Gets the total GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + "actions/get-actions-cache-usage-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["actions-cache-usage-org-enterprise"]; + }; + }; + }; + }; + /** + * List repositories with GitHub Actions cache usage for an organization + * @description Lists repositories and their GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * OAuth tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + "actions/get-actions-cache-usage-by-repo-for-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + repository_cache_usages: components["schemas"]["actions-cache-usage-by-repository"][]; + }; + }; + }; + }; + }; + /** + * Get the customization template for an OIDC subject claim for an organization + * @description Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + "oidc/get-oidc-custom-sub-template-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description A JSON serialized template for OIDC subject claim customization */ + 200: { + content: { + "application/json": components["schemas"]["oidc-custom-sub"]; + }; + }; + }; + }; + /** + * Set the customization template for an OIDC subject claim for an organization + * @description Creates or updates the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + "oidc/update-oidc-custom-sub-template-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["oidc-custom-sub"]; + }; + }; + responses: { + /** @description Empty response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get GitHub Actions permissions for an organization + * @description Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/get-github-actions-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-organization-permissions"]; + }; + }; + }; + }; + /** + * Set GitHub Actions permissions for an organization + * @description Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/set-github-actions-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + enabled_repositories: components["schemas"]["enabled-repositories"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories enabled for GitHub Actions in an organization + * @description Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/list-selected-repositories-enabled-github-actions-organization": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["repository"][]; + }; + }; + }; + }; + }; + /** + * Set selected repositories enabled for GitHub Actions in an organization + * @description Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/set-selected-repositories-enabled-github-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description List of repository IDs to enable for GitHub Actions. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Enable a selected repository for GitHub Actions in an organization + * @description Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/enable-selected-repository-github-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Disable a selected repository for GitHub Actions in an organization + * @description Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/disable-selected-repository-github-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get allowed actions and reusable workflows for an organization + * @description Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/get-allowed-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + }; + /** + * Set allowed actions and reusable workflows for an organization + * @description Sets the actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/set-allowed-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get default workflow permissions for an organization + * @description Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, + * as well as whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/get-github-actions-default-workflow-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-get-default-workflow-permissions"]; + }; + }; + }; + }; + /** + * Set default workflow permissions for an organization + * @description Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, and sets if GitHub Actions + * can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/set-github-actions-default-workflow-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["actions-set-default-workflow-permissions"]; + }; + }; + responses: { + /** @description Success response */ + 204: { + content: never; + }; + }; + }; + /** + * List self-hosted runners for an organization + * @description Lists all self-hosted runners configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-self-hosted-runners-for-org": { + parameters: { + query?: { + /** @description The name of a self-hosted runner. */ + name?: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + runners: components["schemas"]["runner"][]; + }; + }; + }; + }; + }; + /** + * List runner applications for an organization + * @description Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-runner-applications-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["runner-application"][]; + }; + }; + }; + }; + /** + * Create configuration for a just-in-time runner for an organization + * @description Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the organization. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/generate-runner-jitconfig-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the new runner. */ + name: string; + /** @description The ID of the runner group to register the runner to. */ + runner_group_id: number; + /** @description The names of the custom labels to add to the runner. **Minimum items**: 1. **Maximum items**: 100. */ + labels: string[]; + /** + * @description The working directory to be used for job execution, relative to the runner install directory. + * @default _work + */ + work_folder?: string; + }; + }; + }; + responses: { + 201: components["responses"]["actions_runner_jitconfig"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Create a registration token for an organization + * @description Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-registration-token-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Create a remove token for an organization + * @description Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-remove-token-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Get a self-hosted runner for an organization + * @description Gets a specific self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/get-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["runner"]; + }; + }; + }; + }; + /** + * Delete a self-hosted runner from an organization + * @description Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-self-hosted-runner-from-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List labels for a self-hosted runner for an organization + * @description Lists all labels for a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-labels-for-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set custom labels for a self-hosted runner for an organization + * @description Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/set-custom-labels-for-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to set for the runner. You can pass an empty array to remove all custom labels. */ + labels: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Add custom labels to a self-hosted runner for an organization + * @description Adds custom labels to a self-hosted runner configured in an organization. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "actions/add-custom-labels-to-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to add to the runner. */ + labels: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Remove all custom labels from a self-hosted runner for an organization + * @description Remove all custom labels from a self-hosted runner configured in an + * organization. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/remove-all-custom-labels-from-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels_readonly"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a custom label from a self-hosted runner for an organization + * @description Remove a custom label from a self-hosted runner configured + * in an organization. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/remove-custom-label-from-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner-id"]; + name: components["parameters"]["runner-label-name"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List organization secrets + * @description Lists all secrets available in an organization without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-org-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["organization-actions-secret"][]; + }; + }; + }; + }; + }; + /** + * Get an organization public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-org-public-key": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + }; + /** + * Get an organization secret + * @description Gets a single organization secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to a repository to create, update, or read secrets + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-actions-secret"]; + }; + }; + }; + }; + /** + * Create or update an organization secret + * @description Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to + * use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "actions/create-or-update-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/actions#get-an-organization-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + /** + * @description Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids?: (number | string)[]; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete an organization secret + * @description Deletes a secret in an organization using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-selected-repos-for-org-secret": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + }; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/set-selected-repos-for-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Add selected repository to an organization secret](https://docs.github.com/rest/actions/secrets#add-selected-repository-to-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/actions/secrets#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. For more information about setting the visibility, see [Create or + * update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/add-selected-repo-to-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was added to the selected list */ + 204: { + content: never; + }; + /** @description Conflict when visibility type is not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/actions/secrets#create-or-update-an-organization-secret). + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/remove-selected-repo-from-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response when repository was removed from the selected list */ + 204: { + content: never; + }; + /** @description Conflict when visibility type not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * List organization variables + * @description Lists all organization variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-org-variables": { + parameters: { + query?: { + per_page?: components["parameters"]["variables-per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + variables: components["schemas"]["organization-actions-variable"][]; + }; + }; + }; + }; + }; + /** + * Create an organization variable + * @description Creates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name: string; + /** @description The value of the variable. */ + value: string; + /** + * @description The type of repositories in the organization that can access the variable. `selected` means only the repositories specified by `selected_repository_ids` can access the variable. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization variable. You can only provide a list of repository ids when the `visibility` is set to `selected`. */ + selected_repository_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response when creating a variable */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Get an organization variable + * @description Gets a specific variable in an organization. + * + * The authenticated user must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-actions-variable"]; + }; + }; + }; + }; + /** + * Delete an organization variable + * @description Deletes an organization variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the`admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update an organization variable + * @description Updates an organization variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/update-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name?: string; + /** @description The value of the variable. */ + value?: string; + /** + * @description The type of repositories in the organization that can access the variable. `selected` means only the repositories specified by `selected_repository_ids` can access the variable. + * @enum {string} + */ + visibility?: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization variable. You can only provide a list of repository ids when the `visibility` is set to `selected`. */ + selected_repository_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories for an organization variable + * @description Lists all repositories that can access an organization variable + * that is available to selected repositories. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/list-selected-repos-for-org-variable": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + /** @description Response when the visibility of the variable is not set to `selected` */ + 409: { + content: never; + }; + }; + }; + /** + * Set selected repositories for an organization variable + * @description Replaces all repositories for an organization variable that is available + * to selected repositories. Organization variables that are available to selected + * repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/set-selected-repos-for-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The IDs of the repositories that can access the organization variable. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response when the visibility of the variable is not set to `selected` */ + 409: { + content: never; + }; + }; + }; + /** + * Add selected repository to an organization variable + * @description Adds a repository to an organization variable that is available to selected repositories. + * Organization variables that are available to selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/add-selected-repo-to-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response when the visibility of the variable is not set to `selected` */ + 409: { + content: never; + }; + }; + }; + /** + * Remove selected repository from an organization variable + * @description Removes a repository from an organization variable that is + * available to selected repositories. Organization variables that are available to + * selected repositories have their `visibility` field set to `selected`. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. If the repository is private, the `repo` scope is also required. + */ + "actions/remove-selected-repo-from-org-variable": { + parameters: { + path: { + org: components["parameters"]["org"]; + name: components["parameters"]["variable-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response when the visibility of the variable is not set to `selected` */ + 409: { + content: never; + }; + }; + }; + /** + * List users blocked by an organization + * @description List the users blocked by an organization. + */ + "orgs/list-blocked-users": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Check if a user is blocked by an organization + * @description Returns a 204 if the given user is blocked by the given organization. Returns a 404 if the organization is not blocking the user, or if the user account has been identified as spam by GitHub. + */ + "orgs/check-blocked-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description If the user is blocked */ + 204: { + content: never; + }; + /** @description If the user is not blocked */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Block a user from an organization + * @description Blocks the given user on behalf of the specified organization and returns a 204. If the organization cannot block the given user a 422 is returned. + */ + "orgs/block-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Unblock a user from an organization + * @description Unblocks the given user on behalf of the specified organization. + */ + "orgs/unblock-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List code scanning alerts for an organization + * @description Lists code scanning alerts for the default branch for all eligible repositories in an organization. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` or `repo`s cope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/list-alerts-for-org": { + parameters: { + query?: { + tool_name?: components["parameters"]["tool-name"]; + tool_guid?: components["parameters"]["tool-guid"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + direction?: components["parameters"]["direction"]; + /** @description If specified, only code scanning alerts with this state will be returned. */ + state?: components["schemas"]["code-scanning-alert-state-query"]; + /** @description The property by which to sort the results. */ + sort?: "created" | "updated"; + /** @description If specified, only code scanning alerts with this severity will be returned. */ + severity?: components["schemas"]["code-scanning-alert-severity"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["code-scanning-organization-alert-items"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List codespaces for the organization + * @description Lists the codespaces associated to a specified organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/list-in-organization": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Manage access control for organization codespaces + * @deprecated + * @description Sets which users can access codespaces in an organization. This is synonymous with granting or revoking codespaces access permissions for users according to the visibility. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/set-codespaces-access": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Which users can access codespaces in the organization. `disabled` means that no users can access codespaces in the organization. + * @enum {string} + */ + visibility: + | "disabled" + | "selected_members" + | "all_members" + | "all_members_and_outside_collaborators"; + /** @description The usernames of the organization members who should have access to codespaces in the organization. Required when `visibility` is `selected_members`. The provided list of usernames will replace any existing value. */ + selected_usernames?: string[]; + }; + }; + }; + responses: { + /** @description Response when successfully modifying permissions. */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + /** @description Users are neither members nor collaborators of this organization. */ + 400: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Add users to Codespaces access for an organization + * @deprecated + * @description Codespaces for the specified users will be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/set-codespaces-access-users": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The usernames of the organization members whose codespaces be billed to the organization. */ + selected_usernames: string[]; + }; + }; + }; + responses: { + /** @description Response when successfully modifying permissions. */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + /** @description Users are neither members nor collaborators of this organization. */ + 400: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Remove users from Codespaces access for an organization + * @deprecated + * @description Codespaces for the specified users will no longer be billed to the organization. + * + * To use this endpoint, the access settings for the organization must be set to `selected_members`. + * For information on how to change this setting, see "[Manage access control for organization codespaces](https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/delete-codespaces-access-users": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The usernames of the organization members whose codespaces should not be billed to the organization. */ + selected_usernames: string[]; + }; + }; + }; + responses: { + /** @description Response when successfully modifying permissions. */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + /** @description Users are neither members nor collaborators of this organization. */ + 400: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List organization secrets + * @description Lists all Codespaces development environment secrets available at the organization-level without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/list-org-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["codespaces-org-secret"][]; + }; + }; + }; + }; + }; + /** + * Get an organization public key + * @description Gets a public key for an organization, which is required in order to encrypt secrets. You need to encrypt the value of a secret before you can create or update secrets. + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/get-org-public-key": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-public-key"]; + }; + }; + }; + }; + /** + * Get an organization secret + * @description Gets an organization development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/get-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["codespaces-org-secret"]; + }; + }; + }; + }; + /** + * Create or update an organization secret + * @description Creates or updates an organization development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/create-or-update-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-public-key) endpoint. */ + encrypted_value?: string; + /** @description The ID of the key you used to encrypt the secret. */ + key_id?: string; + /** + * @description Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository IDs that can access the organization secret. You can only provide a list of repository IDs when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an organization secret + * @description Deletes an organization development environment secret using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/delete-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/list-selected-repos-for-org-secret": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/set-selected-repos-for-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description Conflict when visibility type not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization development environment secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/add-selected-repo-to-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was added to the selected list */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description Conflict when visibility type is not set to selected */ + 409: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization development environment secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/remove-selected-repo-from-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response when repository was removed from the selected list */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description Conflict when visibility type not set to selected */ + 409: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get Copilot seat information and settings for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Gets information about an organization's Copilot subscription, including seat breakdown + * and code matching policies. To configure these settings, go to your organization's settings on GitHub.com. + * For more information, see "[Managing policies for Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-copilot-business-in-your-organization)". + * + * Only organization owners can configure and view details about the organization's Copilot Business subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/get-copilot-organization-details": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["copilot-organization-details"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List all Copilot seat assignments for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Lists all Copilot seat assignments for an organization that are currently being billed (either active or pending cancellation at the start of the next billing cycle). + * + * Only organization owners can configure and view details about the organization's Copilot Business or Enterprise subscription. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/list-copilot-seats": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + /** @description Total number of Copilot seats for the organization currently being billed. */ + total_seats?: number; + seats?: components["schemas"]["copilot-seat-details"][]; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Add teams to the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for all users within each specified team. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/add-copilot-seats-for-teams": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description List of team names within the organization to which to grant access to GitHub Copilot. */ + selected_teams: string[]; + }; + }; + }; + responses: { + /** @description OK */ + 201: { + content: { + "application/json": { + seats_created: number; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, or the organization's Copilot access setting is set to enable Copilot for all users or is unconfigured. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Remove teams from the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for all members of each team specified. + * This will cause the members of the specified team(s) to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/cancel-copilot-seat-assignment-for-teams": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of teams from which to revoke access to GitHub Copilot. */ + selected_teams: string[]; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": { + seats_cancelled: number; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, or the organization's Copilot access setting is set to enable Copilot for all users or is unconfigured. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Add users to the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Purchases a GitHub Copilot seat for each user specified. + * The organization will be billed accordingly. For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * In order for an admin to use this endpoint, the organization must have a Copilot Business or Enterprise subscription and a configured suggestion matching policy. + * For more information about setting up a Copilot subscription, see "[Setting up a Copilot subscription for your organization](https://docs.github.com/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-organization-or-enterprise)". + * For more information about setting a suggestion matching policy, see "[Configuring suggestion matching policies for GitHub Copilot in your organization](https://docs.github.com/copilot/managing-copilot/managing-policies-for-github-copilot-in-your-organization#configuring-suggestion-matching-policies-for-github-copilot-in-your-organization)". + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/add-copilot-seats-for-users": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The usernames of the organization members to be granted access to GitHub Copilot. */ + selected_usernames: string[]; + }; + }; + }; + responses: { + /** @description OK */ + 201: { + content: { + "application/json": { + seats_created: number; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, or the organization's Copilot access setting is set to enable Copilot for all users or is unconfigured. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Remove users from the Copilot subscription for an organization + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Cancels the Copilot seat assignment for each user specified. + * This will cause the specified users to lose access to GitHub Copilot at the end of the current billing cycle, and the organization will not be billed further for those users. + * + * For more information about Copilot pricing, see "[Pricing for GitHub Copilot](https://docs.github.com/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot)". + * + * For more information about disabling access to Copilot Business or Enterprise, see "[Revoking access to GitHub Copilot for specific users in your organization](https://docs.github.com/copilot/managing-copilot/managing-access-for-copilot-in-your-organization#revoking-access-to-github-copilot-for-specific-users-in-your-organization)". + * + * Only organization owners can configure GitHub Copilot in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/cancel-copilot-seat-assignment-for-users": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The usernames of the organization members for which to revoke access to GitHub Copilot. */ + selected_usernames: string[]; + }; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": { + seats_cancelled: number; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization, billing has not been set up for this organization, a public code suggestions policy has not been set for this organization, the seat management setting is set to enable Copilot for all users or is unconfigured, or a user's seat cannot be cancelled because it was assigned to them via a team. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List Dependabot alerts for an organization + * @description Lists Dependabot alerts for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "dependabot/list-alerts-for-org": { + parameters: { + query?: { + state?: components["parameters"]["dependabot-alert-comma-separated-states"]; + severity?: components["parameters"]["dependabot-alert-comma-separated-severities"]; + ecosystem?: components["parameters"]["dependabot-alert-comma-separated-ecosystems"]; + package?: components["parameters"]["dependabot-alert-comma-separated-packages"]; + scope?: components["parameters"]["dependabot-alert-scope"]; + sort?: components["parameters"]["dependabot-alert-sort"]; + direction?: components["parameters"]["direction"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + first?: components["parameters"]["pagination-first"]; + last?: components["parameters"]["pagination-last"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert-with-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List organization secrets + * @description Lists all secrets available in an organization without revealing their + * encrypted values. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/list-org-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["organization-dependabot-secret"][]; + }; + }; + }; + }; + }; + /** + * Get an organization public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/get-org-public-key": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-public-key"]; + }; + }; + }; + }; + /** + * Get an organization secret + * @description Gets a single organization secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/get-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-dependabot-secret"]; + }; + }; + }; + }; + /** + * Create or update an organization secret + * @description Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization + * permission to use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "dependabot/create-or-update-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + /** + * @description Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids?: (string | number)[]; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete an organization secret + * @description Deletes a secret in an organization using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/delete-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories for an organization secret + * @description Lists all repositories that have been selected when the `visibility` + * for repository access to a secret is set to `selected`. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/list-selected-repos-for-org-secret": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + }; + /** + * Set selected repositories for an organization secret + * @description Replaces all repositories for an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/set-selected-repos-for-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/dependabot/secrets#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Add selected repository to an organization secret + * @description Adds a repository to an organization secret when the `visibility` for + * repository access is set to `selected`. The visibility is set when you [Create or + * update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/add-selected-repo-to-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was added to the selected list */ + 204: { + content: never; + }; + /** @description Conflict when visibility type is not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * Remove selected repository from an organization secret + * @description Removes a repository from an organization secret when the `visibility` + * for repository access is set to `selected`. The visibility is set when you [Create + * or update an organization secret](https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret). + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "dependabot/remove-selected-repo-from-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description Response when repository was removed from the selected list */ + 204: { + content: never; + }; + /** @description Conflict when visibility type not set to selected */ + 409: { + content: never; + }; + }; + }; + /** + * Get list of conflicting packages during Docker migration for organization + * @description Lists all packages that are in a specific organization, are readable by the requesting user, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + "packages/list-docker-migration-conflicting-packages-for-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** List public organization events */ + "activity/list-public-org-events": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** + * List failed organization invitations + * @description The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. + */ + "orgs/list-failed-invitations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** List organization webhooks */ + "orgs/list-webhooks": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["org-hook"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create an organization webhook + * @description Here's how you can create a hook that posts payloads in JSON format: + */ + "orgs/create-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Must be passed as "web". */ + name: string; + /** @description Key/value pairs to provide settings for this webhook. */ + config: { + url: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + /** @example "kdaigle" */ + username?: string; + /** @example "password" */ + password?: string; + }; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. Set to `["*"]` to receive all possible events. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/orgs/octocat/hooks/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["org-hook"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an organization webhook + * @description Returns a webhook configured in an organization. To get only the webhook `config` properties, see "[Get a webhook configuration for an organization](/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization)." + */ + "orgs/get-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-hook"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete an organization webhook */ + "orgs/delete-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update an organization webhook + * @description Updates a webhook configured in an organization. When you update a webhook, the `secret` will be overwritten. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for an organization](/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization)." + */ + "orgs/update-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Key/value pairs to provide settings for this webhook. */ + config?: { + url: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + /** @example "web" */ + name?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-hook"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a webhook configuration for an organization + * @description Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/orgs/webhooks#get-an-organization-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org_hook` scope to use this endpoint. + */ + "orgs/get-webhook-config-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * Update a webhook configuration for an organization + * @description Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/orgs/webhooks#update-an-organization-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org_hook` scope to use this endpoint. + */ + "orgs/update-webhook-config-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * List deliveries for an organization webhook + * @description Returns a list of webhook deliveries for a webhook configured in an organization. + */ + "orgs/list-webhook-deliveries": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + cursor?: components["parameters"]["cursor"]; + redelivery?: boolean; + }; + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery-item"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a webhook delivery for an organization webhook + * @description Returns a delivery for a webhook configured in an organization. + */ + "orgs/get-webhook-delivery": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery"]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Redeliver a delivery for an organization webhook + * @description Redeliver a delivery for a webhook configured in an organization. + */ + "orgs/redeliver-webhook-delivery": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Ping an organization webhook + * @description This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + "orgs/ping-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get an organization installation for the authenticated app + * @description Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-org-installation": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + }; + }; + /** + * List app installations for an organization + * @description Lists all GitHub Apps in an organization. The installation count includes + * all GitHub Apps installed on repositories in the organization. + * + * The authenticated user must be an organization owner to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:read` scope to use this endpoint. + */ + "orgs/list-app-installations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + installations: components["schemas"]["installation"][]; + }; + }; + }; + }; + }; + /** + * Get interaction restrictions for an organization + * @description Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response. + */ + "interactions/get-restrictions-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": + | components["schemas"]["interaction-limit-response"] + | Record; + }; + }; + }; + }; + /** + * Set interaction restrictions for an organization + * @description Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. + */ + "interactions/set-restrictions-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["interaction-limit"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove interaction restrictions for an organization + * @description Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. + */ + "interactions/remove-restrictions-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List pending organization invitations + * @description The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, or `hiring_manager`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + "orgs/list-pending-invitations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Filter invitations by their member role. */ + role?: + | "all" + | "admin" + | "direct_member" + | "billing_manager" + | "hiring_manager"; + /** @description Filter invitations by their invitation source. */ + invitation_source?: "all" | "member" | "scim"; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create an organization invitation + * @description Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + "orgs/create-invitation": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description **Required unless you provide `email`**. GitHub user ID for the person you are inviting. */ + invitee_id?: number; + /** @description **Required unless you provide `invitee_id`**. Email address of the person you are inviting, which can be an existing GitHub user. */ + email?: string; + /** + * @description The role for the new member. + * * `admin` - Organization owners with full administrative rights to the organization and complete access to all repositories and teams. + * * `direct_member` - Non-owner organization members with ability to see other members and join teams by invitation. + * * `billing_manager` - Non-owner organization members with ability to manage the billing settings of your organization. + * * `reinstate` - The previous role assigned to the invitee before they were removed from your organization. Can be one of the roles listed above. Only works if the invitee was previously part of your organization. + * @default direct_member + * @enum {string} + */ + role?: "admin" | "direct_member" | "billing_manager" | "reinstate"; + /** @description Specify IDs for the teams you want to invite new members to. */ + team_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["organization-invitation"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Cancel an organization invitation + * @description Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + */ + "orgs/cancel-invitation": { + parameters: { + path: { + org: components["parameters"]["org"]; + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List organization invitation teams + * @description List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + */ + "orgs/list-invitation-teams": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organization issues assigned to the authenticated user + * @description List issues in an organization assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-for-org": { + parameters: { + query?: { + /** @description Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. */ + filter?: + | "assigned" + | "created" + | "mentioned" + | "subscribed" + | "repos" + | "all"; + /** @description Indicates the state of the issues to return. */ + state?: "open" | "closed" | "all"; + labels?: components["parameters"]["labels"]; + /** @description What to sort results by. */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organization members + * @description List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + */ + "orgs/list-members": { + parameters: { + query?: { + /** @description Filter members returned in the list. `2fa_disabled` means that only members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled will be returned. This options is only available for organization owners. */ + filter?: "2fa_disabled" | "all"; + /** @description Filter members returned by their role. */ + role?: "all" | "admin" | "member"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Check organization membership for a user + * @description Check if a user is, publicly or privately, a member of the organization. + */ + "orgs/check-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response if requester is an organization member and user is a member */ + 204: { + content: never; + }; + /** @description Response if requester is not an organization member */ + 302: { + headers: { + /** @example https://api.github.com/orgs/github/public_members/pezra */ + Location?: string; + }; + content: never; + }; + /** @description Not Found if requester is an organization member and user is not a member */ + 404: { + content: never; + }; + }; + }; + /** + * Remove an organization member + * @description Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + */ + "orgs/remove-member": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List codespaces for a user in organization + * @description Lists the codespaces that a member of an organization has for repositories in that organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/get-codespaces-for-user-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Delete a codespace from the organization + * @description Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/delete-from-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Stop a codespace for an organization user + * @description Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "codespaces/stop-in-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get Copilot seat assignment details for a user + * @description **Note**: This endpoint is in beta and is subject to change. + * + * Gets the GitHub Copilot seat assignment details for a member of an organization who currently has access to GitHub Copilot. + * + * Organization owners can view GitHub Copilot seat assignment details for members in their organization. + * + * OAuth app tokens and personal access tokens (classic) need the `manage_billing:copilot` scope to use this endpoint. + */ + "copilot/get-copilot-seat-details-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description The user's GitHub Copilot seat details, including usage. */ + 200: { + content: { + "application/json": components["schemas"]["copilot-seat-details"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Copilot Business or Enterprise is not enabled for this organization or the user has a pending organization invitation. */ + 422: { + content: never; + }; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get organization membership for a user + * @description In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status. + */ + "orgs/get-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set organization membership for a user + * @description Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + */ + "orgs/set-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The role to give the user in the organization. Can be one of: + * * `admin` - The user will become an owner of the organization. + * * `member` - The user will become a non-owner member of the organization. + * @default member + * @enum {string} + */ + role?: "admin" | "member"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove organization membership for a user + * @description In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + */ + "orgs/remove-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organization migrations + * @description Lists the most recent migrations, including both exports (which can be started through the REST API) and imports (which cannot be started using the REST API). + * + * A list of `repositories` is only returned for export migrations. + */ + "migrations/list-for-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Exclude attributes from the API response to improve performance */ + exclude?: "repositories"[]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["migration"][]; + }; + }; + }; + }; + /** + * Start an organization migration + * @description Initiates the generation of a migration archive. + */ + "migrations/start-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A list of arrays indicating which repositories should be migrated. */ + repositories: string[]; + /** + * @description Indicates whether repositories should be locked (to prevent manipulation) while migrating data. + * @default false + * @example true + */ + lock_repositories?: boolean; + /** + * @description Indicates whether metadata should be excluded and only git source should be included for the migration. + * @default false + */ + exclude_metadata?: boolean; + /** + * @description Indicates whether the repository git data should be excluded from the migration. + * @default false + */ + exclude_git_data?: boolean; + /** + * @description Indicates whether attachments should be excluded from the migration (to reduce migration archive file size). + * @default false + * @example true + */ + exclude_attachments?: boolean; + /** + * @description Indicates whether releases should be excluded from the migration (to reduce migration archive file size). + * @default false + * @example true + */ + exclude_releases?: boolean; + /** + * @description Indicates whether projects owned by the organization or users should be excluded. from the migration. + * @default false + * @example true + */ + exclude_owner_projects?: boolean; + /** + * @description Indicates whether this should only include organization metadata (repositories array should be empty and will ignore other flags). + * @default false + * @example true + */ + org_metadata_only?: boolean; + /** @description Exclude related items from being returned in the response in order to improve performance of the request. */ + exclude?: "repositories"[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an organization migration status + * @description Fetches the status of a migration. + * + * The `state` of a migration can be one of the following values: + * + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + "migrations/get-status-for-org": { + parameters: { + query?: { + /** @description Exclude attributes from the API response to improve performance */ + exclude?: "repositories"[]; + }; + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** + * @description * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + 200: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Download an organization migration archive + * @description Fetches the URL to a migration archive. + */ + "migrations/download-archive-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 302: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an organization migration archive + * @description Deletes a previous migration archive. Migration archives are automatically deleted after seven days. + */ + "migrations/delete-archive-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unlock an organization repository + * @description Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/repos/repos#delete-a-repository) when the migration is complete and you no longer need the source data. + */ + "migrations/unlock-repo-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + repo_name: components["parameters"]["repo-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories in an organization migration + * @description List all the repositories for this organization migration. + */ + "migrations/list-repos-for-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organization fine-grained permissions for an organization + * @description Lists the fine-grained permissions that can be used in custom organization roles for an organization. For more information, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To list the fine-grained permissions that can be used in custom repository roles for an organization, see "[List repository fine-grained permissions for an organization](https://docs.github.com/rest/orgs/organization-roles#list-repository-fine-grained-permissions-for-an-organization)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/list-organization-fine-grained-permissions": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-fine-grained-permission"][]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all organization roles for an organization + * @description Lists the organization roles available in this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/list-org-roles": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response - list of organization roles */ + 200: { + content: { + "application/json": { + /** @description The total number of organization roles available to the organization. */ + total_count?: number; + /** @description The list of organization roles available to the organization. */ + roles?: components["schemas"]["organization-role"][]; + }; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a custom organization role + * @description Creates a custom organization role that can be assigned to users and teams, granting them specific permissions over the organization. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/create-custom-organization-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the custom role. */ + name: string; + /** @description A short description about the intended usage of this role or what permissions it grants. */ + description?: string; + /** @description A list of additional permissions included in this role. */ + permissions: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["organization-role"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove all organization roles for a team + * @description Removes all assigned organization roles from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/revoke-all-org-roles-team": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Assign an organization role to a team + * @description Assigns an organization role to a team in an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/assign-team-to-org-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response if the organization, team or role does not exist. */ + 404: { + content: never; + }; + /** @description Response if the organization roles feature is not enabled for the organization, or validation failed. */ + 422: { + content: never; + }; + }; + }; + /** + * Remove an organization role from a team + * @description Removes an organization role from a team. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/revoke-org-role-team": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Remove all organization roles for a user + * @description Revokes all assigned organization roles from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/revoke-all-org-roles-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Assign an organization role to a user + * @description Assigns an organization role to a member of an organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/assign-user-to-org-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response if the organization, user or role does not exist. */ + 404: { + content: never; + }; + /** @description Response if the organization roles feature is not enabled enabled for the organization, the validation failed, or the user is not an organization member. */ + 422: { + content: never; + }; + }; + }; + /** + * Remove an organization role from a user + * @description Remove an organization role from a user. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/revoke-org-role-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get an organization role + * @description Gets an organization role that is available to this organization. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `read_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/get-org-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-role"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a custom organization role. + * @description Deletes a custom organization role. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/delete-custom-organization-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a custom organization role + * @description Updates an existing custom organization role. Permission changes will apply to all assignees. For more information on custom organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * + * To use this endpoint, the authenticated user must be one of: + * + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permissions of `write_organization_custom_org_role` in the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/patch-custom-organization-role": { + parameters: { + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the custom role. */ + name?: string; + /** @description A short description about the intended usage of this role or what permissions it grants. */ + description?: string; + /** @description A list of additional permissions included in this role. */ + permissions?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-role"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List teams that are assigned to an organization role + * @description Lists the teams that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/list-org-role-teams": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response - List of assigned teams */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + /** @description Response if the organization or role does not exist. */ + 404: { + content: never; + }; + /** @description Response if the organization roles feature is not enabled or validation failed. */ + 422: { + content: never; + }; + }; + }; + /** + * List users that are assigned to an organization role + * @description Lists organization members that are assigned to an organization role. For more information on organization roles, see "[Managing people's access to your organization with roles](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/about-custom-organization-roles)." + * + * To use this endpoint, you must be an administrator for the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/list-org-role-users": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + role_id: components["parameters"]["role-id"]; + }; + }; + responses: { + /** @description Response - List of assigned users */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + /** @description Response if the organization or role does not exist. */ + 404: { + content: never; + }; + /** @description Response if the organization roles feature is not enabled or validation failed. */ + 422: { + content: never; + }; + }; + }; + /** + * List outside collaborators for an organization + * @description List all users who are outside collaborators of an organization. + */ + "orgs/list-outside-collaborators": { + parameters: { + query?: { + /** @description Filter the list of outside collaborators. `2fa_disabled` means that only outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled will be returned. */ + filter?: "2fa_disabled" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Convert an organization member to outside collaborator + * @description When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://docs.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". Converting an organization member to an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + */ + "orgs/convert-member-to-outside-collaborator": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description When set to `true`, the request will be performed asynchronously. Returns a 202 status code when the job is successfully queued. + * @default false + */ + async?: boolean; + }; + }; + }; + responses: { + /** @description User is getting converted asynchronously */ + 202: { + content: { + "application/json": Record; + }; + }; + /** @description User was converted */ + 204: { + content: never; + }; + /** @description Forbidden if user is the last owner of the organization, not a member of the organization, or if the enterprise enforces a policy for inviting outside collaborators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." */ + 403: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove outside collaborator from an organization + * @description Removing a user from this list will remove them from all the organization's repositories. + */ + "orgs/remove-outside-collaborator": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Unprocessable Entity if user is a member of the organization */ + 422: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + }; + }; + /** + * List packages for an organization + * @description Lists packages in an organization readable by the user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/list-packages-for-organization": { + parameters: { + query: { + /** @description The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + visibility?: components["parameters"]["package-visibility"]; + /** @description The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + page?: number; + /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 400: components["responses"]["package_es_list_error"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a package for an organization + * @description Gets a specific package in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-for-organization": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"]; + }; + }; + }; + }; + /** + * Delete a package for an organization + * @description Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-for-org": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore a package for an organization + * @description Restores an entire package in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-for-org": { + parameters: { + query?: { + /** @description package token */ + token?: string; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List package versions for a package owned by an organization + * @description Lists package versions for a package owned by an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-all-package-versions-for-package-owned-by-org": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + /** @description The state of the package, either active or deleted. */ + state?: "active" | "deleted"; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a package version for an organization + * @description Gets a specific package version in an organization. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-version-for-organization": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"]; + }; + }; + }; + }; + /** + * Delete package version for an organization + * @description Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-version-for-org": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore package version for an organization + * @description Restores a specific package version in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must also have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-version-for-org": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + org: components["parameters"]["org"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List requests to access organization resources with fine-grained personal access tokens + * @description Lists requests from organization members to access organization resources with a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/list-pat-grant-requests": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + sort?: components["parameters"]["personal-access-token-sort"]; + direction?: components["parameters"]["direction"]; + owner?: components["parameters"]["personal-access-token-owner"]; + repository?: components["parameters"]["personal-access-token-repository"]; + permission?: components["parameters"]["personal-access-token-permission"]; + last_used_before?: components["parameters"]["personal-access-token-before"]; + last_used_after?: components["parameters"]["personal-access-token-after"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-programmatic-access-grant-request"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Review requests to access organization resources with fine-grained personal access tokens + * @description Approves or denies multiple pending requests to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/review-pat-grant-requests-in-bulk": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Unique identifiers of the requests for access via fine-grained personal access token. Must be formed of between 1 and 100 `pat_request_id` values. */ + pat_request_ids?: number[]; + /** + * @description Action to apply to the requests. + * @enum {string} + */ + action: "approve" | "deny"; + /** @description Reason for approving or denying the requests. Max 1024 characters. */ + reason?: string | null; + }; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Review a request to access organization resources with a fine-grained personal access token + * @description Approves or denies a pending request to access organization resources via a fine-grained personal access token. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/review-pat-grant-request": { + parameters: { + path: { + org: components["parameters"]["org"]; + /** @description Unique identifier of the request for access via fine-grained personal access token. */ + pat_request_id: number; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Action to apply to the request. + * @enum {string} + */ + action: "approve" | "deny"; + /** @description Reason for approving or denying the request. Max 1024 characters. */ + reason?: string | null; + }; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List repositories requested to be accessed by a fine-grained personal access token + * @description Lists the repositories a fine-grained personal access token request is requesting access to. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/list-pat-grant-request-repositories": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + /** @description Unique identifier of the request for access via fine-grained personal access token. */ + pat_request_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List fine-grained personal access tokens with access to organization resources + * @description Lists approved fine-grained personal access tokens owned by organization members that can access organization resources. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/list-pat-grants": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + sort?: components["parameters"]["personal-access-token-sort"]; + direction?: components["parameters"]["direction"]; + owner?: components["parameters"]["personal-access-token-owner"]; + repository?: components["parameters"]["personal-access-token-repository"]; + permission?: components["parameters"]["personal-access-token-permission"]; + last_used_before?: components["parameters"]["personal-access-token-before"]; + last_used_after?: components["parameters"]["personal-access-token-after"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-programmatic-access-grant"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update the access to organization resources via fine-grained personal access tokens + * @description Updates the access organization members have to organization resources via fine-grained personal access tokens. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/update-pat-accesses": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Action to apply to the fine-grained personal access token. + * @enum {string} + */ + action: "revoke"; + /** @description The IDs of the fine-grained personal access tokens. */ + pat_ids: number[]; + }; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update the access a fine-grained personal access token has to organization resources + * @description Updates the access an organization member has to organization resources via a fine-grained personal access token. Limited to revoking the token's existing access. Limited to revoking a token's existing access. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/update-pat-access": { + parameters: { + path: { + org: components["parameters"]["org"]; + pat_id: components["parameters"]["fine-grained-personal-access-token-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Action to apply to the fine-grained personal access token. + * @enum {string} + */ + action: "revoke"; + }; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List repositories a fine-grained personal access token has access to + * @description Lists the repositories a fine-grained personal access token has access to. + * + * Only GitHub Apps can use this endpoint. + */ + "orgs/list-pat-grant-repositories": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + /** @description Unique identifier of the fine-grained personal access token. */ + pat_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List organization projects + * @description Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/list-for-org": { + parameters: { + query?: { + /** @description Indicates the state of the projects to return. */ + state?: "open" | "closed" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project"][]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Create an organization project + * @description Creates an organization project board. Returns a `410 Gone` status if projects are disabled in the organization or if the organization does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/create-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the project. */ + name: string; + /** @description The description of the project. */ + body?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get all custom properties for an organization + * @description Gets all custom properties defined for an organization. + * Organization members can read these properties. + */ + "orgs/get-all-custom-properties": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-custom-property"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update custom properties for an organization + * @description Creates new or updates existing custom properties defined for an organization in a batch. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + "orgs/create-or-update-custom-properties": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The array of custom properties to create or update. */ + properties: components["schemas"]["org-custom-property"][]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-custom-property"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a custom property for an organization + * @description Gets a custom property that is defined for an organization. + * Organization members can read these properties. + */ + "orgs/get-custom-property": { + parameters: { + path: { + org: components["parameters"]["org"]; + custom_property_name: components["parameters"]["custom-property-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-custom-property"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update a custom property for an organization + * @description Creates a new or updates an existing custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + "orgs/create-or-update-custom-property": { + parameters: { + path: { + org: components["parameters"]["org"]; + custom_property_name: components["parameters"]["custom-property-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The type of the value for the property + * @example single_select + * @enum {string} + */ + value_type: "string" | "single_select"; + /** @description Whether the property is required. */ + required?: boolean; + /** @description Default value of the property */ + default_value?: string | null; + /** @description Short description of the property */ + description?: string | null; + /** + * @description An ordered list of the allowed values of the property. + * The property can have up to 200 allowed values. + */ + allowed_values?: string[] | null; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-custom-property"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a custom property for an organization + * @description Removes a custom property that is defined for an organization. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_definitions_manager` in the organization. + */ + "orgs/remove-custom-property": { + parameters: { + path: { + org: components["parameters"]["org"]; + custom_property_name: components["parameters"]["custom-property-name"]; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List custom property values for organization repositories + * @description Lists organization repositories with all of their custom property values. + * Organization members can read these properties. + */ + "orgs/list-custom-properties-values-for-repos": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Finds repositories in the organization with a query containing one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching for repositories](https://docs.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. */ + repository_query?: string; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["org-repo-custom-property-values"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update custom property values for organization repositories + * @description Create new or update existing custom property values for repositories in a batch that belong to an organization. + * Each target repository will have its custom property values updated to match the values provided in the request. + * + * A maximum of 30 repositories can be updated in a single request. + * + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * To use this endpoint, the authenticated user must be one of: + * - An administrator for the organization. + * - A user, or a user on a team, with the fine-grained permission of `custom_properties_org_values_editor` in the organization. + */ + "orgs/create-or-update-custom-properties-values-for-repos": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of repositories that the custom property values will be applied to. */ + repository_names: string[]; + /** @description List of custom property names and associated values to apply to the repositories. */ + properties: components["schemas"]["custom-property-value"][]; + }; + }; + }; + responses: { + /** @description No Content when custom property values are successfully created or updated */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List public organization members + * @description Members of an organization can choose to have their membership publicized or not. + */ + "orgs/list-public-members": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Check public organization membership for a user + * @description Check if the provided user is a public member of the organization. + */ + "orgs/check-public-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response if user is a public member */ + 204: { + content: never; + }; + /** @description Not Found if user is not a public member */ + 404: { + content: never; + }; + }; + }; + /** + * Set public organization membership for the authenticated user + * @description The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "orgs/set-public-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Remove public organization membership for the authenticated user + * @description Removes the public membership for the authenticated user from the specified organization, unless public visibility is enforced by default. + */ + "orgs/remove-public-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List organization repositories + * @description Lists repositories for the specified organization. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + "repos/list-for-org": { + parameters: { + query?: { + /** @description Specifies the types of repositories you want returned. */ + type?: "all" | "public" | "private" | "forks" | "sources" | "member"; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** @description The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Create an organization repository + * @description Creates a new repository in the specified organization. The authenticated user must be a member of the organization. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + "repos/create-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the repository. */ + name: string; + /** @description A short description of the repository. */ + description?: string; + /** @description A URL with more information about the repository. */ + homepage?: string; + /** + * @description Whether the repository is private. + * @default false + */ + private?: boolean; + /** + * @description The visibility of the repository. + * @enum {string} + */ + visibility?: "public" | "private"; + /** + * @description Either `true` to enable issues for this repository or `false` to disable them. + * @default true + */ + has_issues?: boolean; + /** + * @description Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + * @default true + */ + has_projects?: boolean; + /** + * @description Either `true` to enable the wiki for this repository or `false` to disable it. + * @default true + */ + has_wiki?: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads?: boolean; + /** + * @description Either `true` to make this repo available as a template repository or `false` to prevent it. + * @default false + */ + is_template?: boolean; + /** @description The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. */ + team_id?: number; + /** + * @description Pass `true` to create an initial commit with empty README. + * @default false + */ + auto_init?: boolean; + /** @description Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell". */ + gitignore_template?: string; + /** @description Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://docs.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0". */ + license_template?: string; + /** + * @description Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + * @default true + */ + allow_squash_merge?: boolean; + /** + * @description Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge. + * @default false + */ + allow_auto_merge?: boolean; + /** + * @description Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. **The authenticated user must be an organization owner to set this property to `true`.** + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @deprecated + * @description Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** @description The custom properties for the new repository. The keys are the custom property names, and the values are the corresponding custom property values. */ + custom_properties?: { + [key: string]: unknown; + }; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all organization repository rulesets + * @description Get all the repository rulesets for an organization. + */ + "repos/get-org-rulesets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"][]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create an organization repository ruleset + * @description Create a repository ruleset for an organization. + */ + "repos/create-org-ruleset": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + /** @description Request body */ + requestBody: { + content: { + "application/json": { + /** @description The name of the ruleset. */ + name: string; + /** + * @description The target of the ruleset. + * @enum {string} + */ + target?: "branch" | "tag"; + enforcement: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + conditions?: components["schemas"]["org-ruleset-conditions"]; + /** @description An array of rules within the ruleset. */ + rules?: components["schemas"]["repository-rule"][]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List organization rule suites + * @description Lists suites of rule evaluations at the organization level. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + "repos/get-org-rule-suites": { + parameters: { + query?: { + repository_name?: components["parameters"]["repository-name-in-query"]; + time_period?: components["parameters"]["time-period"]; + actor_name?: components["parameters"]["actor-name-in-query"]; + rule_suite_result?: components["parameters"]["rule-suite-result"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["rule-suites"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get an organization rule suite + * @description Gets information about a suite of rule evaluations from within an organization. + * For more information, see "[Managing rulesets for repositories in your organization](https://docs.github.com/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#viewing-insights-for-rulesets)." + */ + "repos/get-org-rule-suite": { + parameters: { + path: { + org: components["parameters"]["org"]; + rule_suite_id: components["parameters"]["rule-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["rule-suite"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get an organization repository ruleset + * @description Get a repository ruleset for an organization. + */ + "repos/get-org-ruleset": { + parameters: { + path: { + org: components["parameters"]["org"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update an organization repository ruleset + * @description Update a ruleset for an organization. + */ + "repos/update-org-ruleset": { + parameters: { + path: { + org: components["parameters"]["org"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + /** @description Request body */ + requestBody?: { + content: { + "application/json": { + /** @description The name of the ruleset. */ + name?: string; + /** + * @description The target of the ruleset. + * @enum {string} + */ + target?: "branch" | "tag"; + enforcement?: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + conditions?: components["schemas"]["org-ruleset-conditions"]; + /** @description An array of rules within the ruleset. */ + rules?: components["schemas"]["repository-rule"][]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Delete an organization repository ruleset + * @description Delete a ruleset for an organization. + */ + "repos/delete-org-ruleset": { + parameters: { + path: { + org: components["parameters"]["org"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List secret scanning alerts for an organization + * @description Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest. + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/list-alerts-for-org": { + parameters: { + query?: { + state?: components["parameters"]["secret-scanning-alert-state"]; + secret_type?: components["parameters"]["secret-scanning-alert-secret-type"]; + resolution?: components["parameters"]["secret-scanning-alert-resolution"]; + sort?: components["parameters"]["secret-scanning-alert-sort"]; + direction?: components["parameters"]["direction"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + before?: components["parameters"]["secret-scanning-pagination-before-org-repo"]; + after?: components["parameters"]["secret-scanning-pagination-after-org-repo"]; + validity?: components["parameters"]["secret-scanning-alert-validity"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-secret-scanning-alert"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List repository security advisories for an organization + * @description Lists repository security advisories for an organization. + * + * The authenticated user must be an owner or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + "security-advisories/list-org-repository-advisories": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "published"; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + /** @description The number of advisories to return per page. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + /** @description Filter by the state of the repository advisories. Only advisories of this state will be returned. */ + state?: "triage" | "draft" | "published" | "closed"; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-advisory"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List security manager teams + * @description Lists teams that are security managers for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an administrator or security manager for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + */ + "orgs/list-security-manager-teams": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-simple"][]; + }; + }; + }; + }; + /** + * Add a security manager team + * @description Adds a team as a security manager for an organization. For more information, see "[Managing security for an organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) for an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + "orgs/add-security-manager-team": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description The organization has reached the maximum number of security manager teams. */ + 409: { + content: never; + }; + }; + }; + /** + * Remove a security manager team + * @description Removes the security manager role from a team for an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization) team from an organization." + * + * The authenticated user must be an administrator for the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + */ + "orgs/remove-security-manager-team": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get GitHub Actions billing for an organization + * @description Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + "billing/get-github-actions-billing-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-billing-usage"]; + }; + }; + }; + }; + /** + * Get GitHub Packages billing for an organization + * @description Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + "billing/get-github-packages-billing-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["packages-billing-usage"]; + }; + }; + }; + }; + /** + * Get shared storage billing for an organization + * @description Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `admin:org` scope to use this endpoint. + */ + "billing/get-shared-storage-billing-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["combined-billing-usage"]; + }; + }; + }; + }; + /** + * List teams + * @description Lists all teams in an organization that are visible to the authenticated user. + */ + "teams/list": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Create a team + * @description To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://docs.github.com/articles/setting-team-creation-permissions-in-your-organization)." + * + * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/about-teams)". + */ + "teams/create": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the team. */ + name: string; + /** @description The description of the team. */ + description?: string; + /** @description List GitHub IDs for organization members who will become team maintainers. */ + maintainers?: string[]; + /** @description The full name (e.g., "organization-name/repository-name") of repositories to add the team to. */ + repo_names?: string[]; + /** + * @description The level of privacy this team should have. The options are: + * **For a non-nested team:** + * * `secret` - only visible to organization owners and members of this team. + * * `closed` - visible to all members of this organization. + * Default: `secret` + * **For a parent or child team:** + * * `closed` - visible to all members of this organization. + * Default for child team: `closed` + * @enum {string} + */ + privacy?: "secret" | "closed"; + /** + * @description The notification setting the team has chosen. The options are: + * * `notifications_enabled` - team members receive notifications when the team is @mentioned. + * * `notifications_disabled` - no one receives notifications. + * Default: `notifications_enabled` + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** + * @description **Deprecated**. The permission that new repositories will be added to the team with when none is specified. + * @default pull + * @enum {string} + */ + permission?: "pull" | "push"; + /** @description The ID of a team to set as the parent team. */ + parent_team_id?: number; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a team by name + * @description Gets a team using the team's `slug`. To create the `slug`, GitHub replaces special characters in the `name` string, changes all words to lowercase, and replaces spaces with a `-` separator. For example, `"My TEam Näme"` would become `my-team-name`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + */ + "teams/get-by-name": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a team + * @description To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + */ + "teams/delete-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a team + * @description To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + */ + "teams/update-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the team. */ + name?: string; + /** @description The description of the team. */ + description?: string; + /** + * @description The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. When a team is nested, the `privacy` for parent teams cannot be `secret`. The options are: + * **For a non-nested team:** + * * `secret` - only visible to organization owners and members of this team. + * * `closed` - visible to all members of this organization. + * **For a parent or child team:** + * * `closed` - visible to all members of this organization. + * @enum {string} + */ + privacy?: "secret" | "closed"; + /** + * @description The notification setting the team has chosen. Editing teams without specifying this parameter leaves `notification_setting` intact. The options are: + * * `notifications_enabled` - team members receive notifications when the team is @mentioned. + * * `notifications_disabled` - no one receives notifications. + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** + * @description **Deprecated**. The permission that new repositories will be added to the team with when none is specified. + * @default pull + * @enum {string} + */ + permission?: "pull" | "push" | "admin"; + /** @description The ID of a team to set as the parent team. */ + parent_team_id?: number | null; + }; + }; + }; + responses: { + /** @description Response when the updated information already exists */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List discussions + * @description List all discussions on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/list-discussions-in-org": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Pinned discussions only filter */ + pinned?: string; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-discussion"][]; + }; + }; + }; + }; + /** + * Create a discussion + * @description Creates a new discussion post on a team's page. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/create-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title: string; + /** @description The discussion post's body text. */ + body: string; + /** + * @description Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + * @default false + */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * Get a discussion + * @description Get a specific discussion on a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/get-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * Delete a discussion + * @description Delete a discussion from a team's page. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/delete-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a discussion + * @description Edits the title and body text of a discussion post. Only the parameters you provide are updated. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/update-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title?: string; + /** @description The discussion post's body text. */ + body?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * List discussion comments + * @description List all comments on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/list-discussion-comments-in-org": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-discussion-comment"][]; + }; + }; + }; + }; + /** + * Create a discussion comment + * @description Creates a new comment on a team discussion. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/create-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * Get a discussion comment + * @description Get a specific comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/get-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * Delete a discussion comment + * @description Deletes a comment on a team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/delete-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a discussion comment + * @description Edits the body text of a discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/update-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * List reactions for a team discussion comment + * @description List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "reactions/list-for-team-discussion-comment-in-org": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create reaction for a team discussion comment + * @description Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/create-for-team-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the team discussion comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response when the reaction type has already been added to this team discussion comment */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + }; + /** + * Delete team discussion comment reaction + * @description **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/delete-for-team-discussion-comment": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List reactions for a team discussion + * @description List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "reactions/list-for-team-discussion-in-org": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create reaction for a team discussion + * @description Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/create-for-team-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the team discussion. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + }; + /** + * Delete team discussion reaction + * @description **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/delete-for-team-discussion": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + discussion_number: components["parameters"]["discussion-number"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List pending team invitations + * @description The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + */ + "teams/list-pending-invitations-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + }; + }; + /** + * List team members + * @description Team members will include the members of child teams. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + "teams/list-members-in-org": { + parameters: { + query?: { + /** @description Filters members returned by their role in the team. */ + role?: "member" | "maintainer" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Get team membership for a user + * @description Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + */ + "teams/get-membership-for-user-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + /** @description if user has no team membership */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team membership for a user + * @description Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + "teams/add-or-update-membership-for-user-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The role that this user should have in the team. + * @default member + * @enum {string} + */ + role?: "member" | "maintainer"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + /** @description Forbidden if team synchronization is set up */ + 403: { + content: never; + }; + /** @description Unprocessable Entity if you attempt to add an organization to a team */ + 422: { + content: never; + }; + }; + }; + /** + * Remove team membership for a user + * @description To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + "teams/remove-membership-for-user-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Forbidden if team synchronization is set up */ + 403: { + content: never; + }; + }; + }; + /** + * List team projects + * @description Lists the organization projects for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. + */ + "teams/list-projects-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-project"][]; + }; + }; + }; + }; + /** + * Check team permissions for a project + * @description Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/check-permissions-for-project-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-project"]; + }; + }; + /** @description Not Found if project is not managed by this team */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team project permissions + * @description Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/add-or-update-project-permissions-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant to the team for this project. Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * @enum {string} + */ + permission?: "read" | "write" | "admin"; + } | null; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Forbidden if the project is not owned by the organization */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + }; + }; + /** + * Remove a project from a team + * @description Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/remove-project-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List team repositories + * @description Lists a team's repositories visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. + */ + "teams/list-repos-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Check team permissions for a repository + * @description Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header. + * + * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. + * + * If the repository is private, you must have at least `read` permission for that repository, and your token must have the `repo` or `admin:org` scope. Otherwise, you will receive a `404 Not Found` response status. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + "teams/check-permissions-for-repo-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Alternative response with repository permissions */ + 200: { + content: { + "application/json": components["schemas"]["team-repository"]; + }; + }; + /** @description Response if team has permission for the repository. This is the response when the repository media type hasn't been provded in the Accept header. */ + 204: { + content: never; + }; + /** @description Not Found if team does not have permission for the repository */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team repository permissions + * @description To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + * + * For more information about the permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + */ + "teams/add-or-update-repo-permissions-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant the team on this repository. We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + * @default push + */ + permission?: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Remove a repository from a team + * @description If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + "teams/remove-repo-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List child teams + * @description Lists the child teams of the team specified by `{team_slug}`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. + */ + "teams/list-child-in-org": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** @description if child teams exist */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + }; + }; + /** + * Enable or disable a security feature for an organization + * @description Enables or disables the specified security feature for all eligible repositories in an organization. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * The authenticated user must be an organization owner or be member of a team with the security manager role to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + */ + "orgs/enable-or-disable-security-product-on-all-org-repos": { + parameters: { + path: { + org: components["parameters"]["org"]; + security_product: components["parameters"]["security-product"]; + enablement: components["parameters"]["org-security-product-enablement"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description CodeQL query suite to be used. If you specify the `query_suite` parameter, the default setup will be configured with this query suite only on all repositories that didn't have default setup already configured. It will not change the query suite on repositories that already have default setup configured. + * If you don't specify any `query_suite` in your request, the preferred query suite of the organization will be applied. + * @enum {string} + */ + query_suite?: "default" | "extended"; + }; + }; + }; + responses: { + /** @description Action started */ + 204: { + content: never; + }; + /** @description The action could not be taken due to an in progress enablement, or a policy is preventing enablement */ + 422: { + content: never; + }; + }; + }; + /** + * Get a project card + * @description Gets information about a project card. + */ + "projects/get-card": { + parameters: { + path: { + card_id: components["parameters"]["card-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-card"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a project card + * @description Deletes a project card + */ + "projects/delete-card": { + parameters: { + path: { + card_id: components["parameters"]["card-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** @description Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Update an existing project card */ + "projects/update-card": { + parameters: { + path: { + card_id: components["parameters"]["card-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The project card's note + * @example Update all gems + */ + note?: string | null; + /** + * @description Whether or not the card is archived + * @example false + */ + archived?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-card"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** Move a project card */ + "projects/move-card": { + parameters: { + path: { + card_id: components["parameters"]["card-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The position of the card in a column. Can be one of: `top`, `bottom`, or `after:` to place after the specified card. + * @example bottom + */ + position: string; + /** + * @description The unique identifier of the column the card should be moved to + * @example 42 + */ + column_id?: number; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": Record; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** @description Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: { + code?: string; + message?: string; + resource?: string; + field?: string; + }[]; + }; + }; + }; + 422: components["responses"]["validation_failed"]; + /** @description Response */ + 503: { + content: { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + errors?: { + code?: string; + message?: string; + }[]; + }; + }; + }; + }; + }; + /** + * Get a project column + * @description Gets information about a project column. + */ + "projects/get-column": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-column"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a project column + * @description Deletes a project column. + */ + "projects/delete-column": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Update an existing project column */ + "projects/update-column": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Name of the project column + * @example Remaining tasks + */ + name: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-column"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List project cards + * @description Lists the project cards in a project. + */ + "projects/list-cards": { + parameters: { + query?: { + /** @description Filters the project cards that are returned by the card's state. */ + archived_state?: "all" | "archived" | "not_archived"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project-card"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Create a project card */ + "projects/create-card": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + requestBody: { + content: { + "application/json": OneOf< + [ + { + /** + * @description The project card's note + * @example Update all gems + */ + note: string | null; + }, + { + /** + * @description The unique identifier of the content associated with the card + * @example 42 + */ + content_id: number; + /** + * @description The piece of content associated with the card + * @example PullRequest + */ + content_type: string; + }, + ] + >; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project-card"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** @description Validation failed */ + 422: { + content: { + "application/json": + | components["schemas"]["validation-error"] + | components["schemas"]["validation-error-simple"]; + }; + }; + /** @description Response */ + 503: { + content: { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + errors?: { + code?: string; + message?: string; + }[]; + }; + }; + }; + }; + }; + /** Move a project column */ + "projects/move-column": { + parameters: { + path: { + column_id: components["parameters"]["column-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The position of the column in a project. Can be one of: `first`, `last`, or `after:` to place after the specified column. + * @example last + */ + position: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": Record; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get a project + * @description Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/get": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Delete a project + * @description Deletes a project board. Returns a `404 Not Found` status if projects are disabled. + */ + "projects/delete": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Delete Success */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** @description Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Update a project + * @description Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/update": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Name of the project + * @example Week One Sprint + */ + name?: string; + /** + * @description Body of the project + * @example This project represents the sprint of the first week in January + */ + body?: string | null; + /** + * @description State of the project; either 'open' or 'closed' + * @example open + */ + state?: string; + /** + * @description The baseline permission that all organization members have on this project + * @enum {string} + */ + organization_permission?: "read" | "write" | "admin" | "none"; + /** @description Whether or not this project can be seen by everyone. */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** @description Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + }; + /** @description Not Found if the authenticated user does not have access to the project */ + 404: { + content: never; + }; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List project collaborators + * @description Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. + */ + "projects/list-collaborators": { + parameters: { + query?: { + /** @description Filters the collaborators by their affiliation. `outside` means outside collaborators of a project that are not a member of the project's organization. `direct` means collaborators with permissions to a project, regardless of organization membership status. `all` means all collaborators the authenticated user can see. */ + affiliation?: "outside" | "direct" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add project collaborator + * @description Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. + */ + "projects/add-collaborator": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant the collaborator. + * @default write + * @example write + * @enum {string} + */ + permission?: "read" | "write" | "admin"; + } | null; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove user as a collaborator + * @description Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. + */ + "projects/remove-collaborator": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get project permission for a user + * @description Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. + */ + "projects/get-permission-for-user": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["project-collaborator-permission"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List project columns + * @description Lists the project columns in a project. + */ + "projects/list-columns": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project-column"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Create a project column + * @description Creates a new project column. + */ + "projects/create-column": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Name of the project column + * @example Remaining tasks + */ + name: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project-column"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get rate limit status for the authenticated user + * @description **Note:** Accessing this endpoint does not count against your REST API rate limit. + * + * Some categories of endpoints have custom rate limits that are separate from the rate limit governing the other REST API endpoints. For this reason, the API response categorizes your rate limit. Under `resources`, you'll see objects relating to different categories: + * * The `core` object provides your rate limit status for all non-search-related resources in the REST API. + * * The `search` object provides your rate limit status for the REST API for searching (excluding code searches). For more information, see "[Search](https://docs.github.com/rest/search/search)." + * * The `code_search` object provides your rate limit status for the REST API for searching code. For more information, see "[Search code](https://docs.github.com/rest/search/search#search-code)." + * * The `graphql` object provides your rate limit status for the GraphQL API. For more information, see "[Resource limitations](https://docs.github.com/graphql/overview/resource-limitations#rate-limit)." + * * The `integration_manifest` object provides your rate limit status for the `POST /app-manifests/{code}/conversions` operation. For more information, see "[Creating a GitHub App from a manifest](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app-from-a-manifest#3-you-exchange-the-temporary-code-to-retrieve-the-app-configuration)." + * * The `dependency_snapshots` object provides your rate limit status for submitting snapshots to the dependency graph. For more information, see "[Dependency graph](https://docs.github.com/rest/dependency-graph)." + * * The `code_scanning_upload` object provides your rate limit status for uploading SARIF results to code scanning. For more information, see "[Uploading a SARIF file to GitHub](https://docs.github.com/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github)." + * * The `actions_runner_registration` object provides your rate limit status for registering self-hosted runners in GitHub Actions. For more information, see "[Self-hosted runners](https://docs.github.com/rest/actions/self-hosted-runners)." + * * The `source_import` object is no longer in use for any API endpoints, and it will be removed in the next API version. For more information about API versions, see "[API Versions](https://docs.github.com/rest/overview/api-versions)." + * + * **Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + */ + "rate-limit/get": { + responses: { + /** @description Response */ + 200: { + headers: { + "X-RateLimit-Limit": components["headers"]["x-rate-limit-limit"]; + "X-RateLimit-Remaining": components["headers"]["x-rate-limit-remaining"]; + "X-RateLimit-Reset": components["headers"]["x-rate-limit-reset"]; + }; + content: { + "application/json": components["schemas"]["rate-limit-overview"]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a repository + * @description The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + * + * **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + */ + "repos/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a repository + * @description Deleting a repository requires admin access. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned + * repositories, you will get a `403 Forbidden` response. + * + * OAuth app tokens and personal access tokens (classic) need the `delete_repo` scope to use this endpoint. + */ + "repos/delete": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 307: components["responses"]["temporary_redirect"]; + /** @description If an organization owner has configured the organization to prevent members from deleting organization-owned repositories, a member will get this response: */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a repository + * @description **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/repos/repos#replace-all-repository-topics) endpoint. + */ + "repos/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the repository. */ + name?: string; + /** @description A short description of the repository. */ + description?: string; + /** @description A URL with more information about the repository. */ + homepage?: string; + /** + * @description Either `true` to make the repository private or `false` to make it public. Default: `false`. + * **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://docs.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. + * @default false + */ + private?: boolean; + /** + * @description The visibility of the repository. + * @enum {string} + */ + visibility?: "public" | "private"; + /** + * @description Specify which security and analysis features to enable or disable for the repository. + * + * To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * For example, to enable GitHub Advanced Security, use this data in the body of the `PATCH` request: + * `{ "security_and_analysis": {"advanced_security": { "status": "enabled" } } }`. + * + * You can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request. + */ + security_and_analysis?: { + /** @description Use the `status` property to enable or disable GitHub Advanced Security for this repository. For more information, see "[About GitHub Advanced Security](/github/getting-started-with-github/learning-about-github/about-github-advanced-security)." */ + advanced_security?: { + /** @description Can be `enabled` or `disabled`. */ + status?: string; + }; + /** @description Use the `status` property to enable or disable secret scanning for this repository. For more information, see "[About secret scanning](/code-security/secret-security/about-secret-scanning)." */ + secret_scanning?: { + /** @description Can be `enabled` or `disabled`. */ + status?: string; + }; + /** @description Use the `status` property to enable or disable secret scanning push protection for this repository. For more information, see "[Protecting pushes with secret scanning](/code-security/secret-scanning/protecting-pushes-with-secret-scanning)." */ + secret_scanning_push_protection?: { + /** @description Can be `enabled` or `disabled`. */ + status?: string; + }; + } | null; + /** + * @description Either `true` to enable issues for this repository or `false` to disable them. + * @default true + */ + has_issues?: boolean; + /** + * @description Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + * @default true + */ + has_projects?: boolean; + /** + * @description Either `true` to enable the wiki for this repository or `false` to disable it. + * @default true + */ + has_wiki?: boolean; + /** + * @description Either `true` to make this repo available as a template repository or `false` to prevent it. + * @default false + */ + is_template?: boolean; + /** @description Updates the default branch for this repository. */ + default_branch?: string; + /** + * @description Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + * @default true + */ + allow_squash_merge?: boolean; + /** + * @description Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge. + * @default false + */ + allow_auto_merge?: boolean; + /** + * @description Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description Either `true` to always allow a pull request head branch that is behind its base branch to be updated even if it is not required to be up to date before merging, or false otherwise. + * @default false + */ + allow_update_branch?: boolean; + /** + * @deprecated + * @description Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property has been deprecated. Please use `squash_merge_commit_title` instead. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether to archive this repository. `false` will unarchive a previously archived repository. + * @default false + */ + archived?: boolean; + /** + * @description Either `true` to allow private forks, or `false` to prevent private forks. + * @default false + */ + allow_forking?: boolean; + /** + * @description Either `true` to require contributors to sign off on web-based commits, or `false` to not require contributors to sign off on web-based commits. + * @default false + */ + web_commit_signoff_required?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 307: components["responses"]["temporary_redirect"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List artifacts for a repository + * @description Lists all artifacts for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-artifacts-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + name?: components["parameters"]["artifact-name"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + artifacts: components["schemas"]["artifact"][]; + }; + }; + }; + }; + }; + /** + * Get an artifact + * @description Gets a specific artifact for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-artifact": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + artifact_id: components["parameters"]["artifact-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["artifact"]; + }; + }; + }; + }; + /** + * Delete an artifact + * @description Deletes an artifact for a workflow run. + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-artifact": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + artifact_id: components["parameters"]["artifact-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Download an artifact + * @description Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + * the response header to find the URL for the download. The `:archive_format` must be `zip`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/download-artifact": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + artifact_id: components["parameters"]["artifact-id"]; + archive_format: string; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + Location: components["headers"]["location"]; + }; + content: never; + }; + 410: components["responses"]["gone"]; + }; + }; + /** + * Get GitHub Actions cache usage for a repository + * @description Gets GitHub Actions cache usage for a repository. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-actions-cache-usage": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-cache-usage-by-repository"]; + }; + }; + }; + }; + /** + * List GitHub Actions caches for a repository + * @description Lists the GitHub Actions caches for a repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-actions-cache-list": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + ref?: components["parameters"]["actions-cache-git-ref-full"]; + key?: components["parameters"]["actions-cache-key"]; + sort?: components["parameters"]["actions-cache-list-sort"]; + direction?: components["parameters"]["direction"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["actions-cache-list"]; + }; + }; + }; + }; + /** + * Delete GitHub Actions caches for a repository (using a cache key) + * @description Deletes one or more GitHub Actions caches for a repository, using a complete cache key. By default, all caches that match the provided key are deleted, but you can optionally provide a Git ref to restrict deletions to caches that match both the provided key and the Git ref. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-actions-cache-by-key": { + parameters: { + query: { + key: components["parameters"]["actions-cache-key-required"]; + ref?: components["parameters"]["actions-cache-git-ref-full"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-cache-list"]; + }; + }; + }; + }; + /** + * Delete a GitHub Actions cache for a repository (using a cache ID) + * @description Deletes a GitHub Actions cache for a repository, using a cache ID. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-actions-cache-by-id": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + cache_id: components["parameters"]["cache-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get a job for a workflow run + * @description Gets a specific job in a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-job-for-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + job_id: components["parameters"]["job-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["job"]; + }; + }; + }; + }; + /** + * Download job logs for a workflow run + * @description Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + * for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/download-job-logs-for-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + job_id: components["parameters"]["job-id"]; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/jobs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * Re-run a job from a workflow run + * @description Re-run a job and its dependent jobs in a workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/re-run-job-for-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + job_id: components["parameters"]["job-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Whether to enable debug logging for the re-run. + * @default false + */ + enable_debug_logging?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get the customization template for an OIDC subject claim for a repository + * @description Gets the customization template for an OpenID Connect (OIDC) subject claim. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-custom-oidc-sub-claim-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Status response */ + 200: { + content: { + "application/json": components["schemas"]["oidc-custom-sub-repo"]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set the customization template for an OIDC subject claim for a repository + * @description Sets the customization template and `opt-in` or `opt-out` flag for an OpenID Connect (OIDC) subject claim for a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-custom-oidc-sub-claim-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored. */ + use_default: boolean; + /** @description Array of unique strings. Each claim key can only contain alphanumeric characters and underscores. */ + include_claim_keys?: string[]; + }; + }; + }; + responses: { + /** @description Empty response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List repository organization secrets + * @description Lists all organization secrets shared with a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-repo-organization-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["actions-secret"][]; + }; + }; + }; + }; + }; + /** + * List repository organization variables + * @description Lists all organization variables shared with a repository. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-repo-organization-variables": { + parameters: { + query?: { + per_page?: components["parameters"]["variables-per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + variables: components["schemas"]["actions-variable"][]; + }; + }; + }; + }; + }; + /** + * Get GitHub Actions permissions for a repository + * @description Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-github-actions-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-repository-permissions"]; + }; + }; + }; + }; + /** + * Set GitHub Actions permissions for a repository + * @description Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-github-actions-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + enabled: components["schemas"]["actions-enabled"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get the level of access for workflows outside of the repository + * @description Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-workflow-access-to-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-workflow-access-to-repository"]; + }; + }; + }; + }; + /** + * Set the level of access for workflows outside of the repository + * @description Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to private repositories. + * For more information, see "[Allowing access to components in a private repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-a-private-repository)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-workflow-access-to-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["actions-workflow-access-to-repository"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get allowed actions and reusable workflows for a repository + * @description Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-allowed-actions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + }; + /** + * Set allowed actions and reusable workflows for a repository + * @description Sets the actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-allowed-actions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get default workflow permissions for a repository + * @description Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, + * as well as if GitHub Actions can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-github-actions-default-workflow-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-get-default-workflow-permissions"]; + }; + }; + }; + }; + /** + * Set default workflow permissions for a repository + * @description Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, and sets if GitHub Actions + * can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-github-actions-default-workflow-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["actions-set-default-workflow-permissions"]; + }; + }; + responses: { + /** @description Success response */ + 204: { + content: never; + }; + /** @description Conflict response when changing a setting is prevented by the owning organization */ + 409: { + content: never; + }; + }; + }; + /** + * List self-hosted runners for a repository + * @description Lists all self-hosted runners configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-self-hosted-runners-for-repo": { + parameters: { + query?: { + /** @description The name of a self-hosted runner. */ + name?: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + runners: components["schemas"]["runner"][]; + }; + }; + }; + }; + }; + /** + * List runner applications for a repository + * @description Lists binaries for the runner application that you can download and run. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-runner-applications-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["runner-application"][]; + }; + }; + }; + }; + /** + * Create configuration for a just-in-time runner for a repository + * @description Generates a configuration that can be passed to the runner application at startup. + * + * The authenticated user must have admin access to the repository. + * + * OAuth tokens and personal access tokens (classic) need the`repo` scope to use this endpoint. + */ + "actions/generate-runner-jitconfig-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the new runner. */ + name: string; + /** @description The ID of the runner group to register the runner to. */ + runner_group_id: number; + /** @description The names of the custom labels to add to the runner. **Minimum items**: 1. **Maximum items**: 100. */ + labels: string[]; + /** + * @description The working directory to be used for job execution, relative to the runner install directory. + * @default _work + */ + work_folder?: string; + }; + }; + }; + responses: { + 201: components["responses"]["actions_runner_jitconfig"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Create a registration token for a repository + * @description Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to configure your self-hosted runner: + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-registration-token-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Create a remove token for a repository + * @description Returns a token that you can pass to the `config` script to remove a self-hosted runner from an repository. The token expires after one hour. + * + * For example, you can replace `TOKEN` in the following example with the registration token provided by this endpoint to remove your self-hosted runner from an organization: + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-remove-token-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Get a self-hosted runner for a repository + * @description Gets a specific self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["runner"]; + }; + }; + }; + }; + /** + * Delete a self-hosted runner from a repository + * @description Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-self-hosted-runner-from-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List labels for a self-hosted runner for a repository + * @description Lists all labels for a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-labels-for-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set custom labels for a self-hosted runner for a repository + * @description Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/set-custom-labels-for-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to set for the runner. You can pass an empty array to remove all custom labels. */ + labels: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Add custom labels to a self-hosted runner for a repository + * @description Adds custom labels to a self-hosted runner configured in a repository. + * + * Authenticated users must have admin access to the organization to use this endpoint. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/add-custom-labels-to-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to add to the runner. */ + labels: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Remove all custom labels from a self-hosted runner for a repository + * @description Remove all custom labels from a self-hosted runner configured in a + * repository. Returns the remaining read-only labels from the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/remove-all-custom-labels-from-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels_readonly"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a custom label from a self-hosted runner for a repository + * @description Remove a custom label from a self-hosted runner configured + * in a repository. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * Authenticated users must have admin access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/remove-custom-label-from-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner-id"]; + name: components["parameters"]["runner-label-name"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List workflow runs for a repository + * @description Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-workflow-runs-for-repo": { + parameters: { + query?: { + actor?: components["parameters"]["actor"]; + branch?: components["parameters"]["workflow-run-branch"]; + event?: components["parameters"]["event"]; + status?: components["parameters"]["workflow-run-status"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + created?: components["parameters"]["created"]; + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + check_suite_id?: components["parameters"]["workflow-run-check-suite-id"]; + head_sha?: components["parameters"]["workflow-run-head-sha"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + workflow_runs: components["schemas"]["workflow-run"][]; + }; + }; + }; + }; + }; + /** + * Get a workflow run + * @description Gets a specific workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow-run": { + parameters: { + query?: { + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-run"]; + }; + }; + }; + }; + /** + * Delete a workflow run + * @description Deletes a specific workflow run. + * + * Anyone with write access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get the review history for a workflow run + * @description Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-reviews-for-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["environment-approvals"][]; + }; + }; + }; + }; + /** + * Approve a workflow run for a fork pull request + * @description Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see ["Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/approve-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List workflow run artifacts + * @description Lists artifacts for a workflow run. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-workflow-run-artifacts": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + name?: components["parameters"]["artifact-name"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + artifacts: components["schemas"]["artifact"][]; + }; + }; + }; + }; + }; + /** + * Get a workflow run attempt + * @description Gets a specific workflow run attempt. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow-run-attempt": { + parameters: { + query?: { + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + attempt_number: components["parameters"]["attempt-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-run"]; + }; + }; + }; + }; + /** + * List jobs for a workflow run attempt + * @description Lists jobs for a specific workflow run attempt. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-jobs-for-workflow-run-attempt": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + attempt_number: components["parameters"]["attempt-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + jobs: components["schemas"]["job"][]; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Download workflow run attempt logs + * @description Gets a redirect URL to download an archive of log files for a specific workflow run attempt. This link expires after + * 1 minute. Look for `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/download-workflow-run-attempt-logs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + attempt_number: components["parameters"]["attempt-number"]; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/runs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * Cancel a workflow run + * @description Cancels a workflow run using its `id`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/cancel-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 409: components["responses"]["conflict"]; + }; + }; + /** + * Review custom deployment protection rules for a workflow run + * @description Approve or reject custom deployment protection rules provided by a GitHub App for a workflow run. For more information, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * **Note:** GitHub Apps can only review their own custom deployment protection rules. + * To approve or reject pending deployments that are waiting for review from a specific person or team, see [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/review-custom-gates-for-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + requestBody: { + content: { + "application/json": + | components["schemas"]["review-custom-gates-comment-required"] + | components["schemas"]["review-custom-gates-state-required"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Force cancel a workflow run + * @description Cancels a workflow run and bypasses conditions that would otherwise cause a workflow execution to continue, such as an `always()` condition on a job. + * You should only use this endpoint to cancel a workflow run when the workflow run is not responding to [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel`](/rest/actions/workflow-runs#cancel-a-workflow-run). + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/force-cancel-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 409: components["responses"]["conflict"]; + }; + }; + /** + * List jobs for a workflow run + * @description Lists jobs for a workflow run. You can use parameters to narrow the list of results. For more information + * about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-jobs-for-workflow-run": { + parameters: { + query?: { + /** @description Filters jobs by their `completed_at` timestamp. `latest` returns jobs from the most recent execution of the workflow run. `all` returns all jobs for a workflow run, including from old executions of the workflow run. */ + filter?: "latest" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + jobs: components["schemas"]["job"][]; + }; + }; + }; + }; + }; + /** + * Download workflow run logs + * @description Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for + * `Location:` in the response header to find the URL for the download. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/download-workflow-run-logs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/runs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * Delete workflow run logs + * @description Deletes all logs for a workflow run. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-workflow-run-logs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get pending deployments for a workflow run + * @description Get all deployment environments for a workflow run that are waiting for protection rules to pass. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-pending-deployments-for-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pending-deployment"][]; + }; + }; + }; + }; + /** + * Review pending deployments for a workflow run + * @description Approve or reject pending deployments that are waiting on approval by a required reviewer. + * + * Required reviewers with read access to the repository contents and deployments can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/review-pending-deployments-for-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The list of environment ids to approve or reject + * @example [ + * 161171787, + * 161171795 + * ] + */ + environment_ids: number[]; + /** + * @description Whether to approve or reject deployment to the specified environments. + * @example approved + * @enum {string} + */ + state: "approved" | "rejected"; + /** + * @description A comment to accompany the deployment review + * @example Ship it! + */ + comment: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment"][]; + }; + }; + }; + }; + /** + * Re-run a workflow + * @description Re-runs your workflow run using its `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/re-run-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Whether to enable debug logging for the re-run. + * @default false + */ + enable_debug_logging?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Re-run failed jobs from a workflow run + * @description Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/re-run-workflow-failed-jobs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description Whether to enable debug logging for the re-run. + * @default false + */ + enable_debug_logging?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Get workflow run usage + * @description Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow-run-usage": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-run-usage"]; + }; + }; + }; + }; + /** + * List repository secrets + * @description Lists all secrets available in a repository without revealing their encrypted + * values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-repo-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["actions-secret"][]; + }; + }; + }; + }; + }; + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-repo-public-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + }; + /** + * Get a repository secret + * @description Gets a single repository secret without revealing its encrypted value. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-secret"]; + }; + }; + }; + }; + /** + * Create or update a repository secret + * @description Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-or-update-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/actions/secrets#get-a-repository-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete a repository secret + * @description Deletes a secret in a repository using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List repository variables + * @description Lists all repository variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-repo-variables": { + parameters: { + query?: { + per_page?: components["parameters"]["variables-per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + variables: components["schemas"]["actions-variable"][]; + }; + }; + }; + }; + }; + /** + * Create a repository variable + * @description Creates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-repo-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name: string; + /** @description The value of the variable. */ + value: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Get a repository variable + * @description Gets a specific variable in a repository. + * + * The authenticated user must have collaborator access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-repo-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-variable"]; + }; + }; + }; + }; + /** + * Delete a repository variable + * @description Deletes a repository variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-repo-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a repository variable + * @description Updates a repository variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/update-repo-variable": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: components["parameters"]["variable-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name?: string; + /** @description The value of the variable. */ + value?: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List repository workflows + * @description Lists the workflows in a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-repo-workflows": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + workflows: components["schemas"]["workflow"][]; + }; + }; + }; + }; + }; + /** + * Get a workflow + * @description Gets a specific workflow. You can replace `workflow_id` with the workflow + * file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow"]; + }; + }; + }; + }; + /** + * Disable a workflow + * @description Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/disable-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Create a workflow dispatch event + * @description You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-workflow-dispatch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The git reference for the workflow. The reference can be a branch or tag name. */ + ref: string; + /** @description Input keys and values configured in the workflow file. The maximum number of properties is 10. Any default properties configured in the workflow file will be used when `inputs` are omitted. */ + inputs?: { + [key: string]: unknown; + }; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Enable a workflow + * @description Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/enable-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List workflow runs for a workflow + * @description List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/list-workflow-runs": { + parameters: { + query?: { + actor?: components["parameters"]["actor"]; + branch?: components["parameters"]["workflow-run-branch"]; + event?: components["parameters"]["event"]; + status?: components["parameters"]["workflow-run-status"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + created?: components["parameters"]["created"]; + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + check_suite_id?: components["parameters"]["workflow-run-check-suite-id"]; + head_sha?: components["parameters"]["workflow-run-head-sha"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + workflow_runs: components["schemas"]["workflow-run"][]; + }; + }; + }; + }; + }; + /** + * Get workflow usage + * @description Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "actions/get-workflow-usage": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-usage"]; + }; + }; + }; + }; + /** + * List repository activities + * @description Lists a detailed history of changes to a repository, such as pushes, merges, force pushes, and branch changes, and associates these changes with commits and users. + * + * For more information about viewing repository activity, + * see "[Viewing activity and data for your repository](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository)." + */ + "repos/list-activities": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + /** + * @description The Git reference for the activities you want to list. + * + * The `ref` for a branch can be formatted either as `refs/heads/BRANCH_NAME` or `BRANCH_NAME`, where `BRANCH_NAME` is the name of your branch. + */ + ref?: string; + /** @description The GitHub username to use to filter by the actor who performed the activity. */ + actor?: string; + /** + * @description The time period to filter by. + * + * For example, `day` will filter for activity that occurred in the past 24 hours, and `week` will filter for activity that occurred in the past 7 days (168 hours). + */ + time_period?: "day" | "week" | "month" | "quarter" | "year"; + /** + * @description The activity type to filter by. + * + * For example, you can choose to filter by "force_push", to see all force pushes to the repository. + */ + activity_type?: + | "push" + | "force_push" + | "branch_creation" + | "branch_deletion" + | "pr_merge" + | "merge_queue_merge"; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["activity"][]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List assignees + * @description Lists the [available assignees](https://docs.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. + */ + "issues/list-assignees": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if a user can be assigned + * @description Checks if a user has permission to be assigned to an issue in this repository. + * + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + "issues/check-user-can-be-assigned": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + assignee: string; + }; + }; + responses: { + /** @description If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. */ + 204: { + content: never; + }; + /** @description Otherwise a `404` status code is returned. */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Get all autolinks of a repository + * @description Gets all autolinks that are configured for a repository. + * + * Information about autolinks are only available to repository administrators. + */ + "repos/list-autolinks": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["autolink"][]; + }; + }; + }; + }; + /** + * Create an autolink reference for a repository + * @description Users with admin access to the repository can create an autolink. + */ + "repos/create-autolink": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description This prefix appended by certain characters will generate a link any time it is found in an issue, pull request, or commit. */ + key_prefix: string; + /** @description The URL must contain `` for the reference number. `` matches different characters depending on the value of `is_alphanumeric`. */ + url_template: string; + /** + * @description Whether this autolink reference matches alphanumeric characters. If true, the `` parameter of the `url_template` matches alphanumeric characters `A-Z` (case insensitive), `0-9`, and `-`. If false, this autolink reference only matches numeric characters. + * @default true + */ + is_alphanumeric?: boolean; + }; + }; + }; + responses: { + /** @description response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/autolinks/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["autolink"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an autolink reference of a repository + * @description This returns a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + "repos/get-autolink": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + autolink_id: components["parameters"]["autolink-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["autolink"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an autolink reference from a repository + * @description This deletes a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + "repos/delete-autolink": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + autolink_id: components["parameters"]["autolink-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if automated security fixes are enabled for a repository + * @description Shows whether automated security fixes are enabled, disabled or paused for a repository. The authenticated user must have admin read access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + "repos/check-automated-security-fixes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response if dependabot is enabled */ + 200: { + content: { + "application/json": components["schemas"]["check-automated-security-fixes"]; + }; + }; + /** @description Not Found if dependabot is not enabled for the repository */ + 404: { + content: never; + }; + }; + }; + /** + * Enable automated security fixes + * @description Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + "repos/enable-automated-security-fixes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Disable automated security fixes + * @description Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/articles/configuring-automated-security-fixes)". + */ + "repos/disable-automated-security-fixes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** List branches */ + "repos/list-branches": { + parameters: { + query?: { + /** @description Setting to `true` returns only protected branches. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches. */ + protected?: boolean; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["short-branch"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Get a branch */ + "repos/get-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-with-protection"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-protection"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * + * **Note**: The list of users, apps, and teams in total is limited to 100 items. + */ + "repos/update-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Require status checks to pass before merging. Set to `null` to disable. */ + required_status_checks: { + /** @description Require branches to be up to date before merging. */ + strict: boolean; + /** + * @deprecated + * @description **Deprecated**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control. + */ + contexts: string[]; + /** @description The list of status checks to require in order to merge into this branch. */ + checks?: { + /** @description The name of the required check */ + context: string; + /** @description The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status. */ + app_id?: number; + }[]; + } | null; + /** @description Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable. */ + enforce_admins: boolean | null; + /** @description Require at least one approving review on a pull request, before merging. Set to `null` to disable. */ + required_pull_request_reviews: { + /** @description Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. */ + dismissal_restrictions?: { + /** @description The list of user `login`s with dismissal access */ + users?: string[]; + /** @description The list of team `slug`s with dismissal access */ + teams?: string[]; + /** @description The list of app `slug`s with dismissal access */ + apps?: string[]; + }; + /** @description Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. */ + dismiss_stale_reviews?: boolean; + /** @description Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) review them. */ + require_code_owner_reviews?: boolean; + /** @description Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers. */ + required_approving_review_count?: number; + /** + * @description Whether the most recent push must be approved by someone other than the person who pushed it. Default: `false`. + * @default false + */ + require_last_push_approval?: boolean; + /** @description Allow specific users, teams, or apps to bypass pull request requirements. */ + bypass_pull_request_allowances?: { + /** @description The list of user `login`s allowed to bypass pull request requirements. */ + users?: string[]; + /** @description The list of team `slug`s allowed to bypass pull request requirements. */ + teams?: string[]; + /** @description The list of app `slug`s allowed to bypass pull request requirements. */ + apps?: string[]; + }; + } | null; + /** @description Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable. */ + restrictions: { + /** @description The list of user `login`s with push access */ + users: string[]; + /** @description The list of team `slug`s with push access */ + teams: string[]; + /** @description The list of app `slug`s with push access */ + apps?: string[]; + } | null; + /** @description Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see "[Requiring a linear commit history](https://docs.github.com/github/administering-a-repository/requiring-a-linear-commit-history)" in the GitHub Help documentation. */ + required_linear_history?: boolean; + /** @description Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation." */ + allow_force_pushes?: boolean | null; + /** @description Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://docs.github.com/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation. */ + allow_deletions?: boolean; + /** @description If set to `true`, the `restrictions` branch protection settings which limits who can push will also block pushes which create new branches, unless the push is initiated by a user, team, or app which has the ability to push. Set to `true` to restrict new branch creation. Default: `false`. */ + block_creations?: boolean; + /** @description Requires all conversations on code to be resolved before a pull request can be merged into a branch that matches this rule. Set to `false` to disable. Default: `false`. */ + required_conversation_resolution?: boolean; + /** + * @description Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. Default: `false`. + * @default false + */ + lock_branch?: boolean; + /** + * @description Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing. Default: `false`. + * @default false + */ + allow_fork_syncing?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Delete branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/delete-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-admin-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + }; + }; + /** + * Set admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/set-admin-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + }; + }; + /** + * Delete admin branch protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/delete-admin-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-pull-request-review-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-pull-request-review"]; + }; + }; + }; + }; + /** + * Delete pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/delete-pull-request-review-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update pull request review protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + */ + "repos/update-pull-request-review-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. */ + dismissal_restrictions?: { + /** @description The list of user `login`s with dismissal access */ + users?: string[]; + /** @description The list of team `slug`s with dismissal access */ + teams?: string[]; + /** @description The list of app `slug`s with dismissal access */ + apps?: string[]; + }; + /** @description Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. */ + dismiss_stale_reviews?: boolean; + /** @description Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) have reviewed. */ + require_code_owner_reviews?: boolean; + /** @description Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers. */ + required_approving_review_count?: number; + /** + * @description Whether the most recent push must be approved by someone other than the person who pushed it. Default: `false` + * @default false + */ + require_last_push_approval?: boolean; + /** @description Allow specific users, teams, or apps to bypass pull request requirements. */ + bypass_pull_request_allowances?: { + /** @description The list of user `login`s allowed to bypass pull request requirements. */ + users?: string[]; + /** @description The list of team `slug`s allowed to bypass pull request requirements. */ + teams?: string[]; + /** @description The list of app `slug`s allowed to bypass pull request requirements. */ + apps?: string[]; + }; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-pull-request-review"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://docs.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * + * **Note**: You must enable branch protection to require signed commits. + */ + "repos/get-commit-signature-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + */ + "repos/create-commit-signature-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete commit signature protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + */ + "repos/delete-commit-signature-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get status checks protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-status-checks-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["status-check-policy"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove status check protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/remove-status-check-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update status check protection + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/update-status-check-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Require branches to be up to date before merging. */ + strict?: boolean; + /** + * @deprecated + * @description **Deprecated**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control. + */ + contexts?: string[]; + /** @description The list of status checks to require in order to merge into this branch. */ + checks?: { + /** @description The name of the required check */ + context: string; + /** @description The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status. */ + app_id?: number; + }[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["status-check-policy"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-all-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/set-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the status checks */ + contexts: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/add-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the status checks */ + contexts: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove status check contexts + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/remove-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the status checks */ + contexts: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists who has access to this protected branch. + * + * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + */ + "repos/get-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-restriction-policy"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Disables the ability to restrict who can push to this branch. + */ + "repos/delete-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get apps with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + "repos/get-apps-with-access-to-protected-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + "repos/set-app-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The GitHub Apps that have push access to this branch. Use the slugified version of the app name. **Note**: The list of users, apps, and teams in total is limited to 100 items. */ + apps: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified apps push access for this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + "repos/add-app-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The GitHub Apps that have push access to this branch. Use the slugified version of the app name. **Note**: The list of users, apps, and teams in total is limited to 100 items. */ + apps: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove app access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of an app to push to this branch. Only GitHub Apps that are installed on the repository and that have been granted write access to the repository contents can be added as authorized actors on a protected branch. + */ + "repos/remove-app-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The GitHub Apps that have push access to this branch. Use the slugified version of the app name. **Note**: The list of users, apps, and teams in total is limited to 100 items. */ + apps: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get teams with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. The list includes child teams. + */ + "repos/get-teams-with-access-to-protected-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + */ + "repos/set-team-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The slug values for teams */ + teams: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified teams push access for this branch. You can also give push access to child teams. + */ + "repos/add-team-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The slug values for teams */ + teams: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove team access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + */ + "repos/remove-team-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The slug values for teams */ + teams: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get users with access to the protected branch + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + */ + "repos/get-users-with-access-to-protected-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Set user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/set-user-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The username for users */ + users: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified people push access for this branch. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/add-user-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The username for users */ + users: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove user access restrictions + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a user to push to this branch. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/remove-user-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The username for users */ + users: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Rename a branch + * @description Renames a branch in a repository. + * + * **Note:** Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)". + * + * The authenticated user must have push access to the branch. If the branch is the default branch, the authenticated user must also have admin or owner permissions. + * + * In order to rename the default branch, fine-grained access tokens also need the `administration:write` repository permission. + */ + "repos/rename-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The new name of the branch. */ + new_name: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["branch-with-protection"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a check run + * @description **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + * + * In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. + */ + "checks/create": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the check. For example, "code-coverage". */ + name: string; + /** @description The SHA of the commit. */ + head_sha: string; + /** @description The URL of the integrator's site that has the full details of the check. If the integrator does not provide this, then the homepage of the GitHub app is used. */ + details_url?: string; + /** @description A reference for the run on the integrator's system. */ + external_id?: string; + /** + * @description The current status. + * @default queued + * @enum {string} + */ + status?: "queued" | "in_progress" | "completed"; + /** + * Format: date-time + * @description The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * @description **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. You cannot change a check run conclusion to `stale`, only GitHub can set this. + * @enum {string} + */ + conclusion?: + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "success" + | "skipped" + | "stale" + | "timed_out"; + /** + * Format: date-time + * @description The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** @description Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. */ + output?: { + /** @description The title of the check run. */ + title: string; + /** @description The summary of the check run. This parameter supports Markdown. **Maximum length**: 65535 characters. */ + summary: string; + /** @description The details of the check run. This parameter supports Markdown. **Maximum length**: 65535 characters. */ + text?: string; + /** @description Adds information from your analysis to specific lines of code. Annotations are visible on GitHub in the **Checks** and **Files changed** tab of the pull request. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/reference/checks#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. GitHub Actions are limited to 10 warning annotations and 10 error annotations per step. For details about how you can view annotations on GitHub, see "[About status checks](https://docs.github.com/articles/about-status-checks#checks)". */ + annotations?: { + /** @description The path of the file to add an annotation to. For example, `assets/css/main.css`. */ + path: string; + /** @description The start line of the annotation. Line numbers start at 1. */ + start_line: number; + /** @description The end line of the annotation. */ + end_line: number; + /** @description The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. Column numbers start at 1. */ + start_column?: number; + /** @description The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. */ + end_column?: number; + /** + * @description The level of the annotation. + * @enum {string} + */ + annotation_level: "notice" | "warning" | "failure"; + /** @description A short description of the feedback for these lines of code. The maximum size is 64 KB. */ + message: string; + /** @description The title that represents the annotation. The maximum size is 255 characters. */ + title?: string; + /** @description Details about this annotation. The maximum size is 64 KB. */ + raw_details?: string; + }[]; + /** @description Adds images to the output displayed in the GitHub pull request UI. */ + images?: { + /** @description The alternative text for the image. */ + alt: string; + /** @description The full URL of the image. */ + image_url: string; + /** @description A short image description. */ + caption?: string; + }[]; + }; + /** @description Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions)." */ + actions?: { + /** @description The text to be displayed on a button in the web UI. The maximum size is 20 characters. */ + label: string; + /** @description A short explanation of what this action would do. The maximum size is 40 characters. */ + description: string; + /** @description A reference for the action on the integrator's system. The maximum size is 20 characters. */ + identifier: string; + }[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + }; + /** + * Get a check run + * @description Gets a single check run using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + }; + /** + * Update a check run + * @description Updates a check run for a specific commit in a repository. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + "checks/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the check. For example, "code-coverage". */ + name?: string; + /** @description The URL of the integrator's site that has the full details of the check. */ + details_url?: string; + /** @description A reference for the run on the integrator's system. */ + external_id?: string; + /** + * Format: date-time + * @description This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * @description The current status. + * @enum {string} + */ + status?: "queued" | "in_progress" | "completed"; + /** + * @description **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. You cannot change a check run conclusion to `stale`, only GitHub can set this. + * @enum {string} + */ + conclusion?: + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "success" + | "skipped" + | "stale" + | "timed_out"; + /** + * Format: date-time + * @description The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** @description Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. */ + output?: { + /** @description **Required**. */ + title?: string; + /** @description Can contain Markdown. */ + summary: string; + /** @description Can contain Markdown. */ + text?: string; + /** @description Adds information from your analysis to specific lines of code. Annotations are visible in GitHub's pull request UI. Annotations are visible in GitHub's pull request UI. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/checks/runs#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. GitHub Actions are limited to 10 warning annotations and 10 error annotations per step. For details about annotations in the UI, see "[About status checks](https://docs.github.com/articles/about-status-checks#checks)". */ + annotations?: { + /** @description The path of the file to add an annotation to. For example, `assets/css/main.css`. */ + path: string; + /** @description The start line of the annotation. Line numbers start at 1. */ + start_line: number; + /** @description The end line of the annotation. */ + end_line: number; + /** @description The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. Column numbers start at 1. */ + start_column?: number; + /** @description The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. */ + end_column?: number; + /** + * @description The level of the annotation. + * @enum {string} + */ + annotation_level: "notice" | "warning" | "failure"; + /** @description A short description of the feedback for these lines of code. The maximum size is 64 KB. */ + message: string; + /** @description The title that represents the annotation. The maximum size is 255 characters. */ + title?: string; + /** @description Details about this annotation. The maximum size is 64 KB. */ + raw_details?: string; + }[]; + /** @description Adds images to the output displayed in the GitHub pull request UI. */ + images?: { + /** @description The alternative text for the image. */ + alt: string; + /** @description The full URL of the image. */ + image_url: string; + /** @description A short image description. */ + caption?: string; + }[]; + }; + /** @description Possible further actions the integrator can perform, which a user may trigger. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://docs.github.com/rest/guides/using-the-rest-api-to-interact-with-checks#check-runs-and-requested-actions)." */ + actions?: { + /** @description The text to be displayed on a button in the web UI. The maximum size is 20 characters. */ + label: string; + /** @description A short explanation of what this action would do. The maximum size is 40 characters. */ + description: string; + /** @description A reference for the action on the integrator's system. The maximum size is 20 characters. */ + identifier: string; + }[]; + } & ( + | { + /** @enum {unknown} */ + status?: "completed"; + [key: string]: unknown; + } + | { + /** @enum {unknown} */ + status?: "queued" | "in_progress"; + [key: string]: unknown; + } + ); + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + }; + /** + * List check run annotations + * @description Lists annotations for a check run using the annotation `id`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/list-annotations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["check-annotation"][]; + }; + }; + }; + }; + /** + * Rerequest a check run + * @description Triggers GitHub to rerequest an existing check run, without pushing new code to a repository. This endpoint will trigger the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) event with the action `rerequested`. When a check run is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * For more information about how to re-run GitHub Actions jobs, see "[Re-run a job from a workflow run](https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run)". + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + "checks/rerequest-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Forbidden if the check run is not rerequestable or doesn't belong to the authenticated GitHub App */ + 403: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + 404: components["responses"]["not_found"]; + /** @description Validation error if the check run is not rerequestable */ + 422: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Create a check suite + * @description Creates a check suite manually. By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/checks/runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites)". + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + "checks/create-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The sha of the head commit. */ + head_sha: string; + }; + }; + }; + responses: { + /** @description Response when the suite already exists */ + 200: { + content: { + "application/json": components["schemas"]["check-suite"]; + }; + }; + /** @description Response when the suite was created */ + 201: { + content: { + "application/json": components["schemas"]["check-suite"]; + }; + }; + }; + }; + /** + * Update repository preferences for check suites + * @description Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/checks/suites#create-a-check-suite). + * You must have admin permissions in the repository to set preferences for check suites. + */ + "checks/set-suites-preferences": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default. */ + auto_trigger_checks?: { + /** @description The `id` of the GitHub App. */ + app_id: number; + /** + * @description Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository, or `false` to disable them. + * @default true + */ + setting: boolean; + }[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["check-suite-preference"]; + }; + }; + }; + }; + /** + * Get a check suite + * @description Gets a single check suite using its `id`. + * + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/get-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_suite_id: components["parameters"]["check-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["check-suite"]; + }; + }; + }; + }; + /** + * List check runs in a check suite + * @description Lists check runs for a check suite using its `id`. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/list-for-suite": { + parameters: { + query?: { + check_name?: components["parameters"]["check-name"]; + status?: components["parameters"]["status"]; + /** @description Filters check runs by their `completed_at` timestamp. `latest` returns the most recent check runs. */ + filter?: "latest" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_suite_id: components["parameters"]["check-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + check_runs: components["schemas"]["check-run"][]; + }; + }; + }; + }; + }; + /** + * Rerequest a check suite + * @description Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * OAuth apps and personal access tokens (classic) cannot use this endpoint. + */ + "checks/rerequest-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_suite_id: components["parameters"]["check-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * List code scanning alerts for a repository + * @description Lists all open code scanning alerts for the default branch (usually `main` + * or `master`). You must use an access token with the `security_events` scope to use + * this endpoint with private repos, the `public_repo` scope also grants permission to read + * security events on public repos only. GitHub Apps must have the `security_events` read + * permission to use this endpoint. + * + * The response includes a `most_recent_instance` object. + * This provides details of the most recent instance of this alert + * for the default branch or for the specified Git reference + * (if you used `ref` in the request). + */ + "code-scanning/list-alerts-for-repo": { + parameters: { + query?: { + tool_name?: components["parameters"]["tool-name"]; + tool_guid?: components["parameters"]["tool-guid"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + ref?: components["parameters"]["git-ref"]; + direction?: components["parameters"]["direction"]; + /** @description The property by which to sort the results. . `number` is deprecated - we recommend that you use `created` instead. */ + sort?: "created" | "number" | "updated"; + /** @description Set to `open`, `closed, `fixed`, or `dismissed` to list code scanning alerts in a specific state. */ + state?: components["schemas"]["code-scanning-alert-state"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert-items"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a code scanning alert + * @description Gets a single code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Update a code scanning alert + * @description Updates the status of a single code scanning alert. + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/update-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + state: components["schemas"]["code-scanning-alert-set-state"]; + dismissed_reason?: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List instances of a code scanning alert + * @description Lists all instances of the specified code scanning alert. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/list-alert-instances": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + ref?: components["parameters"]["git-ref"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert-instance"][]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List code scanning analyses for a repository + * @description Lists the details of all code scanning analyses for a repository, + * starting with the most recent. + * The response is paginated and you can use the `page` and `per_page` parameters + * to list the analyses you're interested in. + * By default 30 analyses are listed per page. + * + * The `rules_count` field in the response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * **Deprecation notice**: + * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/list-recent-analyses": { + parameters: { + query?: { + tool_name?: components["parameters"]["tool-name"]; + tool_guid?: components["parameters"]["tool-guid"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + /** @description The Git reference for the analyses you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. */ + ref?: components["schemas"]["code-scanning-ref"]; + /** @description Filter analyses belonging to the same SARIF upload. */ + sarif_id?: components["schemas"]["code-scanning-analysis-sarif-id"]; + direction?: components["parameters"]["direction"]; + /** @description The property by which to sort the results. */ + sort?: "created"; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-analysis"][]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a code scanning analysis for a repository + * @description Gets a specified code scanning analysis for a repository. + * + * The default JSON response contains fields that describe the analysis. + * This includes the Git reference and commit SHA to which the analysis relates, + * the datetime of the analysis, the name of the code scanning tool, + * and the number of alerts. + * + * The `rules_count` field in the default response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/sarif+json`**: Instead of returning a summary of the analysis, this endpoint returns a subset of the analysis data that was uploaded. The data is formatted as [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). It also returns additional data such as the `github/alertNumber` and `github/alertUrl` properties. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-analysis": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation. */ + analysis_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-analysis"]; + "application/json+sarif": { + [key: string]: unknown; + }; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Delete a code scanning analysis from a repository + * @description Deletes a specified code scanning analysis from a repository. + * + * You can delete one analysis at a time. + * To delete a series of analyses, start with the most recent analysis and work backwards. + * Conceptually, the process is similar to the undo function in a text editor. + * + * When you list the analyses for a repository, + * one or more will be identified as deletable in the response: + * + * ``` + * "deletable": true + * ``` + * + * An analysis is deletable when it's the most recent in a set of analyses. + * Typically, a repository will have multiple sets of analyses + * for each enabled code scanning tool, + * where a set is determined by a unique combination of analysis values: + * + * * `ref` + * * `tool` + * * `category` + * + * If you attempt to delete an analysis that is not the most recent in a set, + * you'll get a 400 response with the message: + * + * ``` + * Analysis specified is not deletable. + * ``` + * + * The response from a successful `DELETE` operation provides you with + * two alternative URLs for deleting the next analysis in the set: + * `next_analysis_url` and `confirm_delete_url`. + * Use the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis + * in a set. This is a useful option if you want to preserve at least one analysis + * for the specified tool in your repository. + * Use the `confirm_delete_url` URL if you are content to remove all analyses for a tool. + * When you delete the last analysis in a set, the value of `next_analysis_url` and `confirm_delete_url` + * in the 200 response is `null`. + * + * As an example of the deletion process, + * let's imagine that you added a workflow that configured a particular code scanning tool + * to analyze the code in a repository. This tool has added 15 analyses: + * 10 on the default branch, and another 5 on a topic branch. + * You therefore have two separate sets of analyses for this tool. + * You've now decided that you want to remove all of the analyses for the tool. + * To do this you must make 15 separate deletion requests. + * To start, you must find an analysis that's identified as deletable. + * Each set of analyses always has one that's identified as deletable. + * Having found the deletable analysis for one of the two sets, + * delete this analysis and then continue deleting the next analysis in the set until they're all deleted. + * Then repeat the process for the second set. + * The procedure therefore consists of a nested loop: + * + * **Outer loop**: + * * List the analyses for the repository, filtered by tool. + * * Parse this list to find a deletable analysis. If found: + * + * **Inner loop**: + * * Delete the identified analysis. + * * Parse the response for the value of `confirm_delete_url` and, if found, use this in the next iteration. + * + * The above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/delete-analysis": { + parameters: { + query?: { + /** @description Allow deletion if the specified analysis is the last in a set. If you attempt to delete the final analysis in a set without setting this parameter to `true`, you'll get a 400 response with the message: `Analysis is last of its type and deletion may result in the loss of historical alert data. Please specify confirm_delete.` */ + confirm_delete?: string | null; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation. */ + analysis_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-analysis-deletion"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List CodeQL databases for a repository + * @description Lists the CodeQL databases that are available in a repository. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/list-codeql-databases": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-codeql-database"][]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a CodeQL database for a repository + * @description Gets a CodeQL database for a language in a repository. + * + * By default this endpoint returns JSON metadata about the CodeQL database. To + * download the CodeQL database binary content, set the `Accept` header of the request + * to [`application/zip`](https://docs.github.com/rest/overview/media-types), and make sure + * your HTTP client is configured to follow redirects or use the `Location` header + * to make a second request to get the redirect URL. + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-codeql-database": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The language of the CodeQL database. */ + language: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-codeql-database"]; + }; + }; + 302: components["responses"]["found"]; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a code scanning default setup configuration + * @description Gets a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-default-setup": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-default-setup"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Update a code scanning default setup configuration + * @description Updates a code scanning default setup configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/update-default-setup": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["code-scanning-default-setup-update"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["code-scanning-default-setup-update-response"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["code_scanning_conflict"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Upload an analysis as SARIF data + * @description Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. For troubleshooting information, see "[Troubleshooting SARIF uploads](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif)." + * + * There are two places where you can upload code scanning results. + * - If you upload to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)." + * - If you upload to a branch, for example `--ref refs/heads/my-branch`, then the results appear in the **Security** tab for your repository. For more information, see "[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)." + * + * You must compress the SARIF-formatted analysis data that you want to upload, using `gzip`, and then encode it as a Base64 format string. For example: + * + * ``` + * gzip -c analysis-data.sarif | base64 -w0 + * ``` + * + * SARIF upload supports a maximum number of entries per the following data objects, and an analysis will be rejected if any of these objects is above its maximum value. For some objects, there are additional values over which the entries will be ignored while keeping the most important entries whenever applicable. + * To get the most out of your analysis when it includes data above the supported limits, try to optimize the analysis configuration. For example, for the CodeQL tool, identify and remove the most noisy queries. For more information, see "[SARIF results exceed one or more limits](https://docs.github.com/code-security/code-scanning/troubleshooting-sarif/results-exceed-limit)." + * + * + * | **SARIF data** | **Maximum values** | **Additional limits** | + * |----------------------------------|:------------------:|----------------------------------------------------------------------------------| + * | Runs per file | 20 | | + * | Results per run | 25,000 | Only the top 5,000 results will be included, prioritized by severity. | + * | Rules per run | 25,000 | | + * | Tool extensions per run | 100 | | + * | Thread Flow Locations per result | 10,000 | Only the top 1,000 Thread Flow Locations will be included, using prioritization. | + * | Location per result | 1,000 | Only 100 locations will be included. | + * | Tags per rule | 20 | Only 10 tags will be included. | + * + * + * The `202 Accepted` response includes an `id` value. + * You can use this ID to check the status of the upload by using it in the `/sarifs/{sarif_id}` endpoint. + * For more information, see "[Get information about a SARIF upload](/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/upload-sarif": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + commit_sha: components["schemas"]["code-scanning-analysis-commit-sha"]; + ref: components["schemas"]["code-scanning-ref-full"]; + sarif: components["schemas"]["code-scanning-analysis-sarif-file"]; + /** + * Format: uri + * @description The base directory used in the analysis, as it appears in the SARIF file. + * This property is used to convert file paths from absolute to relative, so that alerts can be mapped to their correct location in the repository. + * @example file:///github/workspace/ + */ + checkout_uri?: string; + /** + * Format: date-time + * @description The time that the analysis run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** @description The name of the tool used to generate the code scanning analysis. If this parameter is not used, the tool name defaults to "API". If the uploaded SARIF contains a tool GUID, this will be available for filtering using the `tool_guid` parameter of operations such as `GET /repos/{owner}/{repo}/code-scanning/alerts`. */ + tool_name?: string; + /** + * @description Whether the SARIF file will be validated according to the code scanning specifications. + * This parameter is intended to help integrators ensure that the uploaded SARIF files are correctly rendered by code scanning. + */ + validate?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["code-scanning-sarifs-receipt"]; + }; + }; + /** @description Bad Request if the sarif field is invalid */ + 400: { + content: never; + }; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + /** @description Payload Too Large if the sarif field is too large */ + 413: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get information about a SARIF upload + * @description Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see "[Get a code scanning analysis for a repository](/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository)." + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint with private or public repositories, or the `public_repo` scope to use this endpoint with only public repositories. + */ + "code-scanning/get-sarif": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The SARIF ID obtained after uploading. */ + sarif_id: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-sarifs-status"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + /** @description Not Found if the sarif id does not match any upload */ + 404: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List CODEOWNERS errors + * @description List any syntax errors that are detected in the CODEOWNERS + * file. + * + * For more information about the correct CODEOWNERS syntax, + * see "[About code owners](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)." + */ + "repos/codeowners-errors": { + parameters: { + query?: { + /** @description A branch, tag or commit name used to determine which version of the CODEOWNERS file to use. Default: the repository's default branch (e.g. `main`) */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codeowners-errors"]; + }; + }; + /** @description Resource not found */ + 404: { + content: never; + }; + }; + }; + /** + * List codespaces in a repository for the authenticated user + * @description Lists the codespaces associated to a specified repository and the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/list-in-repository-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create a codespace in a repository + * @description Creates a codespace owned by the authenticated user in the specified repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/create-with-repo-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Git ref (typically a branch name) for this codespace */ + ref?: string; + /** @description The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided. */ + location?: string; + /** + * @description The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is being deprecated. + * @enum {string} + */ + geo?: "EuropeWest" | "SoutheastAsia" | "UsEast" | "UsWest"; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Whether to authorize requested permissions from devcontainer.json */ + multi_repo_permissions_opt_out?: boolean; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). */ + retention_period_minutes?: number; + } | null; + }; + }; + responses: { + /** @description Response when the codespace was successfully created */ + 201: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + /** @description Response when the codespace creation partially failed but is being retried in the background */ + 202: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List devcontainer configurations in a repository for the authenticated user + * @description Lists the devcontainer.json files associated with a specified repository and the authenticated user. These files + * specify launchpoint configurations for codespaces created within the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/list-devcontainers-in-repository-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + devcontainers: { + path: string; + name?: string; + display_name?: string; + }[]; + }; + }; + }; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List available machine types for a repository + * @description List the machine types available for a given repository based on its configuration. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/repo-machines-for-authenticated-user": { + parameters: { + query?: { + /** @description The location to check for available machines. Assigned by IP if not provided. */ + location?: string; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description The branch or commit to check for prebuild availability and devcontainer restrictions. */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + machines: components["schemas"]["codespace-machine"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get default attributes for a codespace + * @description Gets the default attributes for codespaces created by the user with the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/pre-flight-with-repo-for-authenticated-user": { + parameters: { + query?: { + /** @description The branch or commit to check for a default devcontainer path. If not specified, the default branch will be checked. */ + ref?: string; + /** @description An alternative IP for default location auto-detection, such as when proxying a request. */ + client_ip?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response when a user is able to create codespaces from the repository. */ + 200: { + content: { + "application/json": { + billable_owner?: components["schemas"]["simple-user"]; + defaults?: { + location: string; + devcontainer_path: string | null; + }; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if permissions defined by a devcontainer have been accepted by the authenticated user + * @description Checks whether the permissions defined by a given devcontainer configuration have been accepted by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/check-permissions-for-devcontainer": { + parameters: { + query: { + /** @description The git reference that points to the location of the devcontainer configuration to use for the permission check. The value of `ref` will typically be a branch name (`heads/BRANCH_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. */ + ref: string; + /** @description Path to the devcontainer.json configuration to use for the permission check. */ + devcontainer_path: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response when the permission check is successful */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-permissions-check-for-devcontainer"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List repository secrets + * @description Lists all development environment secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/list-repo-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["repo-codespaces-secret"][]; + }; + }; + }; + }; + }; + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/get-repo-public-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-public-key"]; + }; + }; + }; + }; + /** + * Get a repository secret + * @description Gets a single repository development environment secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/get-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repo-codespaces-secret"]; + }; + }; + }; + }; + /** + * Create or update a repository secret + * @description Creates or updates a repository development environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/create-or-update-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete a repository secret + * @description Deletes a development environment secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "codespaces/delete-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List repository collaborators + * @description For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * Organization members with write, maintain, or admin privileges on the organization-owned repository can use this endpoint. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + "repos/list-collaborators": { + parameters: { + query?: { + /** @description Filter collaborators returned by their affiliation. `outside` means all outside collaborators of an organization-owned repository. `direct` means all collaborators with permissions to an organization-owned repository, regardless of organization membership status. `all` means all collaborators the authenticated user can see. */ + affiliation?: "outside" | "direct" | "all"; + /** @description Filter collaborators by the permissions they have on the repository. If not specified, all collaborators will be returned. */ + permission?: "pull" | "triage" | "push" | "maintain" | "admin"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["collaborator"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if a user is a repository collaborator + * @description For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + * + * The authenticated user must have push access to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:org` and `repo` scopes to use this endpoint. + */ + "repos/check-collaborator": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response if user is a collaborator */ + 204: { + content: never; + }; + /** @description Not Found if user is not a collaborator */ + 404: { + content: never; + }; + }; + }; + /** + * Add a repository collaborator + * @description This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Adding an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + * + * For more information on permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with: + * + * ``` + * Cannot assign {member} permission of {role name} + * ``` + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [API](https://docs.github.com/rest/collaborators/invitations). + * + * **Updating an existing collaborator's permission level** + * + * The endpoint can also be used to change the permissions of an existing collaborator without first removing and re-adding the collaborator. To change the permissions, use the same endpoint and pass a different `permission` parameter. The response will be a `204`, with no other indication that the permission level changed. + * + * **Rate limits** + * + * You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + */ + "repos/add-collaborator": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant the collaborator. **Only valid on organization-owned repositories.** We accept the following permissions to be set: `pull`, `triage`, `push`, `maintain`, `admin` and you can also specify a custom repository role name, if the owning organization has defined any. + * @default push + */ + permission?: string; + }; + }; + }; + responses: { + /** @description Response when a new invitation is created */ + 201: { + content: { + "application/json": components["schemas"]["repository-invitation"]; + }; + }; + /** + * @description Response when: + * - an existing collaborator is added as a collaborator + * - an organization member is added as an individual collaborator + * - an existing team member (whose team is also a repository collaborator) is added as an individual collaborator + */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove a repository collaborator + * @description Removes a collaborator from a repository. + * + * To use this endpoint, the authenticated user must either be an administrator of the repository or target themselves for removal. + * + * This endpoint also: + * - Cancels any outstanding invitations + * - Unasigns the user from any issues + * - Removes access to organization projects if the user is not an organization member and is not a collaborator on any other organization repositories. + * - Unstars the repository + * - Updates access permissions to packages + * + * Removing a user as a collaborator has the following effects on forks: + * - If the user had access to a fork through their membership to this repository, the user will also be removed from the fork. + * - If the user had their own fork of the repository, the fork will be deleted. + * - If the user still has read access to the repository, open pull requests by this user from a fork will be denied. + * + * **Note**: A user can still have access to the repository through organization permissions like base repository permissions. + * + * Although the API responds immediately, the additional permission updates might take some extra time to complete in the background. + * + * For more information on fork permissions, see "[About permissions and visibility of forks](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/about-permissions-and-visibility-of-forks)". + */ + "repos/remove-collaborator": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description No Content when collaborator was removed from the repository. */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get repository permissions for a user + * @description Checks the repository permission of a collaborator. The possible repository + * permissions are `admin`, `write`, `read`, and `none`. + * + * *Note*: The `permission` attribute provides the legacy base roles of `admin`, `write`, `read`, and `none`, where the + * `maintain` role is mapped to `write` and the `triage` role is mapped to `read`. To determine the role assigned to the + * collaborator, see the `role_name` attribute, which will provide the full role name, including custom roles. The + * `permissions` hash can also be used to determine which base level of access the collaborator has to the repository. + */ + "repos/get-collaborator-permission-level": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description if user has admin permissions */ + 200: { + content: { + "application/json": components["schemas"]["repository-collaborator-permission"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List commit comments for a repository + * @description Lists the commit comments for a specified repository. Comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/list-commit-comments-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["commit-comment"][]; + }; + }; + }; + }; + /** + * Get a commit comment + * @description Gets a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/get-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a commit comment */ + "repos/delete-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a commit comment + * @description Updates the contents of a specified commit comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/update-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List reactions for a commit comment + * @description List the reactions to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + "reactions/list-for-commit-comment": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a commit comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create reaction for a commit comment + * @description Create a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). A response with an HTTP `200` status means that you already added the reaction type to this commit comment. + */ + "reactions/create-for-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the commit comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a commit comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). + */ + "reactions/delete-for-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List commits + * @description **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/list-commits": { + parameters: { + query?: { + /** @description SHA or branch to start listing commits from. Default: the repository’s default branch (usually `main`). */ + sha?: string; + /** @description Only commits containing this file path will be returned. */ + path?: string; + /** @description GitHub username or email address to use to filter by commit author. */ + author?: string; + /** @description GitHub username or email address to use to filter by commit committer. */ + committer?: string; + since?: components["parameters"]["since"]; + /** @description Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + until?: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["commit"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List branches for HEAD commit + * @description Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + */ + "repos/list-branches-for-head-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-short"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List commit comments + * @description Lists the comments for a specified commit. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/list-comments-for-commit": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["commit-comment"][]; + }; + }; + }; + }; + /** + * Create a commit comment + * @description Create a comment for a commit using its `:commit_sha`. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "repos/create-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment. */ + body: string; + /** @description Relative path of the file to comment on. */ + path?: string; + /** @description Line index in the diff to comment on. */ + position?: number; + /** @description **Deprecated**. Use **position** parameter instead. Line number in the file to comment on. */ + line?: number; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["commit-comment"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List pull requests associated with a commit + * @description Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, will only return open pull requests associated with the commit. + * + * To list the open or merged pull requests associated with a branch, you can set the `commit_sha` parameter to the branch name. + */ + "repos/list-pull-requests-associated-with-commit": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-simple"][]; + }; + }; + }; + }; + /** + * Get a commit + * @description Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * **Note:** If there are more than 300 files in the commit diff and the default JSON media type is requested, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." Pagination query parameters are not supported for these media types. + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. Larger diffs may time out and return a 5xx status code. + * - **`application/vnd.github.sha`**: Returns the commit's SHA-1 hash. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/get-commit": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List check runs for a Git reference + * @description Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * If there are more than 1000 check suites on a single git reference, this endpoint will limit check runs to the 1000 most recent check suites. To iterate over all possible check runs, use the [List check suites for a Git reference](https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference) endpoint and provide the `check_suite_id` parameter to the [List check runs in a check suite](https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite) endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/list-for-ref": { + parameters: { + query?: { + check_name?: components["parameters"]["check-name"]; + status?: components["parameters"]["status"]; + /** @description Filters check runs by their `completed_at` timestamp. `latest` returns the most recent check runs. */ + filter?: "latest" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + app_id?: number; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + check_runs: components["schemas"]["check-run"][]; + }; + }; + }; + }; + }; + /** + * List check suites for a Git reference + * @description Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. + * + * **Note:** The endpoints to manage checks only look for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository. + */ + "checks/list-suites-for-ref": { + parameters: { + query?: { + /** + * @description Filters check suites by GitHub App `id`. + * @example 1 + */ + app_id?: number; + check_name?: components["parameters"]["check-name"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + check_suites: components["schemas"]["check-suite"][]; + }; + }; + }; + }; + }; + /** + * Get the combined status for a specific reference + * @description Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + */ + "repos/get-combined-status-for-ref": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["combined-commit-status"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List commit statuses for a reference + * @description Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + */ + "repos/list-commit-statuses-for-ref": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["status"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + }; + }; + /** + * Get community profile metrics + * @description Returns all community profile metrics for a repository. The repository cannot be a fork. + * + * The returned metrics include an overall health score, the repository description, the presence of documentation, the + * detected code of conduct, the detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + * README, and CONTRIBUTING files. + * + * The `health_percentage` score is defined as a percentage of how many of + * the recommended community health files are present. For more information, see + * "[About community profiles for public repositories](https://docs.github.com/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories)." + * + * `content_reports_enabled` is only returned for organization-owned repositories. + */ + "repos/get-community-profile-metrics": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["community-profile"]; + }; + }; + }; + }; + /** + * Compare two commits + * @description Compares two commits against one another. You can compare branches in the same repository, or you can compare branches that exist in different repositories within the same repository network, including fork branches. For more information about how to view a repository's network, see "[Understanding connections between repositories](https://docs.github.com/repositories/viewing-activity-and-data-for-your-repository/understanding-connections-between-repositories)." + * + * This endpoint is equivalent to running the `git log BASE..HEAD` command, but it returns commits in a different order. The `git log BASE..HEAD` command returns commits in reverse chronological order, whereas the API returns commits in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.diff`**: Returns the diff of the commit. + * - **`application/vnd.github.patch`**: Returns the patch of the commit. Diffs with binary data will have no `patch` property. + * + * The API response includes details about the files that were changed between the two commits. This includes the status of the change (if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * When calling this endpoint without any paging parameter (`per_page` or `page`), the returned list is limited to 250 commits, and the last commit in the list is the most recent of the entire comparison. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, use a query parameter (`per_page` or `page`) to paginate the results. When using pagination: + * + * - The list of changed files is only shown on the first page of results, but it includes all changed files for the entire comparison. + * - The results are returned in chronological order, but the last commit in the returned list may not be the most recent one in the entire set if there are more pages of results. + * + * For more information on working with pagination, see "[Using pagination in the REST API](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The `verification` object includes the following fields: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/compare-commits-with-basehead": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The base branch and head branch to compare. This parameter expects the format `BASE...HEAD`. Both must be branch names in `repo`. To compare with a branch that exists in a different repository in the same network as `repo`, the `basehead` parameter expects the format `USERNAME:BASE...USERNAME:HEAD`. */ + basehead: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comparison"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get repository content + * @description Gets the contents of a file or directory in a repository. Specify the file path or directory with the `path` parameter. If you omit the `path` parameter, you will receive the contents of the repository's root directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents for files and symlinks. + * - **`application/vnd.github.html+json`**: Returns the file contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + * - **`application/vnd.github.object+json`**: Returns the contents in a consistent object format regardless of the content type. For example, instead of an array of objects for a directory, the response will be an object with an `entries` attribute containing the array of objects. + * + * If the content is a directory, the response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + * + * If the content is a symlink and the symlink's target is a normal file in the repository, then the API responds with the content of the file. Otherwise, the API responds with an object describing the symlink itself. + * + * If the content is a submodule, the `submodule_git_url` field identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + * + * **Notes**: + * + * - To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/git/trees#get-a-tree). + * - This API has an upper limit of 1,000 files for a directory. If you need to retrieve + * more files, use the [Git Trees API](https://docs.github.com/rest/git/trees#get-a-tree). + * - Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. + * - If the requested file's size is: + * - 1 MB or smaller: All features of this endpoint are supported. + * - Between 1-100 MB: Only the `raw` or `object` custom media types are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty + * string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * - Greater than 100 MB: This endpoint is not supported. + */ + "repos/get-content": { + parameters: { + query?: { + /** @description The name of the commit/branch/tag. Default: the repository’s default branch. */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description path parameter */ + path: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/vnd.github.object": components["schemas"]["content-tree"]; + "application/json": + | components["schemas"]["content-directory"] + | components["schemas"]["content-file"] + | components["schemas"]["content-symlink"] + | components["schemas"]["content-submodule"]; + }; + }; + 302: components["responses"]["found"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update file contents + * @description Creates a new file or replaces an existing file in a repository. + * + * **Note:** If you use this endpoint and the "[Delete a file](https://docs.github.com/rest/repos/contents/#delete-a-file)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The `workflow` scope is also required in order to modify files in the `.github/workflows` directory. + */ + "repos/create-or-update-file-contents": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description path parameter */ + path: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The commit message. */ + message: string; + /** @description The new file content, using Base64 encoding. */ + content: string; + /** @description **Required if you are updating a file**. The blob SHA of the file being replaced. */ + sha?: string; + /** @description The branch name. Default: the repository’s default branch. */ + branch?: string; + /** @description The person that committed the file. Default: the authenticated user. */ + committer?: { + /** @description The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted. */ + name: string; + /** @description The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted. */ + email: string; + /** @example "2013-01-05T13:13:22+05:00" */ + date?: string; + }; + /** @description The author of the file. Default: The `committer` or the authenticated user if you omit `committer`. */ + author?: { + /** @description The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted. */ + name: string; + /** @description The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted. */ + email: string; + /** @example "2013-01-15T17:13:22+05:00" */ + date?: string; + }; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["file-commit"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["file-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a file + * @description Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + * + * **Note:** If you use this endpoint and the "[Create or update file contents](https://docs.github.com/rest/repos/contents/#create-or-update-file-contents)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. + */ + "repos/delete-file": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description path parameter */ + path: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The commit message. */ + message: string; + /** @description The blob SHA of the file being deleted. */ + sha: string; + /** @description The branch name. Default: the repository’s default branch */ + branch?: string; + /** @description object containing information about the committer. */ + committer?: { + /** @description The name of the author (or committer) of the commit */ + name?: string; + /** @description The email of the author (or committer) of the commit */ + email?: string; + }; + /** @description object containing information about the author. */ + author?: { + /** @description The name of the author (or committer) of the commit */ + name?: string; + /** @description The email of the author (or committer) of the commit */ + email?: string; + }; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["file-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List repository contributors + * @description Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + */ + "repos/list-contributors": { + parameters: { + query?: { + /** @description Set to `1` or `true` to include anonymous contributors in results. */ + anon?: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description If repository contains content */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["contributor"][]; + }; + }; + /** @description Response if repository is empty */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List Dependabot alerts for a repository + * @description OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "dependabot/list-alerts-for-repo": { + parameters: { + query?: { + state?: components["parameters"]["dependabot-alert-comma-separated-states"]; + severity?: components["parameters"]["dependabot-alert-comma-separated-severities"]; + ecosystem?: components["parameters"]["dependabot-alert-comma-separated-ecosystems"]; + package?: components["parameters"]["dependabot-alert-comma-separated-packages"]; + manifest?: components["parameters"]["dependabot-alert-comma-separated-manifests"]; + scope?: components["parameters"]["dependabot-alert-scope"]; + sort?: components["parameters"]["dependabot-alert-sort"]; + direction?: components["parameters"]["direction"]; + /** + * @deprecated + * @description **Deprecated**. Page number of the results to fetch. Use cursor-based pagination with `before` or `after` instead. + */ + page?: number; + /** + * @deprecated + * @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." + */ + per_page?: number; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + first?: components["parameters"]["pagination-first"]; + last?: components["parameters"]["pagination-last"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get a Dependabot alert + * @description OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "dependabot/get-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["dependabot-alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a Dependabot alert + * @description The authenticated user must have access to security alerts for the repository to use this endpoint. For more information, see "[Granting access to security alerts](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)." + * + * OAuth app tokens and personal access tokens (classic) need the `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "dependabot/update-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["dependabot-alert-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state of the Dependabot alert. + * A `dismissed_reason` must be provided when setting the state to `dismissed`. + * @enum {string} + */ + state: "dismissed" | "open"; + /** + * @description **Required when `state` is `dismissed`.** A reason for dismissing the alert. + * @enum {string} + */ + dismissed_reason?: + | "fix_started" + | "inaccurate" + | "no_bandwidth" + | "not_used" + | "tolerable_risk"; + /** @description An optional comment associated with dismissing the alert. */ + dismissed_comment?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-alert"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List repository secrets + * @description Lists all secrets available in a repository without revealing their encrypted + * values. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependabot/list-repo-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["dependabot-secret"][]; + }; + }; + }; + }; + }; + /** + * Get a repository public key + * @description Gets your public key, which you need to encrypt secrets. You need to + * encrypt a secret before you can create or update secrets. Anyone with read access + * to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint if the repository is private. + */ + "dependabot/get-repo-public-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-public-key"]; + }; + }; + }; + }; + /** + * Get a repository secret + * @description Gets a single repository secret without revealing its encrypted value. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependabot/get-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-secret"]; + }; + }; + }; + }; + /** + * Create or update a repository secret + * @description Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependabot/create-or-update-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/dependabot/secrets#get-a-repository-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete a repository secret + * @description Deletes a secret in a repository using the secret name. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependabot/delete-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get a diff of the dependencies between commits + * @description Gets the diff of the dependency changes between two commits of a repository, based on the changes to the dependency manifests made in those commits. + */ + "dependency-graph/diff-range": { + parameters: { + query?: { + name?: components["parameters"]["manifest-path"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The base and head Git revisions to compare. The Git revisions will be resolved to commit SHAs. Named revisions will be resolved to their corresponding HEAD commits, and an appropriate merge base will be determined. This parameter expects the format `{base}...{head}`. */ + basehead: string; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["dependency-graph-diff"]; + }; + }; + 403: components["responses"]["dependency_review_forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Export a software bill of materials (SBOM) for a repository. + * @description Exports the software bill of materials (SBOM) for a repository in SPDX JSON format. + */ + "dependency-graph/export-sbom": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["dependency-graph-spdx-sbom"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a snapshot of dependencies for a repository + * @description Create a new snapshot of a repository's dependencies. + * + * The authenticated user must have access to the repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "dependency-graph/create-repository-snapshot": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["snapshot"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": { + /** @description ID of the created snapshot. */ + id: number; + /** @description The time at which the snapshot was created. */ + created_at: string; + /** @description Either "SUCCESS", "ACCEPTED", or "INVALID". "SUCCESS" indicates that the snapshot was successfully created and the repository's dependencies were updated. "ACCEPTED" indicates that the snapshot was successfully created, but the repository's dependencies were not updated. "INVALID" indicates that the snapshot was malformed. */ + result: string; + /** @description A message providing further details about the result, such as why the dependencies were not updated. */ + message: string; + }; + }; + }; + }; + }; + /** + * List deployments + * @description Simple filtering of deployments is available via query parameters: + */ + "repos/list-deployments": { + parameters: { + query?: { + /** @description The SHA recorded at creation time. */ + sha?: string; + /** @description The name of the ref. This can be a branch, tag, or SHA. */ + ref?: string; + /** @description The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). */ + task?: string; + /** @description The name of the environment that was deployed to (e.g., `staging` or `production`). */ + environment?: string | null; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["deployment"][]; + }; + }; + }; + }; + /** + * Create a deployment + * @description Deployments offer a few configurable parameters with certain defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + * before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + * makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + * return a failure response. + * + * By default, [commit statuses](https://docs.github.com/rest/commits/statuses) for every submitted context must be in a `success` + * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + * not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + * field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + * application with debugging enabled. + * + * Merged branch response: + * + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + * a deployment. This auto-merge happens when: + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful + * response. + * + * Merge conflict response: + * + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * Failed commit status checks: + * + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + "repos/create-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The ref to deploy. This can be a branch, tag, or SHA. */ + ref: string; + /** + * @description Specifies a task to execute (e.g., `deploy` or `deploy:migrations`). + * @default deploy + */ + task?: string; + /** + * @description Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch. + * @default true + */ + auto_merge?: boolean; + /** @description The [status](https://docs.github.com/rest/commits/statuses) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts. */ + required_contexts?: string[]; + payload?: OneOf< + [ + { + [key: string]: unknown; + }, + string, + ] + >; + /** + * @description Name for the target deployment environment (e.g., `production`, `staging`, `qa`). + * @default production + */ + environment?: string; + /** + * @description Short description of the deployment. + * @default + */ + description?: string | null; + /** + * @description Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false` + * @default false + */ + transient_environment?: boolean; + /** @description Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise. */ + production_environment?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["deployment"]; + }; + }; + /** @description Merged branch response */ + 202: { + content: { + "application/json": { + message?: string; + }; + }; + }; + /** @description Conflict when there is a merge conflict or the commit's status checks failed */ + 409: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Get a deployment */ + "repos/get-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a deployment + * @description If the repository only has one deployment, you can delete the deployment regardless of its status. If the repository has more than one deployment, you can only delete inactive deployments. This ensures that repositories with multiple deployments will always have an active deployment. + * + * To set a deployment as inactive, you must: + * + * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * * Mark the active deployment as inactive by adding any non-successful deployment status. + * + * For more information, see "[Create a deployment](https://docs.github.com/rest/deployments/deployments/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/deployments/statuses#create-a-deployment-status)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repo_deployment` scope to use this endpoint. + */ + "repos/delete-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List deployment statuses + * @description Users with pull access can view deployment statuses for a deployment: + */ + "repos/list-deployment-statuses": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["deployment-status"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a deployment status + * @description Users with `push` access can create deployment statuses for a given deployment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo_deployment` scope to use this endpoint. + */ + "repos/create-deployment-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state of the status. When you set a transient deployment to `inactive`, the deployment will be shown as `destroyed` in GitHub. + * @enum {string} + */ + state: + | "error" + | "failure" + | "inactive" + | "in_progress" + | "queued" + | "pending" + | "success"; + /** + * @description The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. **Note:** It's recommended to use the `log_url` parameter, which replaces `target_url`. + * @default + */ + target_url?: string; + /** + * @description The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `""` + * @default + */ + log_url?: string; + /** + * @description A short description of the status. The maximum description length is 140 characters. + * @default + */ + description?: string; + /** @description Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. If not defined, the environment of the previous status on the deployment will be used, if it exists. Otherwise, the environment of the deployment will be used. */ + environment?: string; + /** + * @description Sets the URL for accessing your environment. Default: `""` + * @default + */ + environment_url?: string; + /** @description Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true` */ + auto_inactive?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/example/deployments/42/statuses/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["deployment-status"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a deployment status + * @description Users with pull access can view a deployment status for a deployment: + */ + "repos/get-deployment-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment-id"]; + status_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-status"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a repository dispatch event + * @description You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-dispatch-event": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A custom webhook event name. Must be 100 characters or fewer. */ + event_type: string; + /** @description JSON payload with extra information about the webhook event that your action or workflow may use. The maximum number of top-level properties is 10. */ + client_payload?: { + [key: string]: unknown; + }; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List environments + * @description Lists the environments for a repository. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-all-environments": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + /** + * @description The number of environments in this repository + * @example 5 + */ + total_count?: number; + environments?: components["schemas"]["environment"][]; + }; + }; + }; + }; + }; + /** + * Get an environment + * @description **Note:** To get information about name patterns that branches must match in order to deploy to this environment, see "[Get a deployment branch policy](/rest/deployments/branch-policies#get-a-deployment-branch-policy)." + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-environment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["environment"]; + }; + }; + }; + }; + /** + * Create or update an environment + * @description Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "[Environments](/actions/reference/environments#environment-protection-rules)." + * + * **Note:** To create or update name patterns that branches must match in order to deploy to this environment, see "[Deployment branch policies](/rest/deployments/branch-policies)." + * + * **Note:** To create or update secrets for an environment, see "[GitHub Actions secrets](/rest/actions/secrets)." + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-or-update-environment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + requestBody?: { + content: { + "application/json": { + wait_timer?: components["schemas"]["wait-timer"]; + prevent_self_review?: components["schemas"]["prevent-self-review"]; + /** @description The people or teams that may review jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ + reviewers?: + | { + type?: components["schemas"]["deployment-reviewer-type"]; + /** + * @description The id of the user or team who can review the deployment + * @example 4532992 + */ + id?: number; + }[] + | null; + deployment_branch_policy?: components["schemas"]["deployment-branch-policy-settings"]; + } | null; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["environment"]; + }; + }; + /** @description Validation error when the environment name is invalid or when `protected_branches` and `custom_branch_policies` in `deployment_branch_policy` are set to the same value */ + 422: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Delete an environment + * @description OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/delete-an-environment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Default response */ + 204: { + content: never; + }; + }; + }; + /** + * List deployment branch policies + * @description Lists the deployment branch policies for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/list-deployment-branch-policies": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + /** + * @description The number of deployment branch policies for the environment. + * @example 2 + */ + total_count: number; + branch_policies: components["schemas"]["deployment-branch-policy"][]; + }; + }; + }; + }; + }; + /** + * Create a deployment branch policy + * @description Creates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-deployment-branch-policy": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["deployment-branch-policy-name-pattern-with-type"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-branch-policy"]; + }; + }; + /** @description Response if the same branch name pattern already exists */ + 303: { + content: never; + }; + /** @description Not Found or `deployment_branch_policy.custom_branch_policies` property for the environment is set to false */ + 404: { + content: never; + }; + }; + }; + /** + * Get a deployment branch policy + * @description Gets a deployment branch or tag policy for an environment. + * + * Anyone with read access to the repository can use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-deployment-branch-policy": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + branch_policy_id: components["parameters"]["branch-policy-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-branch-policy"]; + }; + }; + }; + }; + /** + * Update a deployment branch policy + * @description Updates a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/update-deployment-branch-policy": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + branch_policy_id: components["parameters"]["branch-policy-id"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["deployment-branch-policy-name-pattern"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-branch-policy"]; + }; + }; + }; + }; + /** + * Delete a deployment branch policy + * @description Deletes a deployment branch or tag policy for an environment. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/delete-deployment-branch-policy": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + branch_policy_id: components["parameters"]["branch-policy-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get all deployment protection rules for an environment + * @description Gets all custom deployment protection rules that are enabled for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-all-deployment-protection-rules": { + parameters: { + path: { + environment_name: components["parameters"]["environment-name"]; + repo: components["parameters"]["repo"]; + owner: components["parameters"]["owner"]; + }; + }; + responses: { + /** @description List of deployment protection rules */ + 200: { + content: { + "application/json": { + /** + * @description The number of enabled custom deployment protection rules for this environment + * @example 10 + */ + total_count?: number; + custom_deployment_protection_rules?: components["schemas"]["deployment-protection-rule"][]; + }; + }; + }; + }; + }; + /** + * Create a custom deployment protection rule on an environment + * @description Enable a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * For more information about the app that is providing this custom deployment rule, see the [documentation for the `GET /apps/{app_slug}` endpoint](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-deployment-protection-rule": { + parameters: { + path: { + environment_name: components["parameters"]["environment-name"]; + repo: components["parameters"]["repo"]; + owner: components["parameters"]["owner"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The ID of the custom app that will be enabled on the environment. */ + integration_id?: number; + }; + }; + }; + responses: { + /** @description The enabled custom deployment protection rule */ + 201: { + content: { + "application/json": components["schemas"]["deployment-protection-rule"]; + }; + }; + }; + }; + /** + * List custom deployment rule integrations available for an environment + * @description Gets all custom deployment protection rule integrations that are available for an environment. Anyone with read access to the repository can use this endpoint. + * + * For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see "[GET an app](https://docs.github.com/rest/apps/apps#get-an-app)". + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/list-custom-deployment-rule-integrations": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + environment_name: components["parameters"]["environment-name"]; + repo: components["parameters"]["repo"]; + owner: components["parameters"]["owner"]; + }; + }; + responses: { + /** @description A list of custom deployment rule integrations available for this environment. */ + 200: { + content: { + "application/json": { + /** + * @description The total number of custom deployment protection rule integrations available for this environment. + * @example 35 + */ + total_count?: number; + available_custom_deployment_protection_rule_integrations?: components["schemas"]["custom-deployment-rule-app"][]; + }; + }; + }; + }; + }; + /** + * Get a custom deployment protection rule + * @description Gets an enabled custom deployment protection rule for an environment. Anyone with read access to the repository can use this endpoint. For more information about environments, see "[Using environments for deployment](https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment)." + * + * For more information about the app that is providing this custom deployment rule, see [`GET /apps/{app_slug}`](https://docs.github.com/rest/apps/apps#get-an-app). + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + */ + "repos/get-custom-deployment-protection-rule": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + environment_name: components["parameters"]["environment-name"]; + protection_rule_id: components["parameters"]["protection-rule-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-protection-rule"]; + }; + }; + }; + }; + /** + * Disable a custom protection rule for an environment + * @description Disables a custom deployment protection rule for an environment. + * + * The authenticated user must have admin or owner permissions to the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/disable-deployment-protection-rule": { + parameters: { + path: { + environment_name: components["parameters"]["environment-name"]; + repo: components["parameters"]["repo"]; + owner: components["parameters"]["owner"]; + protection_rule_id: components["parameters"]["protection-rule-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List repository events + * @description **Note**: This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. + */ + "activity/list-repo-events": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** List forks */ + "repos/list-forks": { + parameters: { + query?: { + /** @description The sort order. `stargazers` will sort by star count. */ + sort?: "newest" | "oldest" | "stargazers" | "watchers"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 400: components["responses"]["bad_request"]; + }; + }; + /** + * Create a fork + * @description Create a fork for the authenticated user. + * + * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * + * **Note**: Although this endpoint works with GitHub Apps, the GitHub App must be installed on the destination account with access to all repositories and on the source account with access to the source repository. + */ + "repos/create-fork": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Optional parameter to specify the organization name if forking into an organization. */ + organization?: string; + /** @description When forking from an existing repository, a new name for the fork. */ + name?: string; + /** @description When forking from an existing repository, fork with only the default branch. */ + default_branch_only?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Create a blob */ + "git/create-blob": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The new blob's content. */ + content: string; + /** + * @description The encoding used for `content`. Currently, `"utf-8"` and `"base64"` are supported. + * @default utf-8 + */ + encoding?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["short-blob"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a blob + * @description The `content` in the response will always be Base64 encoded. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw blob data. + * - **`application/vnd.github+json`**: Returns a JSON representation of the blob with `content` as a base64 encoded string. This is the default if no media type is specified. + * + * **Note** This endpoint supports blobs up to 100 megabytes in size. + */ + "git/get-blob": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + file_sha: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["blob"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a commit + * @description Creates a new Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/create-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The commit message */ + message: string; + /** @description The SHA of the tree object this commit points to */ + tree: string; + /** @description The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided. */ + parents?: string[]; + /** @description Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details. */ + author?: { + /** @description The name of the author (or committer) of the commit */ + name: string; + /** @description The email of the author (or committer) of the commit */ + email: string; + /** + * Format: date-time + * @description Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + /** @description Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details. */ + committer?: { + /** @description The name of the author (or committer) of the commit */ + name?: string; + /** @description The email of the author (or committer) of the commit */ + email?: string; + /** + * Format: date-time + * @description Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + /** @description The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits. */ + signature?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a commit object + * @description Gets a Git [commit object](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects). + * + * To get the contents of a commit, see "[Get a commit](/rest/commits/commits#get-a-commit)." + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/get-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List matching references + * @description Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + * + * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + */ + "git/list-matching-refs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["git-ref"][]; + }; + }; + }; + }; + /** + * Get a reference + * @description Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + */ + "git/get-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-ref"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a reference + * @description Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. + */ + "git/create-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the fully qualified reference (ie: `refs/heads/master`). If it doesn't start with 'refs' and have at least two slashes, it will be rejected. */ + ref: string; + /** @description The SHA1 value for this reference. */ + sha: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-ref"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Delete a reference */ + "git/delete-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: components["parameters"]["commit-ref"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Update a reference */ + "git/update-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * @description The name of the reference to update (for example, `heads/featureA`). Can be a branch name (`heads/BRANCH_NAME`) or tag name (`tags/TAG_NAME`). For more information, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in the Git documentation. + * @example heads/featureA + */ + ref: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The SHA1 value to set this reference to */ + sha: string; + /** + * @description Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to `false` will make sure you're not overwriting work. + * @default false + */ + force?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-ref"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a tag object + * @description Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/git/refs#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/git/refs#create-a-reference) the tag reference - this call would be unnecessary. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/create-tag": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The tag's name. This is typically a version (e.g., "v0.0.1"). */ + tag: string; + /** @description The tag message. */ + message: string; + /** @description The SHA of the git object this is tagging. */ + object: string; + /** + * @description The type of the object we're tagging. Normally this is a `commit` but it can also be a `tree` or a `blob`. + * @enum {string} + */ + type: "commit" | "tree" | "blob"; + /** @description An object with information about the individual creating the tag. */ + tagger?: { + /** @description The name of the author of the tag */ + name: string; + /** @description The email of the author of the tag */ + email: string; + /** + * Format: date-time + * @description When this object was tagged. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-tag"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a tag + * @description **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on their account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/get-tag": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + tag_sha: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-tag"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a tree + * @description The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + * + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/git/commits#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/git/refs#update-a-reference)." + * + * Returns an error if you try to delete a file that does not exist. + */ + "git/create-tree": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Objects (of `path`, `mode`, `type`, and `sha`) specifying a tree structure. */ + tree: { + /** @description The file referenced in the tree. */ + path?: string; + /** + * @description The file mode; one of `100644` for file (blob), `100755` for executable (blob), `040000` for subdirectory (tree), `160000` for submodule (commit), or `120000` for a blob that specifies the path of a symlink. + * @enum {string} + */ + mode?: "100644" | "100755" | "040000" | "160000" | "120000"; + /** + * @description Either `blob`, `tree`, or `commit`. + * @enum {string} + */ + type?: "blob" | "tree" | "commit"; + /** + * @description The SHA1 checksum ID of the object in the tree. Also called `tree.sha`. If the value is `null` then the file will be deleted. + * + * **Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error. + */ + sha?: string | null; + /** + * @description The content you want this file to have. GitHub will write this blob out and use that SHA for this entry. Use either this, or `tree.sha`. + * + * **Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error. + */ + content?: string; + }[]; + /** + * @description The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on. + * If not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit. + */ + base_tree?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/trees/cd8274d15fa3ae2ab983129fb037999f264ba9a7 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-tree"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a tree + * @description Returns a single tree using the SHA1 value or ref name for that tree. + * + * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. + * + * + * **Note**: The limit for the `tree` array is 100,000 entries with a maximum size of 7 MB when using the `recursive` parameter. + */ + "git/get-tree": { + parameters: { + query?: { + /** @description Setting this parameter to any value returns the objects or subtrees referenced by the tree specified in `:tree_sha`. For example, setting `recursive` to any of the following will enable returning objects or subtrees: `0`, `1`, `"true"`, and `"false"`. Omit this parameter to prevent recursively returning objects or subtrees. */ + recursive?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The SHA1 value or ref (branch or tag) name of the tree. */ + tree_sha: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["git-tree"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List repository webhooks + * @description Lists webhooks for a repository. `last response` may return null if there have not been any deliveries within 30 days. + */ + "repos/list-webhooks": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["hook"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a repository webhook + * @description Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + * share the same `config` as long as those webhooks do not have any `events` that overlap. + */ + "repos/create-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Use `web` to create a webhook. Default: `web`. This parameter only accepts the value `web`. */ + name?: string; + /** @description Key/value pairs to provide settings for this webhook. */ + config?: { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/hooks/12345678 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["hook"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a repository webhook + * @description Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository)." + */ + "repos/get-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a repository webhook */ + "repos/delete-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a repository webhook + * @description Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/webhooks/repo-config#update-a-webhook-configuration-for-a-repository)." + */ + "repos/update-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + config?: components["schemas"]["webhook-config"]; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. This replaces the entire array of events. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** @description Determines a list of events to be added to the list of events that the Hook triggers for. */ + add_events?: string[]; + /** @description Determines a list of events to be removed from the list of events that the Hook triggers for. */ + remove_events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a webhook configuration for a repository + * @description Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/webhooks/repos#get-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:repo_hook` or `repo` scope to use this endpoint. + */ + "repos/get-webhook-config-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * Update a webhook configuration for a repository + * @description Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/webhooks/repos#update-a-repository-webhook)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:repo_hook` or `repo` scope to use this endpoint. + */ + "repos/update-webhook-config-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * List deliveries for a repository webhook + * @description Returns a list of webhook deliveries for a webhook configured in a repository. + */ + "repos/list-webhook-deliveries": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + cursor?: components["parameters"]["cursor"]; + redelivery?: boolean; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery-item"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a delivery for a repository webhook + * @description Returns a delivery for a webhook configured in a repository. + */ + "repos/get-webhook-delivery": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery"]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Redeliver a delivery for a repository webhook + * @description Redeliver a webhook delivery for a webhook configured in a repository. + */ + "repos/redeliver-webhook-delivery": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Ping a repository webhook + * @description This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + "repos/ping-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Test the push repository webhook + * @description This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * + * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + */ + "repos/test-push-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get an import status + * @deprecated + * @description View the progress of an import. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + * + * **Import status** + * + * This section includes details about the possible values of the `status` field of the Import Progress response. + * + * An import that does not have errors will progress through these steps: + * + * * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * * `complete` - the import is complete, and the repository is ready on GitHub. + * + * If there are problems, you will see one of these in the `status` field: + * + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/migrations/source-imports#cancel-an-import) and [retry](https://docs.github.com/rest/migrations/source-imports#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/migrations/source-imports#update-an-import) section. + * + * **The project_choices field** + * + * When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + * + * **Git LFS related fields** + * + * This section includes details about Git LFS related fields that may be present in the Import Progress response. + * + * * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + */ + "migrations/get-import-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Start an import + * @deprecated + * @description Start a source import to a GitHub repository using GitHub Importer. + * Importing into a GitHub repository with GitHub Actions enabled is not supported and will + * return a status `422 Unprocessable Entity` response. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/start-import": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The URL of the originating repository. */ + vcs_url: string; + /** + * @description The originating VCS type. Without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response. + * @enum {string} + */ + vcs?: "subversion" | "git" | "mercurial" | "tfvc"; + /** @description If authentication is required, the username to provide to `vcs_url`. */ + vcs_username?: string; + /** @description If authentication is required, the password to provide to `vcs_url`. */ + vcs_password?: string; + /** @description For a tfvc import, the name of the project that is being imported. */ + tfvc_project?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/spraints/socm/import */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Cancel an import + * @deprecated + * @description Stop an import for a repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/cancel-import": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Update an import + * @deprecated + * @description An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API + * request. If no parameters are provided, the import will be restarted. + * + * Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will + * have the status `detection_found_multiple` and the Import Progress response will include a `project_choices` array. + * You can select the project to import by providing one of the objects in the `project_choices` array in the update request. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/update-import": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The username to provide to the originating repository. */ + vcs_username?: string; + /** @description The password to provide to the originating repository. */ + vcs_password?: string; + /** + * @description The type of version control system you are migrating from. + * @example "git" + * @enum {string} + */ + vcs?: "subversion" | "tfvc" | "git" | "mercurial"; + /** + * @description For a tfvc import, the name of the project that is being imported. + * @example "project1" + */ + tfvc_project?: string; + } | null; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Get commit authors + * @deprecated + * @description Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + * + * This endpoint and the [Map a commit author](https://docs.github.com/rest/migrations/source-imports#map-a-commit-author) endpoint allow you to provide correct Git author information. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/get-commit-authors": { + parameters: { + query?: { + since?: components["parameters"]["since-user"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["porter-author"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Map a commit author + * @deprecated + * @description Update an author's identity for the import. Your application can continue updating authors any time before you push + * new commits to the repository. + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/map-commit-author": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + author_id: number; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The new Git author email. */ + email?: string; + /** @description The new Git author name. */ + name?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["porter-author"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Get large files + * @deprecated + * @description List files larger than 100MB found during the import + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/get-large-files": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["porter-large-file"][]; + }; + }; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Update Git LFS preference + * @deprecated + * @description You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability + * is powered by [Git LFS](https://git-lfs.com). + * + * You can learn more about our LFS feature and working with large files [on our help + * site](https://docs.github.com/repositories/working-with-files/managing-large-files). + * + * **Warning:** Due to very low levels of usage and available alternatives, this endpoint is deprecated and will no longer be available from 00:00 UTC on April 12, 2024. For more details and alternatives, see the [changelog](https://gh.io/source-imports-api-deprecation). + */ + "migrations/set-lfs-preference": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Whether to store large files during the import. `opt_in` means large files will be stored using Git LFS. `opt_out` means large files will be removed during the import. + * @enum {string} + */ + use_lfs: "opt_in" | "opt_out"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["porter_maintenance"]; + }; + }; + /** + * Get a repository installation for the authenticated app + * @description Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-repo-installation": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get interaction restrictions for a repository + * @description Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + "interactions/get-restrictions-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": + | components["schemas"]["interaction-limit-response"] + | Record; + }; + }; + }; + }; + /** + * Set interaction restrictions for a repository + * @description Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + "interactions/set-restrictions-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["interaction-limit"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + /** @description Response */ + 409: { + content: never; + }; + }; + }; + /** + * Remove interaction restrictions for a repository + * @description Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + "interactions/remove-restrictions-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Response */ + 409: { + content: never; + }; + }; + }; + /** + * List repository invitations + * @description When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. + */ + "repos/list-invitations": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["repository-invitation"][]; + }; + }; + }; + }; + /** Delete a repository invitation */ + "repos/delete-invitation": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** Update a repository invitation */ + "repos/update-invitation": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permissions that the associated user will have on the repository. Valid values are `read`, `write`, `maintain`, `triage`, and `admin`. + * @enum {string} + */ + permissions?: "read" | "write" | "maintain" | "triage" | "admin"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-invitation"]; + }; + }; + }; + }; + /** + * List repository issues + * @description List issues in a repository. Only open issues will be listed. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-for-repo": { + parameters: { + query?: { + /** @description If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned. */ + milestone?: string; + /** @description Indicates the state of the issues to return. */ + state?: "open" | "closed" | "all"; + /** @description Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user. */ + assignee?: string; + /** @description The user that created the issue. */ + creator?: string; + /** @description A user that's mentioned in the issue. */ + mentioned?: string; + labels?: components["parameters"]["labels"]; + /** @description What to sort results by. */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create an issue + * @description Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://docs.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/create": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the issue. */ + title: string | number; + /** @description The contents of the issue. */ + body?: string; + /** @description Login for the user that this issue should be assigned to. _NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. **This field is deprecated.**_ */ + assignee?: string | null; + milestone?: string | number | null; + /** @description Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._ */ + labels?: OneOf< + [ + string, + { + id?: number; + name?: string; + description?: string | null; + color?: string | null; + }, + ] + >[]; + /** @description Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ */ + assignees?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/issues/1347 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List issue comments for a repository + * @description You can use the REST API to list comments on issues and pull requests for a repository. Every pull request is an issue, but not every issue is a pull request. + * + * By default, issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-comments-for-repo": { + parameters: { + query?: { + sort?: components["parameters"]["sort"]; + /** @description Either `asc` or `desc`. Ignored without the `sort` parameter. */ + direction?: "asc" | "desc"; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue-comment"][]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an issue comment + * @description You can use the REST API to get comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/get-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an issue comment + * @description You can use the REST API to delete comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + */ + "issues/delete-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update an issue comment + * @description You can use the REST API to update comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/update-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue-comment"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List reactions for an issue comment + * @description List the reactions to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + "reactions/list-for-issue-comment": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to an issue comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create reaction for an issue comment + * @description Create a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). A response with an HTTP `200` status means that you already added the reaction type to this issue comment. + */ + "reactions/create-for-issue-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the issue comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an issue comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). + */ + "reactions/delete-for-issue-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List issue events for a repository + * @description Lists events for a repository. + */ + "issues/list-events-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue-event"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an issue event + * @description Gets a single event by the event id. + */ + "issues/get-event": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + event_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue-event"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Get an issue + * @description The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api#follow-redirects) if the issue was + * [transferred](https://docs.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API + * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read + * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe + * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Update an issue + * @description Issue owners and users with push access can edit an issue. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The title of the issue. */ + title?: string | number | null; + /** @description The contents of the issue. */ + body?: string | null; + /** @description Username to assign to this issue. **This field is deprecated.** */ + assignee?: string | null; + /** + * @description The open or closed state of the issue. + * @enum {string} + */ + state?: "open" | "closed"; + /** + * @description The reason for the state change. Ignored unless `state` is changed. + * @example not_planned + * @enum {string|null} + */ + state_reason?: "completed" | "not_planned" | "reopened" | null; + milestone?: string | number | null; + /** @description Labels to associate with this issue. Pass one or more labels to _replace_ the set of labels on this issue. Send an empty array (`[]`) to clear all labels from the issue. Only users with push access can set labels for issues. Without push access to the repository, label changes are silently dropped. */ + labels?: OneOf< + [ + string, + { + id?: number; + name?: string; + description?: string | null; + color?: string | null; + }, + ] + >[]; + /** @description Usernames to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this issue. Send an empty array (`[]`) to clear all assignees from the issue. Only users with push access can set assignees for new issues. Without push access to the repository, assignee changes are silently dropped. */ + assignees?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Add assignees to an issue + * @description Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. + */ + "issues/add-assignees": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._ */ + assignees?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + }; + }; + /** + * Remove assignees from an issue + * @description Removes one or more assignees from an issue. + */ + "issues/remove-assignees": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._ */ + assignees: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + }; + }; + /** + * Check if a user can be assigned to a issue + * @description Checks if a user has permission to be assigned to a specific issue. + * + * If the `assignee` can be assigned to this issue, a `204` status code with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + "issues/check-user-can-be-assigned-to-issue": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + assignee: string; + }; + }; + responses: { + /** @description Response if `assignee` can be assigned to `issue_number` */ + 204: { + content: never; + }; + /** @description Response if `assignee` can not be assigned to `issue_number` */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * List issue comments + * @description You can use the REST API to list comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * Issue comments are ordered by ascending ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-comments": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue-comment"][]; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Create an issue comment + * @description You can use the REST API to create comments on issues and pull requests. Every pull request is an issue, but not every issue is a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). + * Creating content too quickly using this endpoint may result in secondary rate limiting. + * For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/create-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/issues/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["issue-comment"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List issue events + * @description Lists all events for an issue. + */ + "issues/list-events": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue-event-for-issue"][]; + }; + }; + 410: components["responses"]["gone"]; + }; + }; + /** + * List labels for an issue + * @description Lists all labels for an issue. + */ + "issues/list-labels-on-issue": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Set labels for an issue + * @description Removes any previous labels and sets the new labels for an issue. + */ + "issues/set-labels": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": OneOf< + [ + { + /** @description The names of the labels to set for the issue. The labels you set replace any existing labels. You can pass an empty array to remove all labels. Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. You can also add labels to the existing labels for an issue. For more information, see "[Add labels to an issue](https://docs.github.com/rest/issues/labels#add-labels-to-an-issue)." */ + labels?: string[]; + }, + { + labels?: { + name: string; + }[]; + }, + ] + >; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Add labels to an issue + * @description Adds labels to an issue. If you provide an empty array of labels, all labels are removed from the issue. + */ + "issues/add-labels": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": OneOf< + [ + { + /** @description The names of the labels to add to the issue's existing labels. You can pass an empty array to remove all labels. Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. You can also replace all of the labels for an issue. For more information, see "[Set labels for an issue](https://docs.github.com/rest/issues/labels#set-labels-for-an-issue)." */ + labels?: string[]; + }, + { + labels?: { + name: string; + }[]; + }, + ] + >; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove all labels from an issue + * @description Removes all labels from an issue. + */ + "issues/remove-all-labels": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Remove a label from an issue + * @description Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. + */ + "issues/remove-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + name: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Lock an issue + * @description Users with push access can lock an issue or pull request's conversation. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "issues/lock": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: + * * `off-topic` + * * `too heated` + * * `resolved` + * * `spam` + * @enum {string} + */ + lock_reason?: "off-topic" | "too heated" | "resolved" | "spam"; + } | null; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Unlock an issue + * @description Users with push access can unlock an issue's conversation. + */ + "issues/unlock": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List reactions for an issue + * @description List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + "reactions/list-for-issue": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to an issue. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Create reaction for an issue + * @description Create a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). A response with an HTTP `200` status means that you already added the reaction type to this issue. + */ + "reactions/create-for-issue": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the issue. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an issue reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + * + * Delete a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). + */ + "reactions/delete-for-issue": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List timeline events for an issue + * @description List all timeline events for an issue. + */ + "issues/list-events-for-timeline": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["timeline-issue-events"][]; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** List deploy keys */ + "repos/list-deploy-keys": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["deploy-key"][]; + }; + }; + }; + }; + /** + * Create a deploy key + * @description You can create a read-only deploy key. + */ + "repos/create-deploy-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A name for the key. */ + title?: string; + /** @description The contents of the key. */ + key: string; + /** + * @description If `true`, the key will only be able to read repository contents. Otherwise, the key will be able to read and write. + * + * Deploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see "[Repository permission levels for an organization](https://docs.github.com/articles/repository-permission-levels-for-an-organization/)" and "[Permission levels for a user account repository](https://docs.github.com/articles/permission-levels-for-a-user-account-repository/)." + */ + read_only?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/keys/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["deploy-key"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Get a deploy key */ + "repos/get-deploy-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["deploy-key"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a deploy key + * @description Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. + */ + "repos/delete-deploy-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List labels for a repository + * @description Lists all labels for a repository. + */ + "issues/list-labels-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a label + * @description Creates a label for the specified repository with the given name and color. The name and color parameters are required. The color must be a valid [hexadecimal color code](http://www.color-hex.com/). + */ + "issues/create-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see "[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet)." */ + name: string; + /** @description The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. */ + color?: string; + /** @description A short description of the label. Must be 100 characters or fewer. */ + description?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/labels/bug */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["label"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a label + * @description Gets a label using the given name. + */ + "issues/get-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a label + * @description Deletes a label using the given label name. + */ + "issues/delete-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: string; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a label + * @description Updates a label using the given label name. + */ + "issues/update-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: string; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see "[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet)." */ + new_name?: string; + /** @description The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. */ + color?: string; + /** @description A short description of the label. Must be 100 characters or fewer. */ + description?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["label"]; + }; + }; + }; + }; + /** + * List repository languages + * @description Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. + */ + "repos/list-languages": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["language"]; + }; + }; + }; + }; + /** + * Get the license for a repository + * @description This method returns the contents of the repository's license file, if one is detected. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw contents of the license. + * - **`application/vnd.github.html+json`**: Returns the license contents in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + "licenses/get-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["license-content"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Sync a fork branch with the upstream repository + * @description Sync a branch of a forked repository to keep it up-to-date with the upstream repository. + */ + "repos/merge-upstream": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the branch which should be updated to match upstream. */ + branch: string; + }; + }; + }; + responses: { + /** @description The branch has been successfully synced with the upstream repository */ + 200: { + content: { + "application/json": components["schemas"]["merged-upstream"]; + }; + }; + /** @description The branch could not be synced because of a merge conflict */ + 409: { + content: never; + }; + /** @description The branch could not be synced for some other reason */ + 422: { + content: never; + }; + }; + }; + /** Merge a branch */ + "repos/merge": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the base branch that the head will be merged into. */ + base: string; + /** @description The head to merge. This can be a branch name or a commit SHA1. */ + head: string; + /** @description Commit message to use for the merge commit. If omitted, a default message will be used. */ + commit_message?: string; + }; + }; + }; + responses: { + /** @description Successful Response (The resulting merge commit) */ + 201: { + content: { + "application/json": components["schemas"]["commit"]; + }; + }; + /** @description Response when already merged */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + /** @description Not Found when the base or head does not exist */ + 404: { + content: never; + }; + /** @description Conflict when there is a merge conflict */ + 409: { + content: never; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List milestones + * @description Lists milestones for a repository. + */ + "issues/list-milestones": { + parameters: { + query?: { + /** @description The state of the milestone. Either `open`, `closed`, or `all`. */ + state?: "open" | "closed" | "all"; + /** @description What to sort results by. Either `due_on` or `completeness`. */ + sort?: "due_on" | "completeness"; + /** @description The direction of the sort. Either `asc` or `desc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["milestone"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a milestone + * @description Creates a milestone. + */ + "issues/create-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the milestone. */ + title: string; + /** + * @description The state of the milestone. Either `open` or `closed`. + * @default open + * @enum {string} + */ + state?: "open" | "closed"; + /** @description A description of the milestone. */ + description?: string; + /** + * Format: date-time + * @description The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/milestones/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["milestone"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a milestone + * @description Gets a milestone using the given milestone number. + */ + "issues/get-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["milestone"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a milestone + * @description Deletes a milestone using the given milestone number. + */ + "issues/delete-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Update a milestone */ + "issues/update-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The title of the milestone. */ + title?: string; + /** + * @description The state of the milestone. Either `open` or `closed`. + * @default open + * @enum {string} + */ + state?: "open" | "closed"; + /** @description A description of the milestone. */ + description?: string; + /** + * Format: date-time + * @description The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["milestone"]; + }; + }; + }; + }; + /** + * List labels for issues in a milestone + * @description Lists labels for issues in a milestone. + */ + "issues/list-labels-for-milestone": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + }; + }; + /** + * List repository notifications for the authenticated user + * @description Lists all notifications for the current user in the specified repository. + */ + "activity/list-repo-notifications-for-authenticated-user": { + parameters: { + query?: { + all?: components["parameters"]["all"]; + participating?: components["parameters"]["participating"]; + since?: components["parameters"]["since"]; + before?: components["parameters"]["before"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["thread"][]; + }; + }; + }; + }; + /** + * Mark repository notifications as read + * @description Marks all notifications in a repository as "read" for the current user. If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + "activity/mark-repo-notifications-as-read": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * Format: date-time + * @description Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; + }; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": { + message?: string; + url?: string; + }; + }; + }; + /** @description Reset Content */ + 205: { + content: never; + }; + }; + }; + /** + * Get a GitHub Pages site + * @description Gets information about a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/get-pages": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["page"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update information about a GitHub Pages site + * @description Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/update-information-about-pages-site": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Specify a custom domain for the repository. Sending a `null` value will remove the custom domain. For more about custom domains, see "[Using a custom domain with GitHub Pages](https://docs.github.com/articles/using-a-custom-domain-with-github-pages/)." */ + cname?: string | null; + /** @description Specify whether HTTPS should be enforced for the repository. */ + https_enforced?: boolean; + /** + * @description The process by which the GitHub Pages site will be built. `workflow` means that the site is built by a custom GitHub Actions workflow. `legacy` means that the site is built by GitHub when changes are pushed to a specific branch. + * @enum {string} + */ + build_type?: "legacy" | "workflow"; + source?: + | ("gh-pages" | "master" | "master /docs") + | { + /** @description The repository branch used to publish your site's source files. */ + branch: string; + /** + * @description The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. + * @enum {string} + */ + path: "/" | "/docs"; + }; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 400: components["responses"]["bad_request"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a GitHub Pages site + * @description Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/create-pages-site": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The process in which the Page will be built. Possible values are `"legacy"` and `"workflow"`. + * @enum {string} + */ + build_type?: "legacy" | "workflow"; + /** @description The source branch and directory used to publish your Pages site. */ + source?: { + /** @description The repository branch used to publish your site's source files. */ + branch: string; + /** + * @description The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. Default: `/` + * @default / + * @enum {string} + */ + path?: "/" | "/docs"; + }; + } | null; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["page"]; + }; + }; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a GitHub Pages site + * @description Deletes a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/delete-pages-site": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List GitHub Pages builds + * @description Lists builts of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/list-pages-builds": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["page-build"][]; + }; + }; + }; + }; + /** + * Request a GitHub Pages build + * @description You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + */ + "repos/request-pages-build": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["page-build-status"]; + }; + }; + }; + }; + /** + * Get latest Pages build + * @description Gets information about the single most recent build of a GitHub Pages site. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/get-latest-pages-build": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["page-build"]; + }; + }; + }; + }; + /** + * Get GitHub Pages build + * @description Gets information about a GitHub Pages build. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/get-pages-build": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + build_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["page-build"]; + }; + }; + }; + }; + /** + * Create a GitHub Pages deployment + * @description Create a GitHub Pages deployment for a repository. + * + * The authenticated user must have write permission to the repository. + */ + "repos/create-pages-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The ID of an artifact that contains the .zip or .tar of static assets to deploy. The artifact belongs to the repository. Either `artifact_id` or `artifact_url` are required. */ + artifact_id?: number; + /** @description The URL of an artifact that contains the .zip or .tar of static assets to deploy. The artifact belongs to the repository. Either `artifact_id` or `artifact_url` are required. */ + artifact_url?: string; + /** + * @description The target environment for this GitHub Pages deployment. + * @default github-pages + */ + environment?: string; + /** + * @description A unique string that represents the version of the build for this deployment. + * @default GITHUB_SHA + */ + pages_build_version: string; + /** @description The OIDC token issued by GitHub Actions certifying the origin of the deployment. */ + oidc_token: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["page-deployment"]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get the status of a GitHub Pages deployment + * @description Gets the current status of a GitHub Pages deployment. + * + * The authenticated user must have read permission for the GitHub Pages site. + */ + "repos/get-pages-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pages_deployment_id: components["parameters"]["pages-deployment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pages-deployment-status"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Cancel a GitHub Pages deployment + * @description Cancels a GitHub Pages deployment. + * + * The authenticated user must have write permissions for the GitHub Pages site. + */ + "repos/cancel-pages-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pages_deployment_id: components["parameters"]["pages-deployment-id"]; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a DNS health check for GitHub Pages + * @description Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages. + * + * The first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response. + * + * The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "repos/get-pages-health-check": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pages-health-check"]; + }; + }; + /** @description Empty response */ + 202: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Custom domains are not available for GitHub Pages */ + 400: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description There isn't a CNAME for this page */ + 422: { + content: never; + }; + }; + }; + /** + * Enable private vulnerability reporting for a repository + * @description Enables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)." + */ + "repos/enable-private-vulnerability-reporting": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 422: components["responses"]["bad_request"]; + }; + }; + /** + * Disable private vulnerability reporting for a repository + * @description Disables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)". + */ + "repos/disable-private-vulnerability-reporting": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + 204: components["responses"]["no_content"]; + 422: components["responses"]["bad_request"]; + }; + }; + /** + * List repository projects + * @description Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/list-for-repo": { + parameters: { + query?: { + /** @description Indicates the state of the projects to return. */ + state?: "open" | "closed" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Create a repository project + * @description Creates a repository project board. Returns a `410 Gone` status if projects are disabled in the repository or if the repository does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/create-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the project. */ + name: string; + /** @description The description of the project. */ + body?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get all custom property values for a repository + * @description Gets all custom property values that are set for a repository. + * Users with read access to the repository can use this endpoint. + */ + "repos/get-custom-properties-values": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["custom-property-value"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create or update custom property values for a repository + * @description Create new or update existing custom property values for a repository. + * Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. + * + * Repository admins and other users with the repository-level "edit custom property values" fine-grained permission can use this endpoint. + */ + "repos/create-or-update-custom-properties-values": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A list of custom property names and associated values to apply to the repositories. */ + properties: components["schemas"]["custom-property-value"][]; + }; + }; + }; + responses: { + /** @description No Content when custom property values are successfully created or updated */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List pull requests + * @description Lists pull requests in a specified repository. + * + * Draft pull requests are available in public repositories with GitHub + * Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing + * plans, and in public and private repositories with GitHub Team and GitHub Enterprise + * Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) + * in the GitHub Help documentation. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + * - **`application/vnd.github.patch`**: For more information, see "[git-format-patch](https://git-scm.com/docs/git-format-patch)" in the Git documentation. + */ + "pulls/list": { + parameters: { + query?: { + /** @description Either `open`, `closed`, or `all` to filter by state. */ + state?: "open" | "closed" | "all"; + /** @description Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`. */ + head?: string; + /** @description Filter pulls by base branch name. Example: `gh-pages`. */ + base?: string; + /** @description What to sort results by. `popularity` will sort by the number of comments. `long-running` will sort by date created and will limit the results to pull requests that have been open for more than a month and have had activity within the past month. */ + sort?: "created" | "updated" | "popularity" | "long-running"; + /** @description The direction of the sort. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + "pulls/create": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the new pull request. Required unless `issue` is specified. */ + title?: string; + /** @description The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head` with a user like this: `username:branch`. */ + head: string; + /** + * Format: repo.nwo + * @description The name of the repository where the changes in the pull request were made. This field is required for cross-repository pull requests if both repositories are owned by the same organization. + * @example octo-org/octo-repo + */ + head_repo?: string; + /** @description The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. */ + base: string; + /** @description The contents of the pull request. */ + body?: string; + /** @description Indicates whether [maintainers can modify](https://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. */ + maintainer_can_modify?: boolean; + /** @description Indicates whether the pull request is a draft. See "[Draft Pull Requests](https://docs.github.com/articles/about-pull-requests#draft-pull-requests)" in the GitHub Help documentation to learn more. */ + draft?: boolean; + /** + * Format: int64 + * @description An issue in the repository to convert to a pull request. The issue title, body, and comments will become the title, body, and comments on the new pull request. Required unless `title` is specified. + * @example 1 + */ + issue?: number; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/1347 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["pull-request"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List review comments in a repository + * @description Lists review comments for all pull requests in a repository. By default, + * review comments are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-review-comments-for-repo": { + parameters: { + query?: { + sort?: "created" | "updated" | "created_at"; + /** @description The direction to sort results. Ignored without `sort` parameter. */ + direction?: "asc" | "desc"; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"][]; + }; + }; + }; + }; + /** + * Get a review comment for a pull request + * @description Provides details for a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/get-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a review comment for a pull request + * @description Deletes a review comment. + */ + "pulls/delete-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a review comment for a pull request + * @description Edits the content of a specified review comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/update-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The text of the reply to the review comment. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + }; + }; + /** + * List reactions for a pull request review comment + * @description List the reactions to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + "reactions/list-for-pull-request-review-comment": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a pull request review comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create reaction for a pull request review comment + * @description Create a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment. + */ + "reactions/create-for-pull-request-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the pull request review comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a pull request comment reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + * + * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). + */ + "reactions/delete-for-pull-request-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment-id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists details of a pull request by providing its number. + * + * When you get, [create](https://docs.github.com/rest/pulls/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/pulls/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + * + * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + * + * * If merged as a [merge commit](https://docs.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://docs.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://docs.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + "pulls/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. */ + 200: { + content: { + "application/json": components["schemas"]["pull-request"]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Update a pull request + * @description Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + "pulls/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The title of the pull request. */ + title?: string; + /** @description The contents of the pull request. */ + body?: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state?: "open" | "closed"; + /** @description The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository. */ + base?: string; + /** @description Indicates whether [maintainers can modify](https://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. */ + maintainer_can_modify?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a codespace from a pull request + * @description Creates a codespace owned by the authenticated user for the specified pull request. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/create-with-pr-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided. */ + location?: string; + /** + * @description The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is being deprecated. + * @enum {string} + */ + geo?: "EuropeWest" | "SoutheastAsia" | "UsEast" | "UsWest"; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Whether to authorize requested permissions from devcontainer.json */ + multi_repo_permissions_opt_out?: boolean; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). */ + retention_period_minutes?: number; + } | null; + }; + }; + responses: { + /** @description Response when the codespace was successfully created */ + 201: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + /** @description Response when the codespace creation partially failed but is being retried in the background */ + 202: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List review comments on a pull request + * @description Lists all review comments for a specified pull request. By default, review comments + * are in ascending order by ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-review-comments": { + parameters: { + query?: { + sort?: components["parameters"]["sort"]; + /** @description The direction to sort results. Ignored without `sort` parameter. */ + direction?: "asc" | "desc"; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"][]; + }; + }; + }; + }; + /** + * Create a review comment for a pull request + * @description Creates a review comment on the diff of a specified pull request. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/issues/comments#create-an-issue-comment)." + * + * If your comment applies to more than one line in the pull request diff, you should use the parameters `line`, `side`, and optionally `start_line` and `start_side` in your request. + * + * The `position` parameter is deprecated. If you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/create-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The text of the review comment. */ + body: string; + /** @description The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. */ + commit_id: string; + /** @description The relative path to the file that necessitates a comment. */ + path: string; + /** + * @deprecated + * @description **This parameter is deprecated. Use `line` instead**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + */ + position?: number; + /** + * @description In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://docs.github.com/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + * @enum {string} + */ + side?: "LEFT" | "RIGHT"; + /** @description **Required unless using `subject_type:file`**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. */ + line?: number; + /** @description **Required when using multi-line comments unless using `in_reply_to`**. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://docs.github.com/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. */ + start_line?: number; + /** + * @description **Required when using multi-line comments unless using `in_reply_to`**. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://docs.github.com/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + * @enum {string} + */ + start_side?: "LEFT" | "RIGHT" | "side"; + /** + * @description The ID of the review comment to reply to. To find the ID of a review comment with ["List review comments on a pull request"](#list-review-comments-on-a-pull-request). When specified, all parameters other than `body` in the request body are ignored. + * @example 2 + */ + in_reply_to?: number; + /** + * @description The level at which the comment is targeted. + * @enum {string} + */ + subject_type?: "line" | "file"; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a reply for a review comment + * @description Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" + * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/create-reply-for-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + comment_id: components["parameters"]["comment-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The text of the review comment. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List commits on a pull request + * @description Lists a maximum of 250 commits for a pull request. To receive a complete + * commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/commits/commits#list-commits) + * endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + "pulls/list-commits": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["commit"][]; + }; + }; + }; + }; + /** + * List pull requests files + * @description Lists the files in a specified pull request. + * + * **Note:** Responses include a maximum of 3000 files. The paginated response + * returns 30 files per page by default. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + * - **`application/vnd.github.diff`**: For more information, see "[git-diff](https://git-scm.com/docs/git-diff)" in the Git documentation. If a diff is corrupt, contact us through the [GitHub Support portal](https://support.github.com/). Include the repository name and pull request ID in your message. + */ + "pulls/list-files": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["diff-entry"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Check if a pull request has been merged + * @description Checks if a pull request has been merged into the base branch. The HTTP status of the response indicates whether or not the pull request has been merged; the response body is empty. + */ + "pulls/check-if-merged": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response if pull request has been merged */ + 204: { + content: never; + }; + /** @description Not Found if pull request has not been merged */ + 404: { + content: never; + }; + }; + }; + /** + * Merge a pull request + * @description Merges a pull request into the base branch. + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + "pulls/merge": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Title for the automatic commit message. */ + commit_title?: string; + /** @description Extra detail to append to automatic commit message. */ + commit_message?: string; + /** @description SHA that pull request head must match to allow merge. */ + sha?: string; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method?: "merge" | "squash" | "rebase"; + } | null; + }; + }; + responses: { + /** @description if merge was successful */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-merge-result"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Method Not Allowed if merge cannot be performed */ + 405: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + /** @description Conflict if sha was provided and pull request head did not match */ + 409: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get all requested reviewers for a pull request + * @description Gets the users or teams whose review is requested for a pull request. Once a requested reviewer submits a review, they are no longer considered a requested reviewer. Their review will instead be returned by the [List reviews for a pull request](https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request) operation. + */ + "pulls/list-requested-reviewers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-review-request"]; + }; + }; + }; + }; + /** + * Request reviewers for a pull request + * @description This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + "pulls/request-reviewers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description An array of user `login`s that will be requested. */ + reviewers?: string[]; + /** @description An array of team `slug`s that will be requested. */ + team_reviewers?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["pull-request-simple"]; + }; + }; + 403: components["responses"]["forbidden"]; + /** @description Unprocessable Entity if user is not a collaborator */ + 422: { + content: never; + }; + }; + }; + /** + * Remove requested reviewers from a pull request + * @description Removes review requests from a pull request for a given set of users and/or teams. + */ + "pulls/remove-requested-reviewers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of user `login`s that will be removed. */ + reviewers: string[]; + /** @description An array of team `slug`s that will be removed. */ + team_reviewers?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-simple"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List reviews for a pull request + * @description Lists all reviews for a specified pull request. The list of reviews returns in chronological order. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-reviews": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** @description The list of reviews returns in chronological order. */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["pull-request-review"][]; + }; + }; + }; + }; + /** + * Create a review for a pull request + * @description Creates a review on a specified pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * Pull request reviews created in the `PENDING` state are not submitted and therefore do not include the `submitted_at` property in the response. To create a pending review for a pull request, leave the `event` parameter blank. For more information about submitting a `PENDING` review, see "[Submit a review for a pull request](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request)." + * + * **Note:** To comment on a specific line in a file, you need to first determine the position of that line in the diff. To see a pull request diff, add the `application/vnd.github.v3.diff` media type to the `Accept` header of a call to the [Get a pull request](https://docs.github.com/rest/pulls/pulls#get-a-pull-request) endpoint. + * + * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/create-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value. */ + commit_id?: string; + /** @description **Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review. */ + body?: string; + /** + * @description The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request) when you are ready. + * @enum {string} + */ + event?: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + /** @description Use the following table to specify the location, destination, and contents of the draft review comment. */ + comments?: { + /** @description The relative path to the file that necessitates a review comment. */ + path: string; + /** @description The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. */ + position?: number; + /** @description Text of the review comment. */ + body: string; + /** @example 28 */ + line?: number; + /** @example RIGHT */ + side?: string; + /** @example 26 */ + start_line?: number; + /** @example LEFT */ + start_side?: string; + }[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get a review for a pull request + * @description Retrieves a pull request review by its ID. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/get-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a review for a pull request + * @description Updates the contents of a specified review summary comment. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/update-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The body text of the pull request review. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Delete a pending review for a pull request + * @description Deletes a pull request review that has not been submitted. Submitted reviews cannot be deleted. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/delete-pending-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List comments for a pull request review + * @description Lists comments for a specific pull request review. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/list-comments-for-review": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["review-comment"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Dismiss a review for a pull request + * @description Dismisses a specified review on a pull request. + * + * **Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/branches/branch-protection), + * you must be a repository administrator or be included in the list of people or teams + * who can dismiss pull request reviews. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/dismiss-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The message for the pull request review dismissal */ + message: string; + /** + * @example "DISMISS" + * @enum {string} + */ + event?: "DISMISS"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Submit a review for a pull request + * @description Submits a pending review for a pull request. For more information about creating a pending review for a pull request, see "[Create a review for a pull request](https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request)." + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github-commitcomment.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github-commitcomment.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github-commitcomment.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github-commitcomment.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "pulls/submit-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The body text of the pull request review */ + body?: string; + /** + * @description The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action. + * @enum {string} + */ + event: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Update a pull request branch + * @description Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. + */ + "pulls/update-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a `422 Unprocessable Entity` status. You can use the "[List commits](https://docs.github.com/rest/commits/commits#list-commits)" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref. */ + expected_head_sha?: string; + } | null; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": { + message?: string; + url?: string; + }; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a repository README + * @description Gets the preferred README for a repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + "repos/get-readme": { + parameters: { + query?: { + /** @description The name of the commit/branch/tag. Default: the repository’s default branch. */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["content-file"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a repository README for a directory + * @description Gets the README from a repository directory. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw file contents. This is the default if you do not specify a media type. + * - **`application/vnd.github.html+json`**: Returns the README in HTML. Markup languages are rendered to HTML using GitHub's open-source [Markup library](https://github.com/github/markup). + */ + "repos/get-readme-in-directory": { + parameters: { + query?: { + /** @description The name of the commit/branch/tag. Default: the repository’s default branch. */ + ref?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The alternate path to look for a README file */ + dir: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["content-file"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List releases + * @description This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/repos/repos#list-repository-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + */ + "repos/list-releases": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["release"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a release + * @description Users with push access to the repository can create a release. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + */ + "repos/create-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the tag. */ + tag_name: string; + /** @description Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch. */ + target_commitish?: string; + /** @description The name of the release. */ + name?: string; + /** @description Text describing the contents of the tag. */ + body?: string; + /** + * @description `true` to create a draft (unpublished) release, `false` to create a published one. + * @default false + */ + draft?: boolean; + /** + * @description `true` to identify the release as a prerelease. `false` to identify the release as a full release. + * @default false + */ + prerelease?: boolean; + /** @description If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see "[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository)." */ + discussion_category_name?: string; + /** + * @description Whether to automatically generate the name and body for this release. If `name` is specified, the specified name will be used; otherwise, a name will be automatically generated. If `body` is specified, the body will be pre-pended to the automatically generated notes. + * @default false + */ + generate_release_notes?: boolean; + /** + * @description Specifies whether this release should be set as the latest release for the repository. Drafts and prereleases cannot be set as latest. Defaults to `true` for newly published releases. `legacy` specifies that the latest release should be determined based on the release creation date and higher semantic version. + * @default true + * @enum {string} + */ + make_latest?: "true" | "false" | "legacy"; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/releases/1 */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["release"]; + }; + }; + /** @description Not Found if the discussion category name is invalid */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a release asset + * @description To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. + */ + "repos/get-release-asset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + asset_id: components["parameters"]["asset-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release-asset"]; + }; + }; + 302: components["responses"]["found"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Delete a release asset */ + "repos/delete-release-asset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + asset_id: components["parameters"]["asset-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a release asset + * @description Users with push access to the repository can edit a release asset. + */ + "repos/update-release-asset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + asset_id: components["parameters"]["asset-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The file name of the asset. */ + name?: string; + /** @description An alternate short description of the asset. Used in place of the filename. */ + label?: string; + /** @example "uploaded" */ + state?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release-asset"]; + }; + }; + }; + }; + /** + * Generate release notes content for a release + * @description Generate a name and body describing a [release](https://docs.github.com/rest/releases/releases#get-a-release). The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release. + */ + "repos/generate-release-notes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The tag name for the release. This can be an existing tag or a new one. */ + tag_name: string; + /** @description Specifies the commitish value that will be the target for the release's tag. Required if the supplied tag_name does not reference an existing tag. Ignored if the tag_name already exists. */ + target_commitish?: string; + /** @description The name of the previous tag to use as the starting point for the release notes. Use to manually specify the range for the set of changes considered as part this release. */ + previous_tag_name?: string; + /** @description Specifies a path to a file in the repository containing configuration settings used for generating the release notes. If unspecified, the configuration file located in the repository at '.github/release.yml' or '.github/release.yaml' will be used. If that is not present, the default configuration will be used. */ + configuration_file_path?: string; + }; + }; + }; + responses: { + /** @description Name and body of generated release notes */ + 200: { + content: { + "application/json": components["schemas"]["release-notes-content"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get the latest release + * @description View the latest published full release for the repository. + * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + */ + "repos/get-latest-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + }; + }; + /** + * Get a release by tag name + * @description Get a published release with the specified tag. + */ + "repos/get-release-by-tag": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description tag parameter */ + tag: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a release + * @description Gets a public release with the specified release ID. + * + * **Note:** This returns an `upload_url` key corresponding to the endpoint + * for uploading release assets. This key is a hypermedia resource. For more information, see + * "[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." + */ + "repos/get-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** @description **Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource. For more information, see "[Getting started with the REST API](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia)." */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: never; + }; + }; + }; + /** + * Delete a release + * @description Users with push access to the repository can delete a release. + */ + "repos/delete-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a release + * @description Users with push access to the repository can edit a release. + */ + "repos/update-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The name of the tag. */ + tag_name?: string; + /** @description Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch. */ + target_commitish?: string; + /** @description The name of the release. */ + name?: string; + /** @description Text describing the contents of the tag. */ + body?: string; + /** @description `true` makes the release a draft, and `false` publishes the release. */ + draft?: boolean; + /** @description `true` to identify the release as a prerelease, `false` to identify the release as a full release. */ + prerelease?: boolean; + /** + * @description Specifies whether this release should be set as the latest release for the repository. Drafts and prereleases cannot be set as latest. Defaults to `true` for newly published releases. `legacy` specifies that the latest release should be determined based on the release creation date and higher semantic version. + * @default true + * @enum {string} + */ + make_latest?: "true" | "false" | "legacy"; + /** @description If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. If there is already a discussion linked to the release, this parameter is ignored. For more information, see "[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository)." */ + discussion_category_name?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + /** @description Not Found if the discussion category name is invalid */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** List release assets */ + "repos/list-release-assets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["release-asset"][]; + }; + }; + }; + }; + /** + * Upload a release asset + * @description This endpoint makes use of a [Hypermedia relation](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in + * the response of the [Create a release endpoint](https://docs.github.com/rest/releases/releases#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, + * you'll still need to pass your authentication to be able to upload an asset. + * + * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. + * + * **Notes:** + * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List release assets](https://docs.github.com/rest/releases/assets#list-release-assets)" + * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * * To find the `release_id` query the [`GET /repos/{owner}/{repo}/releases/latest` endpoint](https://docs.github.com/rest/releases/releases#get-the-latest-release). + * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. + */ + "repos/upload-release-asset": { + parameters: { + query: { + name: string; + label?: string; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + requestBody?: { + content: { + "application/octet-stream": string; + }; + }; + responses: { + /** @description Response for successful upload */ + 201: { + content: { + "application/json": components["schemas"]["release-asset"]; + }; + }; + /** @description Response if you upload an asset with the same filename as another uploaded asset */ + 422: { + content: never; + }; + }; + }; + /** + * List reactions for a release + * @description List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + "reactions/list-for-release": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a release. */ + content?: "+1" | "laugh" | "heart" | "hooray" | "rocket" | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create reaction for a release + * @description Create a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). A response with a `Status: 200 OK` means that you already added the reaction type to this release. + */ + "reactions/create-for-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the release. + * @enum {string} + */ + content: "+1" | "laugh" | "heart" | "hooray" | "rocket" | "eyes"; + }; + }; + }; + responses: { + /** @description Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** @description Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a release reaction + * @description **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id`. + * + * Delete a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). + */ + "reactions/delete-for-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release-id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Get rules for a branch + * @description Returns all active rules that apply to the specified branch. The branch does not need to exist; rules that would apply + * to a branch with that name will be returned. All active rules that apply will be returned, regardless of the level + * at which they are configured (e.g. repository or organization). Rules in rulesets with "evaluate" or "disabled" + * enforcement statuses are not returned. + */ + "repos/get-branch-rules": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-rule-detailed"][]; + }; + }; + }; + }; + /** + * Get all repository rulesets + * @description Get all the rulesets for a repository. + */ + "repos/get-repo-rulesets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + /** @description Include rulesets configured at higher levels that apply to this repository */ + includes_parents?: boolean; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"][]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create a repository ruleset + * @description Create a ruleset for a repository. + */ + "repos/create-repo-ruleset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + /** @description Request body */ + requestBody: { + content: { + "application/json": { + /** @description The name of the ruleset. */ + name: string; + /** + * @description The target of the ruleset. + * @enum {string} + */ + target?: "branch" | "tag"; + enforcement: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + conditions?: components["schemas"]["repository-ruleset-conditions"]; + /** @description An array of rules within the ruleset. */ + rules?: components["schemas"]["repository-rule"][]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List repository rule suites + * @description Lists suites of rule evaluations at the repository level. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + "repos/get-repo-rule-suites": { + parameters: { + query?: { + ref?: components["parameters"]["ref-in-query"]; + time_period?: components["parameters"]["time-period"]; + actor_name?: components["parameters"]["actor-name-in-query"]; + rule_suite_result?: components["parameters"]["rule-suite-result"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["rule-suites"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get a repository rule suite + * @description Gets information about a suite of rule evaluations from within a repository. + * For more information, see "[Managing rulesets for a repository](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/managing-rulesets-for-a-repository#viewing-insights-for-rulesets)." + */ + "repos/get-repo-rule-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + rule_suite_id: components["parameters"]["rule-suite-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["rule-suite"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get a repository ruleset + * @description Get a ruleset for a repository. + */ + "repos/get-repo-ruleset": { + parameters: { + query?: { + /** @description Include rulesets configured at higher levels that apply to this repository */ + includes_parents?: boolean; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update a repository ruleset + * @description Update a ruleset for a repository. + */ + "repos/update-repo-ruleset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + /** @description Request body */ + requestBody?: { + content: { + "application/json": { + /** @description The name of the ruleset. */ + name?: string; + /** + * @description The target of the ruleset. + * @enum {string} + */ + target?: "branch" | "tag"; + enforcement?: components["schemas"]["repository-rule-enforcement"]; + /** @description The actors that can bypass the rules in this ruleset */ + bypass_actors?: components["schemas"]["repository-ruleset-bypass-actor"][]; + conditions?: components["schemas"]["repository-ruleset-conditions"]; + /** @description An array of rules within the ruleset. */ + rules?: components["schemas"]["repository-rule"][]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-ruleset"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Delete a repository ruleset + * @description Delete a ruleset for a repository. + */ + "repos/delete-repo-ruleset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** @description The ID of the ruleset. */ + ruleset_id: number; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List secret scanning alerts for a repository + * @description Lists secret scanning alerts for an eligible repository, from newest to oldest. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/list-alerts-for-repo": { + parameters: { + query?: { + state?: components["parameters"]["secret-scanning-alert-state"]; + secret_type?: components["parameters"]["secret-scanning-alert-secret-type"]; + resolution?: components["parameters"]["secret-scanning-alert-resolution"]; + sort?: components["parameters"]["secret-scanning-alert-sort"]; + direction?: components["parameters"]["direction"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + before?: components["parameters"]["secret-scanning-pagination-before-org-repo"]; + after?: components["parameters"]["secret-scanning-pagination-after-org-repo"]; + validity?: components["parameters"]["secret-scanning-alert-validity"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["secret-scanning-alert"][]; + }; + }; + /** @description Repository is public or secret scanning is disabled for the repository */ + 404: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a secret scanning alert + * @description Gets a single secret scanning alert detected in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/get-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["secret-scanning-alert"]; + }; + }; + 304: components["responses"]["not_modified"]; + /** @description Repository is public, or secret scanning is disabled for the repository, or the resource is not found */ + 404: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Update a secret scanning alert + * @description Updates the status of a secret scanning alert in an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/update-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + state: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + resolution_comment?: components["schemas"]["secret-scanning-alert-resolution-comment"]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["secret-scanning-alert"]; + }; + }; + /** @description Bad request, resolution comment is invalid or the resolution was not changed. */ + 400: { + content: never; + }; + /** @description Repository is public, or secret scanning is disabled for the repository, or the resource is not found */ + 404: { + content: never; + }; + /** @description State does not match the resolution or resolution comment */ + 422: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List locations for a secret scanning alert + * @description Lists all locations for a given secret scanning alert for an eligible repository. + * + * The authenticated user must be an administrator for the repository or for the organization that owns the repository to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `security_events` scope to use this endpoint. If this endpoint is only used with public repositories, the token can use the `public_repo` scope instead. + */ + "secret-scanning/list-locations-for-alert": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["secret-scanning-location"][]; + }; + }; + /** @description Repository is public, or secret scanning is disabled for the repository, or the resource is not found */ + 404: { + content: never; + }; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List repository security advisories + * @description Lists security advisories in a repository. + * + * The authenticated user can access unpublished security advisories from a repository if they are a security manager or administrator of that repository, or if they are a collaborator on any security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + "security-advisories/list-repository-advisories": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "published"; + before?: components["parameters"]["pagination-before"]; + after?: components["parameters"]["pagination-after"]; + /** @description The number of advisories to return per page. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ + per_page?: number; + /** @description Filter by state of the repository advisories. Only advisories of this state will be returned. */ + state?: "triage" | "draft" | "published" | "closed"; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-advisory"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a repository security advisory + * @description Creates a new repository security advisory. + * + * In order to create a draft repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + "security-advisories/create-repository-advisory": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["repository-advisory-create"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["repository-advisory"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Privately report a security vulnerability + * @description Report a security vulnerability to the maintainers of the repository. + * See "[Privately reporting a security vulnerability](https://docs.github.com/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)" for more information about private vulnerability reporting. + */ + "security-advisories/create-private-vulnerability-report": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["private-vulnerability-report-create"]; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["repository-advisory"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a repository security advisory + * @description Get a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * Anyone can access any published security advisory on a public repository. + * + * The authenticated user can access an unpublished security advisory from a repository if they are a security manager or administrator of that repository, or if they are a + * collaborator on the security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:read` scope to to get a published security advisory in a private repository, or any unpublished security advisory that the authenticated user has access to. + */ + "security-advisories/get-repository-advisory": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-advisory"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update a repository security advisory + * @description Update a repository security advisory using its GitHub Security Advisory (GHSA) identifier. + * + * In order to update any security advisory, the authenticated user must be a security manager or administrator of that repository, + * or a collaborator on the repository security advisory. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + "security-advisories/update-repository-advisory": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["repository-advisory-update"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-advisory"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Validation failed, or the endpoint has been spammed. */ + 422: { + content: { + "application/json": components["schemas"]["validation-error"]; + }; + }; + }; + }; + /** + * Request a CVE for a repository security advisory + * @description If you want a CVE identification number for the security vulnerability in your project, and don't already have one, you can request a CVE identification number from GitHub. For more information see "[Requesting a CVE identification number](https://docs.github.com/code-security/security-advisories/repository-security-advisories/publishing-a-repository-security-advisory#requesting-a-cve-identification-number-optional)." + * + * You may request a CVE for public repositories, but cannot do so for private repositories. + * + * In order to request a CVE for a repository security advisory, the authenticated user must be a security manager or administrator of that repository. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` or `repository_advisories:write` scope to use this endpoint. + */ + "security-advisories/create-repository-advisory-cve-request": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a temporary private fork + * @description Create a temporary private fork to collaborate on fixing a security vulnerability in your repository. + * + * **Note**: Forking a repository happens asynchronously. You may have to wait up to 5 minutes before you can access the fork. + */ + "security-advisories/create-fork": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ghsa_id: components["parameters"]["ghsa_id"]; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List stargazers + * @description Lists the people that have starred the repository. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + "activity/list-stargazers-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": + | components["schemas"]["simple-user"][] + | components["schemas"]["stargazer"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get the weekly commit activity + * @description + * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. + * + * **Note:** This endpoint can only be used for repositories with fewer than 10,000 commits. If the repository contains + * 10,000 or more commits, a 422 status code will be returned. + */ + "repos/get-code-frequency-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Returns a weekly aggregate of the number of additions and deletions pushed to a repository. */ + 200: { + content: { + "application/json": components["schemas"]["code-frequency-stat"][]; + }; + }; + 202: components["responses"]["accepted"]; + 204: components["responses"]["no_content"]; + /** @description Repository contains more than 10,000 commits */ + 422: { + content: never; + }; + }; + }; + /** + * Get the last year of commit activity + * @description Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. + */ + "repos/get-commit-activity-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-activity"][]; + }; + }; + 202: components["responses"]["accepted"]; + 204: components["responses"]["no_content"]; + }; + }; + /** + * Get all contributor commit activity + * @description + * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: + * + * * `w` - Start of the week, given as a [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + * + * **Note:** This endpoint will return `0` values for all addition and deletion counts in repositories with 10,000 or more commits. + */ + "repos/get-contributors-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["contributor-activity"][]; + }; + }; + 202: components["responses"]["accepted"]; + 204: components["responses"]["no_content"]; + }; + }; + /** + * Get the weekly commit count + * @description Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + * + * The array order is oldest week (index 0) to most recent week. + * + * The most recent week is seven days ago at UTC midnight to today at UTC midnight. + */ + "repos/get-participation-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description The array order is oldest week (index 0) to most recent week. */ + 200: { + content: { + "application/json": components["schemas"]["participation-stats"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get the hourly commit count for each day + * @description Each array contains the day number, hour number, and number of commits: + * + * * `0-6`: Sunday - Saturday + * * `0-23`: Hour of day + * * Number of commits + * + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + "repos/get-punch-card-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. */ + 200: { + content: { + "application/json": components["schemas"]["code-frequency-stat"][]; + }; + }; + 204: components["responses"]["no_content"]; + }; + }; + /** + * Create a commit status + * @description Users with push access in a repository can create commit statuses for a given SHA. + * + * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + */ + "repos/create-commit-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + sha: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state of the status. + * @enum {string} + */ + state: "error" | "failure" | "pending" | "success"; + /** + * @description The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status. + * For example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: + * `http://ci.example.com/user/repo/build/sha` + */ + target_url?: string | null; + /** @description A short description of the status. */ + description?: string | null; + /** + * @description A string label to differentiate this status from the status of other systems. This field is case-insensitive. + * @default default + */ + context?: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["status"]; + }; + }; + }; + }; + /** + * List watchers + * @description Lists the people watching the specified repository. + */ + "activity/list-watchers-for-repo": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Get a repository subscription + * @description Gets information about whether the authenticated user is subscribed to the repository. + */ + "activity/get-repo-subscription": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description if you subscribe to the repository */ + 200: { + content: { + "application/json": components["schemas"]["repository-subscription"]; + }; + }; + 403: components["responses"]["forbidden"]; + /** @description Not Found if you don't subscribe to the repository */ + 404: { + content: never; + }; + }; + }; + /** + * Set a repository subscription + * @description If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/activity/watching#delete-a-repository-subscription) completely. + */ + "activity/set-repo-subscription": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description Determines if notifications should be received from this repository. */ + subscribed?: boolean; + /** @description Determines if all notifications should be blocked from this repository. */ + ignored?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-subscription"]; + }; + }; + }; + }; + /** + * Delete a repository subscription + * @description This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/activity/watching#set-a-repository-subscription). + */ + "activity/delete-repo-subscription": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** List repository tags */ + "repos/list-tags": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["tag"][]; + }; + }; + }; + }; + /** + * List tag protection states for a repository + * @description This returns the tag protection states of a repository. + * + * This information is only available to repository administrators. + */ + "repos/list-tag-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["tag-protection"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a tag protection state for a repository + * @description This creates a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + "repos/create-tag-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An optional glob pattern to match against when enforcing tag protection. */ + pattern: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["tag-protection"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a tag protection state for a repository + * @description This deletes a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + "repos/delete-tag-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + tag_protection_id: components["parameters"]["tag-protection-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Download a repository archive (tar) + * @description Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + "repos/download-tarball-archive": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: string; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * List repository teams + * @description Lists the teams that have access to the specified repository and that are also visible to the authenticated user. + * + * For a public repository, a team is listed only if that team added the public repository explicitly. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to use this endpoint with a public repository, and `repo` scope to use this endpoint with a private repository. + */ + "repos/list-teams": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Get all repository topics */ + "repos/get-all-topics": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["topic"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Replace all repository topics */ + "repos/replace-all-topics": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of topics to add to the repository. Pass one or more topics to _replace_ the set of existing topics. Send an empty array (`[]`) to clear all topics from the repository. **Note:** Topic `names` cannot contain uppercase letters. */ + names: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["topic"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Get repository clones + * @description Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + "repos/get-clones": { + parameters: { + query?: { + per?: components["parameters"]["per"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["clone-traffic"]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get top referral paths + * @description Get the top 10 popular contents over the last 14 days. + */ + "repos/get-top-paths": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["content-traffic"][]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get top referral sources + * @description Get the top 10 referrers over the last 14 days. + */ + "repos/get-top-referrers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["referrer-traffic"][]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get page views + * @description Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + "repos/get-views": { + parameters: { + query?: { + per?: components["parameters"]["per"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["view-traffic"]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Transfer a repository + * @description A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://docs.github.com/articles/about-repository-transfers/). + */ + "repos/transfer": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The username or organization name the repository will be transferred to. */ + new_owner: string; + /** @description The new name to be given to the repository. */ + new_name?: string; + /** @description ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories. */ + team_ids?: number[]; + }; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["minimal-repository"]; + }; + }; + }; + }; + /** + * Check if vulnerability alerts are enabled for a repository + * @description Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin read access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + "repos/check-vulnerability-alerts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response if repository is enabled with vulnerability alerts */ + 204: { + content: never; + }; + /** @description Not Found if repository is not enabled with vulnerability alerts */ + 404: { + content: never; + }; + }; + }; + /** + * Enable vulnerability alerts + * @description Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + "repos/enable-vulnerability-alerts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Disable vulnerability alerts + * @description Disables dependency alerts and the dependency graph for a repository. + * The authenticated user must have admin access to the repository. For more information, + * see "[About security alerts for vulnerable dependencies](https://docs.github.com/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + "repos/disable-vulnerability-alerts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Download a repository archive (zip) + * @description Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `main`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * + * **Note**: For private repositories, these links are temporary and expire after five minutes. If the repository is empty, you will receive a 404 when you follow the redirect. + */ + "repos/download-zipball-archive": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: string; + }; + }; + responses: { + /** @description Response */ + 302: { + headers: { + /** @example https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires */ + Location?: string; + }; + content: never; + }; + }; + }; + /** + * Create a repository using a template + * @description Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. If the repository is not public, the authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + "repos/create-using-template": { + parameters: { + path: { + /** @description The account owner of the template repository. The name is not case sensitive. */ + template_owner: string; + /** @description The name of the template repository without the `.git` extension. The name is not case sensitive. */ + template_repo: string; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization. */ + owner?: string; + /** @description The name of the new repository. */ + name: string; + /** @description A short description of the new repository. */ + description?: string; + /** + * @description Set to `true` to include the directory structure and files from all branches in the template repository, and not just the default branch. Default: `false`. + * @default false + */ + include_all_branches?: boolean; + /** + * @description Either `true` to create a new private repository or `false` to create a new public one. + * @default false + */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + }; + }; + /** + * List public repositories + * @description Lists all public repositories in the order that they were created. + * + * Note: + * - For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise. + * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of repositories. + */ + "repos/list-public": { + parameters: { + query?: { + since?: components["parameters"]["since-repo"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + /** @example ; rel="next" */ + Link?: string; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List environment secrets + * @description Lists all secrets available in an environment without revealing their + * encrypted values. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-environment-secrets": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["actions-secret"][]; + }; + }; + }; + }; + }; + /** + * Get an environment public key + * @description Get the public key for an environment, which you need to encrypt environment + * secrets. You need to encrypt a secret before you can create or update secrets. + * + * Anyone with read access to the repository can use this endpoint. + * + * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-environment-public-key": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + }; + /** + * Get an environment secret + * @description Gets a single environment secret without revealing its encrypted value. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-environment-secret": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-secret"]; + }; + }; + }; + }; + /** + * Create or update an environment secret + * @description Creates or updates an environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-or-update-environment-secret": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an environment public key](https://docs.github.com/rest/actions/secrets#get-an-environment-public-key) endpoint. */ + encrypted_value: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id: string; + }; + }; + }; + responses: { + /** @description Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response when updating a secret */ + 204: { + content: never; + }; + }; + }; + /** + * Delete an environment secret + * @description Deletes a secret in an environment using the secret name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read secrets. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-environment-secret": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Default response */ + 204: { + content: never; + }; + }; + }; + /** + * List environment variables + * @description Lists all environment variables. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/list-environment-variables": { + parameters: { + query?: { + per_page?: components["parameters"]["variables-per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + variables: components["schemas"]["actions-variable"][]; + }; + }; + }; + }; + }; + /** + * Create an environment variable + * @description Create an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/create-environment-variable": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name: string; + /** @description The value of the variable. */ + value: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + }; + /** + * Get an environment variable + * @description Gets a specific variable in an environment. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/get-environment-variable": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + environment_name: components["parameters"]["environment-name"]; + name: components["parameters"]["variable-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-variable"]; + }; + }; + }; + }; + /** + * Delete an environment variable + * @description Deletes an environment variable using the variable name. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/delete-environment-variable": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + name: components["parameters"]["variable-name"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update an environment variable + * @description Updates an environment variable that you can reference in a GitHub Actions workflow. + * + * Authenticated users must have collaborator access to a repository to create, update, or read variables. + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "actions/update-environment-variable": { + parameters: { + path: { + repository_id: components["parameters"]["repository-id"]; + name: components["parameters"]["variable-name"]; + environment_name: components["parameters"]["environment-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the variable. */ + name?: string; + /** @description The value of the variable. */ + value?: string; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Search code + * @description Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: + * + * `q=addClass+in:file+language:js+repo:jquery/jquery` + * + * This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. + * + * Considerations for code search: + * + * Due to the complexity of searching code, there are a few restrictions on how searches are performed: + * + * * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * * Only files smaller than 384 KB are searchable. + * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing + * language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + * + * This endpoint requires you to authenticate and limits you to 10 requests per minute. + */ + "search/code": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching code](https://docs.github.com/search-github/searching-on-github/searching-code)" for a detailed list of qualifiers. */ + q: string; + /** + * @deprecated + * @description **This field is deprecated.** Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) + */ + sort?: "indexed"; + /** + * @deprecated + * @description **This field is deprecated.** Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["code-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Search commits + * @description Find commits via various criteria on the default branch (usually `main`). This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match + * metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + * + * `q=repo:octocat/Spoon-Knife+css` + */ + "search/commits": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching commits](https://docs.github.com/search-github/searching-on-github/searching-commits)" for a detailed list of qualifiers. */ + q: string; + /** @description Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: "author-date" | "committer-date"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["commit-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Search issues and pull requests + * @description Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted + * search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * `q=windows+label:bug+language:python+state:open&sort=created&order=asc` + * + * This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. + * + * **Note:** For requests made by GitHub Apps with a user access token, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + */ + "search/issues-and-pull-requests": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching issues and pull requests](https://docs.github.com/search-github/searching-on-github/searching-issues-and-pull-requests)" for a detailed list of qualifiers. */ + q: string; + /** @description Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: + | "comments" + | "reactions" + | "reactions-+1" + | "reactions--1" + | "reactions-smile" + | "reactions-thinking_face" + | "reactions-heart" + | "reactions-tada" + | "interactions" + | "created" + | "updated"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["issue-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Search labels + * @description Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + * + * `q=bug+defect+enhancement&repository_id=64778136` + * + * The labels that best match the query appear first in the search results. + */ + "search/labels": { + parameters: { + query: { + /** @description The id of the repository. */ + repository_id: number; + /** @description The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). */ + q: string; + /** @description Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: "created" | "updated"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["label-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Search repositories + * @description Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: + * + * `q=tetris+language:assembly&sort=stars&order=desc` + * + * This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. + */ + "search/repos": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching for repositories](https://docs.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. */ + q: string; + /** @description Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: "stars" | "forks" | "help-wanted-issues" | "updated"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["repo-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Search topics + * @description Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). See "[Searching topics](https://docs.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: + * + * `q=ruby+is:featured` + * + * This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + */ + "search/topics": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). */ + q: string; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["topic-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Search users + * @description Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api). + * + * When searching for users, you can get text match metadata for the issue **login**, public **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/search/search#text-match-metadata). + * + * For example, if you're looking for a list of popular users, you might try this query: + * + * `q=tom+repos:%3E42+followers:%3E1000` + * + * This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. + * + * This endpoint does not accept authentication and will only include publicly visible users. As an alternative, you can use the GraphQL API. The GraphQL API requires authentication and will return private users, including Enterprise Managed Users (EMUs), that you are authorized to view. For more information, see "[GraphQL Queries](https://docs.github.com/graphql/reference/queries#search)." + */ + "search/users": { + parameters: { + query: { + /** @description The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/search/search#constructing-a-search-query). See "[Searching users](https://docs.github.com/search-github/searching-on-github/searching-users)" for a detailed list of qualifiers. */ + q: string; + /** @description Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://docs.github.com/rest/search/search#ranking-search-results) */ + sort?: "followers" | "repositories" | "joined"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["user-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Get a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/teams/teams#get-a-team-by-name) endpoint. + */ + "teams/get-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/teams/teams#delete-a-team) endpoint. + * + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + */ + "teams/delete-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Update a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/teams/teams#update-a-team) endpoint. + * + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** With nested teams, the `privacy` for parent teams cannot be `secret`. + */ + "teams/update-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the team. */ + name: string; + /** @description The description of the team. */ + description?: string; + /** + * @description The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: + * **For a non-nested team:** + * * `secret` - only visible to organization owners and members of this team. + * * `closed` - visible to all members of this organization. + * **For a parent or child team:** + * * `closed` - visible to all members of this organization. + * @enum {string} + */ + privacy?: "secret" | "closed"; + /** + * @description The notification setting the team has chosen. Editing teams without specifying this parameter leaves `notification_setting` intact. The options are: + * * `notifications_enabled` - team members receive notifications when the team is @mentioned. + * * `notifications_disabled` - no one receives notifications. + * @enum {string} + */ + notification_setting?: + | "notifications_enabled" + | "notifications_disabled"; + /** + * @description **Deprecated**. The permission that new repositories will be added to the team with when none is specified. + * @default pull + * @enum {string} + */ + permission?: "pull" | "push" | "admin"; + /** @description The ID of a team to set as the parent team. */ + parent_team_id?: number | null; + }; + }; + }; + responses: { + /** @description Response when the updated information already exists */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List discussions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List discussions`](https://docs.github.com/rest/teams/discussions#list-discussions) endpoint. + * + * List all discussions on a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/list-discussions-legacy": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-discussion"][]; + }; + }; + }; + }; + /** + * Create a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create a discussion`](https://docs.github.com/rest/teams/discussions#create-a-discussion) endpoint. + * + * Creates a new discussion post on a team's page. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/create-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title: string; + /** @description The discussion post's body text. */ + body: string; + /** + * @description Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + * @default false + */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * Get a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion) endpoint. + * + * Get a specific discussion on a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/get-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * Delete a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Delete a discussion`](https://docs.github.com/rest/teams/discussions#delete-a-discussion) endpoint. + * + * Delete a discussion from a team's page. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/delete-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion](https://docs.github.com/rest/teams/discussions#update-a-discussion) endpoint. + * + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/update-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title?: string; + /** @description The discussion post's body text. */ + body?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * List discussion comments (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List discussion comments](https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments) endpoint. + * + * List all comments on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/list-discussion-comments-legacy": { + parameters: { + query?: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-discussion-comment"][]; + }; + }; + }; + }; + /** + * Create a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Create a discussion comment](https://docs.github.com/rest/teams/discussion-comments#create-a-discussion-comment) endpoint. + * + * Creates a new comment on a team discussion. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits)" and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/create-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * Get a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment) endpoint. + * + * Get a specific comment on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "teams/get-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * Delete a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a discussion comment](https://docs.github.com/rest/teams/discussion-comments#delete-a-discussion-comment) endpoint. + * + * Deletes a comment on a team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/delete-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * Update a discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion comment](https://docs.github.com/rest/teams/discussion-comments#update-a-discussion-comment) endpoint. + * + * Edits the body text of a discussion comment. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "teams/update-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * List reactions for a team discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment) endpoint. + * + * List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "reactions/list-for-team-discussion-comment-legacy": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create reaction for a team discussion comment (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Create reaction for a team discussion comment](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment)" endpoint. + * + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/create-for-team-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the team discussion comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + }; + /** + * List reactions for a team discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion) endpoint. + * + * List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. + */ + "reactions/list-for-team-discussion-legacy": { + parameters: { + query?: { + /** @description Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create reaction for a team discussion (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion`](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion) endpoint. + * + * Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). + * + * A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. + */ + "reactions/create-for-team-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the team discussion. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + }; + /** + * List pending team invitations (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/teams/members#list-pending-team-invitations) endpoint. + * + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + "teams/list-pending-invitations-legacy": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + }; + }; + /** + * List team members (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/teams/members#list-team-members) endpoint. + * + * Team members will include the members of child teams. + */ + "teams/list-members-legacy": { + parameters: { + query?: { + /** @description Filters members returned by their role in the team. */ + role?: "member" | "maintainer" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get team member (Legacy) + * @deprecated + * @description The "Get team member" endpoint (described below) is deprecated. + * + * We recommend using the [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + "teams/get-member-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description if user is a member */ + 204: { + content: never; + }; + /** @description if user is not a member */ + 404: { + content: never; + }; + }; + }; + /** + * Add team member (Legacy) + * @deprecated + * @description The "Add team member" endpoint (described below) is deprecated. + * + * We recommend using the [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "teams/add-member-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + /** @description Not Found if team synchronization is set up */ + 404: { + content: never; + }; + /** @description Unprocessable Entity if you attempt to add an organization to a team or you attempt to add a user to a team when they are not a member of at least one other team in the same organization */ + 422: { + content: never; + }; + }; + }; + /** + * Remove team member (Legacy) + * @deprecated + * @description The "Remove team member" endpoint (described below) is deprecated. + * + * We recommend using the [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + "teams/remove-member-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Not Found if team synchronization is setup */ + 404: { + content: never; + }; + }; + }; + /** + * Get team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) endpoint. + * + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/teams/teams#create-a-team). + */ + "teams/get-membership-for-user-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Add or update team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + */ + "teams/add-or-update-membership-for-user-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The role that this user should have in the team. + * @default member + * @enum {string} + */ + role?: "member" | "maintainer"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + /** @description Forbidden if team synchronization is set up */ + 403: { + content: never; + }; + 404: components["responses"]["not_found"]; + /** @description Unprocessable Entity if you attempt to add an organization to a team */ + 422: { + content: never; + }; + }; + }; + /** + * Remove team membership for a user (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + "teams/remove-membership-for-user-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description if team synchronization is set up */ + 403: { + content: never; + }; + }; + }; + /** + * List team projects (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team projects`](https://docs.github.com/rest/teams/teams#list-team-projects) endpoint. + * + * Lists the organization projects for a team. + */ + "teams/list-projects-legacy": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-project"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check team permissions for a project (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a project](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-project) endpoint. + * + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + */ + "teams/check-permissions-for-project-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["team-project"]; + }; + }; + /** @description Not Found if project is not managed by this team */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team project permissions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team project permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-project-permissions) endpoint. + * + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + */ + "teams/add-or-update-project-permissions-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant to the team for this project. Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * @enum {string} + */ + permission?: "read" | "write" | "admin"; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + /** @description Forbidden if the project is not owned by the organization */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove a project from a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a project from a team](https://docs.github.com/rest/teams/teams#remove-a-project-from-a-team) endpoint. + * + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. **Note:** This endpoint removes the project from the team, but does not delete it. + */ + "teams/remove-project-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List team repositories (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/teams/teams#list-team-repositories) endpoint. + */ + "teams/list-repos-legacy": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check team permissions for a repository (Legacy) + * @deprecated + * @description **Note**: Repositories inherited through a parent team will also be checked. + * + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository) endpoint. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + "teams/check-permissions-for-repo-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Alternative response with extra repository information */ + 200: { + content: { + "application/json": components["schemas"]["team-repository"]; + }; + }; + /** @description Response if repository is managed by this team */ + 204: { + content: never; + }; + /** @description Not Found if repository is not managed by this team */ + 404: { + content: never; + }; + }; + }; + /** + * Add or update team repository permissions (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Add or update team repository permissions](https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions)" endpoint. + * + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "teams/add-or-update-repo-permissions-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** + * @description The permission to grant the team on this repository. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + * @enum {string} + */ + permission?: "pull" | "push" | "admin"; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove a repository from a team (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team) endpoint. + * + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team. + */ + "teams/remove-repo-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List child teams (Legacy) + * @deprecated + * @description **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/teams/teams#list-child-teams) endpoint. + */ + "teams/list-child-legacy": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** @description if child teams exist */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information. + */ + "users/get-authenticated": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": + | components["schemas"]["private-user"] + | components["schemas"]["public-user"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Update the authenticated user + * @description **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API. + */ + "users/update-authenticated": { + requestBody?: { + content: { + "application/json": { + /** + * @description The new name of the user. + * @example Omar Jahandar + */ + name?: string; + /** + * @description The publicly visible email address of the user. + * @example omar@example.com + */ + email?: string; + /** + * @description The new blog URL of the user. + * @example blog.example.com + */ + blog?: string; + /** + * @description The new Twitter username of the user. + * @example therealomarj + */ + twitter_username?: string | null; + /** + * @description The new company of the user. + * @example Acme corporation + */ + company?: string; + /** + * @description The new location of the user. + * @example Berlin, Germany + */ + location?: string; + /** @description The new hiring availability of the user. */ + hireable?: boolean; + /** @description The new short biography of the user. */ + bio?: string; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["private-user"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List users blocked by the authenticated user + * @description List the users you've blocked on your personal account. + */ + "users/list-blocked-by-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Check if a user is blocked by the authenticated user + * @description Returns a 204 if the given user is blocked by the authenticated user. Returns a 404 if the given user is not blocked by the authenticated user, or if the given user account has been identified as spam by GitHub. + */ + "users/check-blocked": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description If the user is blocked */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** @description If the user is not blocked */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Block a user + * @description Blocks the given user and returns a 204. If the authenticated user cannot block the given user a 422 is returned. + */ + "users/block": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Unblock a user + * @description Unblocks the given user and returns a 204. + */ + "users/unblock": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List codespaces for the authenticated user + * @description Lists the authenticated user's codespaces. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/list-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + repository_id?: components["parameters"]["repository-id-in-query"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create a codespace for the authenticated user + * @description Creates a new codespace, owned by the authenticated user. + * + * This endpoint requires either a `repository_id` OR a `pull_request` but not both. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/create-for-authenticated-user": { + requestBody: { + content: { + "application/json": OneOf< + [ + { + /** @description Repository id for this codespace */ + repository_id: number; + /** @description Git ref (typically a branch name) for this codespace */ + ref?: string; + /** @description The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided. */ + location?: string; + /** + * @description The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is being deprecated. + * @enum {string} + */ + geo?: "EuropeWest" | "SoutheastAsia" | "UsEast" | "UsWest"; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Whether to authorize requested permissions from devcontainer.json */ + multi_repo_permissions_opt_out?: boolean; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). */ + retention_period_minutes?: number; + }, + { + /** @description Pull request number for this codespace */ + pull_request: { + /** @description Pull request number */ + pull_request_number: number; + /** @description Repository id for this codespace */ + repository_id: number; + }; + /** @description The requested location for a new codespace. Best efforts are made to respect this upon creation. Assigned by IP if not provided. */ + location?: string; + /** + * @description The geographic area for this codespace. If not specified, the value is assigned by IP. This property replaces `location`, which is being deprecated. + * @enum {string} + */ + geo?: "EuropeWest" | "SoutheastAsia" | "UsEast" | "UsWest"; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + }, + ] + >; + }; + }; + responses: { + /** @description Response when the codespace was successfully created */ + 201: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + /** @description Response when the codespace creation partially failed but is being retried in the background */ + 202: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List secrets for the authenticated user + * @description Lists all development environment secrets available for a user's codespaces without revealing their + * encrypted values. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/list-secrets-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["codespaces-secret"][]; + }; + }; + }; + }; + }; + /** + * Get public key for the authenticated user + * @description Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/get-public-key-for-authenticated-user": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-user-public-key"]; + }; + }; + }; + }; + /** + * Get a secret for the authenticated user + * @description Gets a development environment secret available to a user's codespaces without revealing its encrypted value. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/get-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-secret"]; + }; + }; + }; + }; + /** + * Create or update a secret for the authenticated user + * @description Creates or updates a development environment secret for a user's codespace with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/create-or-update-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get the public key for the authenticated user](https://docs.github.com/rest/codespaces/secrets#get-public-key-for-the-authenticated-user) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id: string; + /** @description An array of repository ids that can access the user secret. You can manage the list of selected repositories using the [List selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret), [Set selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#set-selected-repositories-for-a-user-secret), and [Remove a selected repository from a user secret](https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret) endpoints. */ + selected_repository_ids?: (number | string)[]; + }; + }; + }; + responses: { + /** @description Response after successfully creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** @description Response after successfully updating a secret */ + 204: { + content: never; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete a secret for the authenticated user + * @description Deletes a development environment secret from a user's codespaces using the secret name. Deleting the secret will remove access from all codespaces that were allowed to access the secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/delete-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List selected repositories for a user secret + * @description List the repositories that have been granted the ability to use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/list-repositories-for-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Set selected repositories for a user secret + * @description Select the repositories that will use a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/set-repositories-for-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids for which a codespace can access the secret. You can manage the list of selected repositories using the [List selected repositories for a user secret](https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret), [Add a selected repository to a user secret](https://docs.github.com/rest/codespaces/secrets#add-a-selected-repository-to-a-user-secret), and [Remove a selected repository from a user secret](https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + responses: { + /** @description No Content when repositories were added to the selected list */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Add a selected repository to a user secret + * @description Adds a repository to the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/add-repository-for-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was added to the selected list */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Remove a selected repository from a user secret + * @description Removes a repository from the selected repositories for a user's development environment secret. + * + * The authenticated user must have Codespaces access to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` or `codespace:secrets` scope to use this endpoint. + */ + "codespaces/remove-repository-for-secret-for-authenticated-user": { + parameters: { + path: { + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** @description No Content when repository was removed from the selected list */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get a codespace for the authenticated user + * @description Gets information about a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/get-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Delete a codespace for the authenticated user + * @description Deletes a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/delete-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Update a codespace for the authenticated user + * @description Updates a codespace owned by the authenticated user. Currently only the codespace's machine type and recent folders can be modified using this endpoint. + * + * If you specify a new machine type it will be applied the next time your codespace is started. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/update-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + requestBody?: { + content: { + "application/json": { + /** @description A valid machine to transition this codespace to. */ + machine?: string; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Recently opened folders inside the codespace. It is currently used by the clients to determine the folder path to load the codespace in. */ + recent_folders?: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Export a codespace for the authenticated user + * @description Triggers an export of the specified codespace and returns a URL and ID where the status of the export can be monitored. + * + * If changes cannot be pushed to the codespace's repository, they will be pushed to a new or previously-existing fork instead. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/export-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 202: { + content: { + "application/json": components["schemas"]["codespace-export-details"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get details about a codespace export + * @description Gets information about an export of a codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/get-export-details-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + export_id: components["parameters"]["export-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace-export-details"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List machine types for a codespace + * @description List the machine types a codespace can transition to use. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/codespace-machines-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": { + total_count: number; + machines: components["schemas"]["codespace-machine"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Create a repository from an unpublished codespace + * @description Publishes an unpublished codespace, creating a new repository and assigning it to the codespace. + * + * The codespace's token is granted write permissions to the repository, allowing the user to push their changes. + * + * This will fail for a codespace that is already published, meaning it has an associated repository. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/publish-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description A name for the new repository. */ + name?: string; + /** + * @description Whether the new repository should be private. + * @default false + */ + private?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["codespace-with-full-repository"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Start a codespace for the authenticated user + * @description Starts a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/start-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + /** @description Payment required */ + 402: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Stop a codespace for the authenticated user + * @description Stops a user's codespace. + * + * OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint. + */ + "codespaces/stop-for-authenticated-user": { + parameters: { + path: { + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get list of conflicting packages during Docker migration for authenticated-user + * @description Lists all packages that are owned by the authenticated user within the user's namespace, and that encountered a conflict during a Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + "packages/list-docker-migration-conflicting-packages-for-authenticated-user": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + }; + }; + /** + * Set primary email visibility for the authenticated user + * @description Sets the visibility for your primary email addresses. + */ + "users/set-primary-email-visibility-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Denotes whether an email is publicly visible. + * @enum {string} + */ + visibility: "public" | "private"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List email addresses for the authenticated user + * @description Lists all of your email addresses, and specifies which one is visible + * to the public. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + "users/list-emails-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Add an email address for the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "users/add-email-for-authenticated-user": { + requestBody?: { + content: { + "application/json": { + /** + * @description Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key. + * @example [] + */ + emails: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete an email address for the authenticated user + * @description OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "users/delete-email-for-authenticated-user": { + requestBody?: { + content: { + "application/json": { + /** @description Email addresses associated with the GitHub user account. */ + emails: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List followers of the authenticated user + * @description Lists the people following the authenticated user. + */ + "users/list-followers-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List the people the authenticated user follows + * @description Lists the people who the authenticated user follows. + */ + "users/list-followed-by-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Check if a person is followed by the authenticated user */ + "users/check-person-is-followed-by-authenticated": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description if the person is followed by the authenticated user */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** @description if the person is not followed by the authenticated user */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Follow a user + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + * + * OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + "users/follow": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unfollow a user + * @description OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. + */ + "users/unfollow": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List GPG keys for the authenticated user + * @description Lists the current user's GPG keys. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + "users/list-gpg-keys-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["gpg-key"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a GPG key for the authenticated user + * @description Adds a GPG key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + "users/create-gpg-key-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** @description A descriptive name for the new key. */ + name?: string; + /** @description A GPG key in ASCII-armored format. */ + armored_public_key: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["gpg-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a GPG key for the authenticated user + * @description View extended details for a single GPG key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint. + */ + "users/get-gpg-key-for-authenticated-user": { + parameters: { + path: { + gpg_key_id: components["parameters"]["gpg-key-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["gpg-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a GPG key for the authenticated user + * @description Removes a GPG key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:gpg_key` scope to use this endpoint. + */ + "users/delete-gpg-key-for-authenticated-user": { + parameters: { + path: { + gpg_key_id: components["parameters"]["gpg-key-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List app installations accessible to the user access token + * @description Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You can find the permissions for the installation under the `permissions` key. + */ + "apps/list-installations-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description You can find the permissions for the installation under the `permissions` key. */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + installations: components["schemas"]["installation"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List repositories accessible to the user access token + * @description List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + "apps/list-installation-repos-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** @description The access the user has to each repository is included in the hash under the `permissions` key. */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": { + total_count: number; + repository_selection?: string; + repositories: components["schemas"]["repository"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Add a repository to an app installation + * @description Add a single repository to an installation. The authenticated user must have admin access to the repository. + */ + "apps/add-repo-to-installation-for-authenticated-user": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a repository from an app installation + * @description Remove a single repository from an installation. The authenticated user must have admin access to the repository. The installation must have the `repository_selection` of `selected`. + */ + "apps/remove-repo-from-installation-for-authenticated-user": { + parameters: { + path: { + installation_id: components["parameters"]["installation-id"]; + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** @description Returned when the application is installed on `all` repositories in the organization, or if this request would remove the last repository that the application has access to in the organization. */ + 422: { + content: never; + }; + }; + }; + /** + * Get interaction restrictions for your public repositories + * @description Shows which type of GitHub user can interact with your public repositories and when the restriction expires. + */ + "interactions/get-restrictions-for-authenticated-user": { + responses: { + /** @description Default response */ + 200: { + content: { + "application/json": + | components["schemas"]["interaction-limit-response"] + | Record; + }; + }; + /** @description Response when there are no restrictions */ + 204: { + content: never; + }; + }; + }; + /** + * Set interaction restrictions for your public repositories + * @description Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. + */ + "interactions/set-restrictions-for-authenticated-user": { + requestBody: { + content: { + "application/json": components["schemas"]["interaction-limit"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Remove interaction restrictions from your public repositories + * @description Removes any interaction restrictions from your public repositories. + */ + "interactions/remove-restrictions-for-authenticated-user": { + responses: { + /** @description Response */ + 204: { + content: never; + }; + }; + }; + /** + * List user account issues assigned to the authenticated user + * @description List issues across owned and member repositories assigned to the authenticated user. + * + * **Note**: GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. + * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`. + * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`. + * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`. + */ + "issues/list-for-authenticated-user": { + parameters: { + query?: { + /** @description Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. */ + filter?: + | "assigned" + | "created" + | "mentioned" + | "subscribed" + | "repos" + | "all"; + /** @description Indicates the state of the issues to return. */ + state?: "open" | "closed" | "all"; + labels?: components["parameters"]["labels"]; + /** @description What to sort results by. */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List public SSH keys for the authenticated user + * @description Lists the public SSH keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + "users/list-public-ssh-keys-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["key"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a public SSH key for the authenticated user + * @description Adds a public SSH key to the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint. + */ + "users/create-public-ssh-key-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description A descriptive name for the new key. + * @example Personal MacBook Air + */ + title?: string; + /** @description The public SSH key to add to your GitHub account. */ + key: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a public SSH key for the authenticated user + * @description View extended details for a single public SSH key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint. + */ + "users/get-public-ssh-key-for-authenticated-user": { + parameters: { + path: { + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete a public SSH key for the authenticated user + * @description Removes a public SSH key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:public_key` scope to use this endpoint. + */ + "users/delete-public-ssh-key-for-authenticated-user": { + parameters: { + path: { + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List subscriptions for the authenticated user + * @description Lists the active subscriptions for the authenticated user. + */ + "apps/list-subscriptions-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["user-marketplace-purchase"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List subscriptions for the authenticated user (stubbed) + * @description Lists the active subscriptions for the authenticated user. + */ + "apps/list-subscriptions-for-authenticated-user-stubbed": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["user-marketplace-purchase"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * List organization memberships for the authenticated user + * @description Lists all of the authenticated user's organization memberships. + */ + "orgs/list-memberships-for-authenticated-user": { + parameters: { + query?: { + /** @description Indicates the state of the memberships to return. If not specified, the API returns both active and pending memberships. */ + state?: "active" | "pending"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["org-membership"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an organization membership for the authenticated user + * @description If the authenticated user is an active or pending member of the organization, this endpoint will return the user's membership. If the authenticated user is not affiliated with the organization, a `404` is returned. This endpoint will return a `403` if the request is made by a GitHub App that is blocked by the organization. + */ + "orgs/get-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Update an organization membership for the authenticated user + * @description Converts the authenticated user to an active member of the organization, if that user has a pending invitation from the organization. + */ + "orgs/update-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state that the membership should be in. Only `"active"` will be accepted. + * @enum {string} + */ + state: "active"; + }; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List user migrations + * @description Lists all migrations a user has started. + */ + "migrations/list-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["migration"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Start a user migration + * @description Initiates the generation of a user migration archive. + */ + "migrations/start-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Lock the repositories being migrated at the start of the migration + * @example true + */ + lock_repositories?: boolean; + /** + * @description Indicates whether metadata should be excluded and only git source should be included for the migration. + * @example true + */ + exclude_metadata?: boolean; + /** + * @description Indicates whether the repository git data should be excluded from the migration. + * @example true + */ + exclude_git_data?: boolean; + /** + * @description Do not include attachments in the migration + * @example true + */ + exclude_attachments?: boolean; + /** + * @description Do not include releases in the migration + * @example true + */ + exclude_releases?: boolean; + /** + * @description Indicates whether projects owned by the organization or users should be excluded. + * @example true + */ + exclude_owner_projects?: boolean; + /** + * @description Indicates whether this should only include organization metadata (repositories array should be empty and will ignore other flags). + * @default false + * @example true + */ + org_metadata_only?: boolean; + /** + * @description Exclude attributes from the API response to improve performance + * @example [ + * "repositories" + * ] + */ + exclude?: "repositories"[]; + repositories: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a user migration status + * @description Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + * + * * `pending` - the migration hasn't started yet. + * * `exporting` - the migration is in progress. + * * `exported` - the migration finished successfully. + * * `failed` - the migration failed. + * + * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/migrations/users#download-a-user-migration-archive). + */ + "migrations/get-status-for-authenticated-user": { + parameters: { + query?: { + exclude?: string[]; + }; + path: { + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Download a user migration archive + * @description Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + * + * * attachments + * * bases + * * commit\_comments + * * issue\_comments + * * issue\_events + * * issues + * * milestones + * * organizations + * * projects + * * protected\_branches + * * pull\_request\_reviews + * * pull\_requests + * * releases + * * repositories + * * review\_comments + * * schema + * * users + * + * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + */ + "migrations/get-archive-for-authenticated-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 302: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Delete a user migration archive + * @description Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/migrations/users#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/migrations/users#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. + */ + "migrations/delete-archive-for-authenticated-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unlock a user repository + * @description Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/migrations/users#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/repos/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. + */ + "migrations/unlock-repo-for-authenticated-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration-id"]; + repo_name: components["parameters"]["repo-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories for a user migration + * @description Lists all the repositories for this user migration. + */ + "migrations/list-repos-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organizations for the authenticated user + * @description List organizations for the authenticated user. + * + * For OAuth app tokens and personal access tokens (classic), this endpoint only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope for OAuth app tokens and personal access tokens (classic). Requests with insufficient scope will receive a `403 Forbidden` response. + */ + "orgs/list-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List packages for the authenticated user's namespace + * @description Lists packages owned by the authenticated user within the user's namespace. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/list-packages-for-authenticated-user": { + parameters: { + query: { + /** @description The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + visibility?: components["parameters"]["package-visibility"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 400: components["responses"]["package_es_list_error"]; + }; + }; + /** + * Get a package for the authenticated user + * @description Gets a specific package for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"]; + }; + }; + }; + }; + /** + * Delete a package for the authenticated user + * @description Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, `repo` scope is also required. For the list these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore a package for the authenticated user + * @description Restores a package owned by the authenticated user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-for-authenticated-user": { + parameters: { + query?: { + /** @description package token */ + token?: string; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List package versions for a package owned by the authenticated user + * @description Lists package versions for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-all-package-versions-for-package-owned-by-authenticated-user": { + parameters: { + query?: { + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + /** @description The state of the package, either active or deleted. */ + state?: "active" | "deleted"; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a package version for the authenticated user + * @description Gets a specific package version for a package owned by the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-version-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"]; + }; + }; + }; + }; + /** + * Delete a package version for the authenticated user + * @description Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * The authenticated user must have admin permissions in the organization to use this endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-version-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore a package version for the authenticated user + * @description Restores a package version owned by the authenticated user. + * + * You can restore a deleted package version under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-version-for-authenticated-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a user project + * @description Creates a user project board. Returns a `410 Gone` status if the user does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/create-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Name of the project + * @example Week One Sprint + */ + name: string; + /** + * @description Body of the project + * @example This project represents the sprint of the first week in January + */ + body?: string | null; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * List public email addresses for the authenticated user + * @description Lists your publicly visible email address, which you can set with the + * [Set primary email visibility for the authenticated user](https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user) + * endpoint. + * + * OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint. + */ + "users/list-public-emails-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories for the authenticated user + * @description Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + */ + "repos/list-for-authenticated-user": { + parameters: { + query?: { + /** @description Limit results to repositories with the specified visibility. */ + visibility?: "all" | "public" | "private"; + /** + * @description Comma-separated list of values. Can include: + * * `owner`: Repositories that are owned by the authenticated user. + * * `collaborator`: Repositories that the user has been added to as a collaborator. + * * `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on. + */ + affiliation?: string; + /** @description Limit results to repositories of the specified type. Will cause a `422` error if used in the same request as **visibility** or **affiliation**. */ + type?: "all" | "owner" | "public" | "private" | "member"; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** @description The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + since?: components["parameters"]["since-repo-date"]; + before?: components["parameters"]["before-repo-date"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Create a repository for the authenticated user + * @description Creates a new repository for the authenticated user. + * + * OAuth app tokens and personal access tokens (classic) need the `public_repo` or `repo` scope to create a public repository, and `repo` scope to create a private repository. + */ + "repos/create-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @description A short description of the repository. */ + description?: string; + /** @description A URL with more information about the repository. */ + homepage?: string; + /** + * @description Whether the repository is private. + * @default false + */ + private?: boolean; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues?: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects?: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki?: boolean; + /** + * @description Whether discussions are enabled. + * @default false + * @example true + */ + has_discussions?: boolean; + /** @description The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. */ + team_id?: number; + /** + * @description Whether the repository is initialized with a minimal README. + * @default false + */ + auto_init?: boolean; + /** + * @description The desired language or platform to apply to the .gitignore. + * @example Haskell + */ + gitignore_template?: string; + /** + * @description The license keyword of the open source license for this repository. + * @example mit + */ + license_template?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description The default value for a squash merge commit title: + * + * - `PR_TITLE` - default to the pull request's title. + * - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + * @enum {string} + */ + squash_merge_commit_title?: "PR_TITLE" | "COMMIT_OR_PR_TITLE"; + /** + * @description The default value for a squash merge commit message: + * + * - `PR_BODY` - default to the pull request's body. + * - `COMMIT_MESSAGES` - default to the branch's commit messages. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + squash_merge_commit_message?: "PR_BODY" | "COMMIT_MESSAGES" | "BLANK"; + /** + * @description The default value for a merge commit title. + * + * - `PR_TITLE` - default to the pull request's title. + * - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + * @enum {string} + */ + merge_commit_title?: "PR_TITLE" | "MERGE_MESSAGE"; + /** + * @description The default value for a merge commit message. + * + * - `PR_TITLE` - default to the pull request's title. + * - `PR_BODY` - default to the pull request's body. + * - `BLANK` - default to a blank commit message. + * @enum {string} + */ + merge_commit_message?: "PR_BODY" | "PR_TITLE" | "BLANK"; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads?: boolean; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + headers: { + /** @example https://api.github.com/repos/octocat/Hello-World */ + Location?: string; + }; + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List repository invitations for the authenticated user + * @description When authenticating as a user, this endpoint will list all currently open repository invitations for that user. + */ + "repos/list-invitations-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["repository-invitation"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Decline a repository invitation */ + "repos/decline-invitation-for-authenticated-user": { + parameters: { + path: { + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + }; + }; + /** Accept a repository invitation */ + "repos/accept-invitation-for-authenticated-user": { + parameters: { + path: { + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + }; + }; + /** + * List social accounts for the authenticated user + * @description Lists all of your social accounts. + */ + "users/list-social-accounts-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["social-account"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Add social accounts for the authenticated user + * @description Add one or more social accounts to the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "users/add-social-account-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Full URLs for the social media profiles to add. + * @example [] + */ + account_urls: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["social-account"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Delete social accounts for the authenticated user + * @description Deletes one or more social accounts from the authenticated user's profile. + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "users/delete-social-account-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description Full URLs for the social media profiles to delete. + * @example [] + */ + account_urls: string[]; + }; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List SSH signing keys for the authenticated user + * @description Lists the SSH signing keys for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + "users/list-ssh-signing-keys-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["ssh-signing-key"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Create a SSH signing key for the authenticated user + * @description Creates an SSH signing key for the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `write:ssh_signing_key` scope to use this endpoint. + */ + "users/create-ssh-signing-key-for-authenticated-user": { + requestBody: { + content: { + "application/json": { + /** + * @description A descriptive name for the new key. + * @example Personal MacBook Air + */ + title?: string; + /** @description The public SSH key to add to your GitHub account. For more information, see "[Checking for existing SSH keys](https://docs.github.com/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys)." */ + key: string; + }; + }; + }; + responses: { + /** @description Response */ + 201: { + content: { + "application/json": components["schemas"]["ssh-signing-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get an SSH signing key for the authenticated user + * @description Gets extended details for an SSH signing key. + * + * OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint. + */ + "users/get-ssh-signing-key-for-authenticated-user": { + parameters: { + path: { + ssh_signing_key_id: components["parameters"]["ssh-signing-key-id"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["ssh-signing-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Delete an SSH signing key for the authenticated user + * @description Deletes an SSH signing key from the authenticated user's GitHub account. + * + * OAuth app tokens and personal access tokens (classic) need the `admin:ssh_signing_key` scope to use this endpoint. + */ + "users/delete-ssh-signing-key-for-authenticated-user": { + parameters: { + path: { + ssh_signing_key_id: components["parameters"]["ssh-signing-key-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories starred by the authenticated user + * @description Lists repositories the authenticated user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + "activity/list-repos-starred-by-authenticated-user": { + parameters: { + query?: { + sort?: components["parameters"]["sort-starred"]; + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["repository"][]; + "application/vnd.github.v3.star+json": components["schemas"]["starred-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Check if a repository is starred by the authenticated user + * @description Whether the authenticated user has starred the repository. + */ + "activity/check-repo-is-starred-by-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response if this repository is starred by you */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** @description Not Found if this repository is not starred by you */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Star a repository for the authenticated user + * @description Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)." + */ + "activity/star-repo-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Unstar a repository for the authenticated user + * @description Unstar a repository that the authenticated user has previously starred. + */ + "activity/unstar-repo-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List repositories watched by the authenticated user + * @description Lists repositories the authenticated user is watching. + */ + "activity/list-watched-repos-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List teams for the authenticated user + * @description List all of the teams across all of the organizations to which the authenticated + * user belongs. + * + * OAuth app tokens and personal access tokens (classic) need the `user`, `repo`, or `read:org` scope to use this endpoint. + * + * When using a fine-grained personal access token, the resource owner of the token must be a single organization, and the response will only include the teams from that organization. + */ + "teams/list-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["team-full"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List users + * @description Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers) to get the URL for the next page of users. + */ + "users/list": { + parameters: { + query?: { + since?: components["parameters"]["since-user"]; + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + /** @example ; rel="next" */ + Link?: string; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Get a user + * @description Provides publicly available information about someone with a GitHub account. + * + * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#authentication). + * + * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://docs.github.com/rest/users/emails)". + */ + "users/get-by-username": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": + | components["schemas"]["private-user"] + | components["schemas"]["public-user"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get list of conflicting packages during Docker migration for user + * @description Lists all packages that are in a specific user's namespace, that the requesting user has access to, and that encountered a conflict during Docker migration. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. + */ + "packages/list-docker-migration-conflicting-packages-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List events for the authenticated user + * @description If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. + */ + "activity/list-events-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** + * List organization events for the authenticated user + * @description This is the user's organization dashboard. You must be authenticated as the user to view this. + */ + "activity/list-org-events-for-authenticated-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + org: components["parameters"]["org"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** List public events for a user */ + "activity/list-public-events-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** + * List followers of a user + * @description Lists the people following the specified user. + */ + "users/list-followers-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * List the people a user follows + * @description Lists the people who the specified user follows. + */ + "users/list-following-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** Check if a user follows another user */ + "users/check-following-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + target_user: string; + }; + }; + responses: { + /** @description if the user follows the target user */ + 204: { + content: never; + }; + /** @description if the user does not follow the target user */ + 404: { + content: never; + }; + }; + }; + /** + * List gists for a user + * @description Lists public gists for the specified user: + */ + "gists/list-for-user": { + parameters: { + query?: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List GPG keys for a user + * @description Lists the GPG keys for a user. This information is accessible by anyone. + */ + "users/list-gpg-keys-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["gpg-key"][]; + }; + }; + }; + }; + /** + * Get contextual information for a user + * @description Provides hovercard information. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + * + * The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository via cURL, it would look like this: + * + * ```shell + * curl -u username:token + * https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192 + * ``` + * + * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + */ + "users/get-context-for-user": { + parameters: { + query?: { + /** @description Identifies which additional information you'd like to receive about the person's hovercard. Can be `organization`, `repository`, `issue`, `pull_request`. **Required** when using `subject_id`. */ + subject_type?: "organization" | "repository" | "issue" | "pull_request"; + /** @description Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`. */ + subject_id?: string; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["hovercard"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Get a user installation for the authenticated app + * @description Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-user-installation": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + }; + }; + /** + * List public keys for a user + * @description Lists the _verified_ public SSH keys for a user. This is accessible by anyone. + */ + "users/list-public-keys-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["key-simple"][]; + }; + }; + }; + }; + /** + * List organizations for a user + * @description List [public organization memberships](https://docs.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user) API instead. + */ + "orgs/list-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["organization-simple"][]; + }; + }; + }; + }; + /** + * List packages for a user + * @description Lists all packages in a user's namespace for which the requesting user has access. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/list-packages-for-user": { + parameters: { + query: { + /** @description The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + visibility?: components["parameters"]["package-visibility"]; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per-page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 400: components["responses"]["package_es_list_error"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Get a package for a user + * @description Gets a specific package metadata for a public package owned by a user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package"]; + }; + }; + }; + }; + /** + * Delete a package for a user + * @description Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore a package for a user + * @description Restores an entire package for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-for-user": { + parameters: { + query?: { + /** @description package token */ + token?: string; + }; + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List package versions for a package owned by a user + * @description Lists package versions for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-all-package-versions-for-package-owned-by-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get a package version for a user + * @description Gets a specific package version for a public package owned by a specified user. + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/get-package-version-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + package_version_id: components["parameters"]["package-version-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"]; + }; + }; + }; + }; + /** + * Delete package version for a user + * @description Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/delete-package-version-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restore package version for a user + * @description Restores a specific package version for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * If the `package_type` belongs to a GitHub Packages registry that supports granular permissions, the authenticated user must have admin permissions to the package. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `write:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)." + */ + "packages/restore-package-version-for-user": { + parameters: { + path: { + package_type: components["parameters"]["package-type"]; + package_name: components["parameters"]["package-name"]; + username: components["parameters"]["username"]; + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** @description Response */ + 204: { + content: never; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List user projects + * @description Lists projects for a user. + */ + "projects/list-for-user": { + parameters: { + query?: { + /** @description Indicates the state of the projects to return. */ + state?: "open" | "closed" | "all"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["project"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * List events received by the authenticated user + * @description These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. + */ + "activity/list-received-events-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** List public events received by a user */ + "activity/list-received-public-events-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** + * List repositories for a user + * @description Lists public repositories for the specified user. + */ + "repos/list-for-user": { + parameters: { + query?: { + /** @description Limit results to repositories of the specified type. */ + type?: "all" | "owner" | "member"; + /** @description The property to sort the results by. */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** @description The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`. */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Get GitHub Actions billing for a user + * @description Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "billing/get-github-actions-billing-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-billing-usage"]; + }; + }; + }; + }; + /** + * Get GitHub Packages billing for a user + * @description Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "billing/get-github-packages-billing-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["packages-billing-usage"]; + }; + }; + }; + }; + /** + * Get shared storage billing for a user + * @description Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + */ + "billing/get-shared-storage-billing-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["combined-billing-usage"]; + }; + }; + }; + }; + /** + * List social accounts for a user + * @description Lists social media accounts for a user. This endpoint is accessible by anyone. + */ + "users/list-social-accounts-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["social-account"][]; + }; + }; + }; + }; + /** + * List SSH signing keys for a user + * @description Lists the SSH signing keys for a user. This operation is accessible by anyone. + */ + "users/list-ssh-signing-keys-for-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["ssh-signing-key"][]; + }; + }; + }; + }; + /** + * List repositories starred by a user + * @description Lists repositories a user has starred. + * + * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)." + * + * - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. + */ + "activity/list-repos-starred-by-user": { + parameters: { + query?: { + sort?: components["parameters"]["sort-starred"]; + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": + | components["schemas"]["starred-repository"][] + | components["schemas"]["repository"][]; + }; + }; + }; + }; + /** + * List repositories watched by a user + * @description Lists repositories a user is watching. + */ + "activity/list-repos-watched-by-user": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** @description Response */ + 200: { + headers: { + Link: components["headers"]["link"]; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Get all API versions + * @description Get all supported GitHub API versions. + */ + "meta/get-all-versions": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Get the Zen of GitHub + * @description Get a random sentence from the Zen of GitHub + */ + "meta/get-zen": { + responses: { + /** @description Response */ + 200: { + content: { + "application/json": string; + }; + }; + }; + }; + /** + * Compare two commits + * @description **Deprecated**: Use `repos.compareCommitsWithBasehead()` (`GET /repos/{owner}/{repo}/compare/{basehead}`) instead. Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + * + * When calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/compare-commits": { + parameters: { + query?: { + per_page?: components["parameters"]["per-page"]; + page?: components["parameters"]["page"]; + }; + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + base: string; + head: string; + }; + }; + responses: { + /** @description Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comparison"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/LICENSE b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/LICENSE new file mode 100644 index 000000000..57bee5f18 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +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: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +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. diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/README.md b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/README.md new file mode 100644 index 000000000..7ebe154a1 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/README.md @@ -0,0 +1,65 @@ +# types.ts + +> Shared TypeScript definitions for Octokit projects + +[![@latest](https://img.shields.io/npm/v/@octokit/types.svg)](https://www.npmjs.com/package/@octokit/types) +[![Build Status](https://github.com/octokit/types.ts/workflows/Test/badge.svg)](https://github.com/octokit/types.ts/actions?workflow=Test) + + + +- [Usage](#usage) +- [Examples](#examples) + - [Get parameter and response data types for a REST API endpoint](#get-parameter-and-response-data-types-for-a-rest-api-endpoint) + - [Get response types from endpoint methods](#get-response-types-from-endpoint-methods) +- [Contributing](#contributing) +- [License](#license) + + + +## Usage + +See all exported types at https://octokit.github.io/types.ts + +## Examples + +### Get parameter and response data types for a REST API endpoint + +```ts +import { Endpoints } from "@octokit/types"; + +type listUserReposParameters = + Endpoints["GET /repos/{owner}/{repo}"]["parameters"]; +type listUserReposResponse = Endpoints["GET /repos/{owner}/{repo}"]["response"]; + +async function listRepos( + options: listUserReposParameters, +): listUserReposResponse["data"] { + // ... +} +``` + +### Get response types from endpoint methods + +```ts +import { + GetResponseTypeFromEndpointMethod, + GetResponseDataTypeFromEndpointMethod, +} from "@octokit/types"; +import { Octokit } from "@octokit/rest"; + +const octokit = new Octokit(); +type CreateLabelResponseType = GetResponseTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +type CreateLabelResponseDataType = GetResponseDataTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +``` + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/AuthInterface.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/AuthInterface.d.ts new file mode 100644 index 000000000..616d6d57d --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/AuthInterface.d.ts @@ -0,0 +1,31 @@ +import type { EndpointOptions } from "./EndpointOptions"; +import type { OctokitResponse } from "./OctokitResponse"; +import type { RequestInterface } from "./RequestInterface"; +import type { RequestParameters } from "./RequestParameters"; +import type { Route } from "./Route"; +/** + * Interface to implement complex authentication strategies for Octokit. + * An object Implementing the AuthInterface can directly be passed as the + * `auth` option in the Octokit constructor. + * + * For the official implementations of the most common authentication + * strategies, see https://github.com/octokit/auth.js + */ +export interface AuthInterface { + (...args: AuthOptions): Promise; + hook: { + /** + * Sends a request using the passed `request` instance + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, options: EndpointOptions): Promise>; + /** + * Sends a request using the passed `request` instance + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, route: Route, parameters?: RequestParameters): Promise>; + }; +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts new file mode 100644 index 000000000..3bbc38890 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts @@ -0,0 +1,21 @@ +import type { RequestHeaders } from "./RequestHeaders"; +import type { RequestMethod } from "./RequestMethod"; +import type { RequestParameters } from "./RequestParameters"; +import type { Url } from "./Url"; +/** + * The `.endpoint()` method is guaranteed to set all keys defined by RequestParameters + * as well as the method property. + */ +export type EndpointDefaults = RequestParameters & { + baseUrl: Url; + method: RequestMethod; + url?: Url; + headers: RequestHeaders & { + accept: string; + "user-agent": string; + }; + mediaType: { + format: string; + previews?: string[]; + }; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts new file mode 100644 index 000000000..184bf7361 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts @@ -0,0 +1,65 @@ +import type { EndpointDefaults } from "./EndpointDefaults"; +import type { RequestOptions } from "./RequestOptions"; +import type { RequestParameters } from "./RequestParameters"; +import type { Route } from "./Route"; +import type { Endpoints } from "./generated/Endpoints"; +export interface EndpointInterface { + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {object} endpoint Must set `url` unless it's set defaults. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): RequestOptions & Pick; + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, parameters?: P): (R extends keyof Endpoints ? Endpoints[R]["request"] : RequestOptions) & Pick; + /** + * Object with current default route and parameters + */ + DEFAULTS: D & EndpointDefaults; + /** + * Returns a new `endpoint` interface with new defaults + */ + defaults: (newDefaults: O) => EndpointInterface; + merge: { + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * + */ + (route: keyof Endpoints | R, parameters?: P): D & (R extends keyof Endpoints ? Endpoints[R]["request"] & Endpoints[R]["parameters"] : EndpointDefaults) & P; + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ +

(options: P): EndpointDefaults & D & P; + /** + * Returns current default options. + * + * @deprecated use endpoint.DEFAULTS instead + */ + (): D & EndpointDefaults; + }; + /** + * Stateless method to turn endpoint options into request options. + * Calling `endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`. + * + * @param {object} options `method`, `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + parse: (options: O) => RequestOptions & Pick; +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts new file mode 100644 index 000000000..e77168eac --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts @@ -0,0 +1,7 @@ +import type { RequestMethod } from "./RequestMethod"; +import type { Url } from "./Url"; +import type { RequestParameters } from "./RequestParameters"; +export type EndpointOptions = RequestParameters & { + method: RequestMethod; + url: Url; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Fetch.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Fetch.d.ts new file mode 100644 index 000000000..983c79be1 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Fetch.d.ts @@ -0,0 +1,4 @@ +/** + * Browser's fetch method (or compatible such as fetch-mock) + */ +export type Fetch = any; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts new file mode 100644 index 000000000..2daaf34db --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts @@ -0,0 +1,5 @@ +type Unwrap = T extends Promise ? U : T; +type AnyFunction = (...args: any[]) => any; +export type GetResponseTypeFromEndpointMethod = Unwrap>; +export type GetResponseDataTypeFromEndpointMethod = Unwrap>["data"]; +export {}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts new file mode 100644 index 000000000..bc6ab1099 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts @@ -0,0 +1,17 @@ +import type { ResponseHeaders } from "./ResponseHeaders"; +import type { Url } from "./Url"; +export interface OctokitResponse { + headers: ResponseHeaders; + /** + * http response code + */ + status: S; + /** + * URL of response after all redirects + */ + url: Url; + /** + * Response data as documented in the REST API reference documentation at https://docs.github.com/rest/reference + */ + data: T; +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestError.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestError.d.ts new file mode 100644 index 000000000..46083923d --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestError.d.ts @@ -0,0 +1,11 @@ +export type RequestError = { + name: string; + status: number; + documentation_url: string; + errors?: Array<{ + resource: string; + code: string; + field: string; + message?: string; + }>; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts new file mode 100644 index 000000000..423115948 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts @@ -0,0 +1,15 @@ +export type RequestHeaders = { + /** + * Avoid setting `headers.accept`, use `mediaType.{format|previews}` option instead. + */ + accept?: string; + /** + * Use `authorization` to send authenticated request, remember `token ` / `bearer ` prefixes. Example: `token 1234567890abcdef1234567890abcdef12345678` + */ + authorization?: string; + /** + * `user-agent` is set do a default and can be overwritten as needed. + */ + "user-agent"?: string; + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestInterface.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestInterface.d.ts new file mode 100644 index 000000000..cc757e4c4 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestInterface.d.ts @@ -0,0 +1,34 @@ +import type { EndpointInterface } from "./EndpointInterface"; +import type { OctokitResponse } from "./OctokitResponse"; +import type { RequestParameters } from "./RequestParameters"; +import type { Route } from "./Route"; +import type { Endpoints } from "./generated/Endpoints"; +export interface RequestInterface { + /** + * Sends a request based on endpoint options + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): Promise>; + /** + * Sends a request based on endpoint options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, options?: R extends keyof Endpoints ? Endpoints[R]["parameters"] & RequestParameters : RequestParameters): R extends keyof Endpoints ? Promise : Promise>; + /** + * Returns a new `request` with updated route and parameters + */ + defaults: (newDefaults: O) => RequestInterface; + /** + * Octokit endpoint API, see {@link https://github.com/octokit/endpoint.js|@octokit/endpoint} + */ + endpoint: EndpointInterface; +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestMethod.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestMethod.d.ts new file mode 100644 index 000000000..4cdfe61c8 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestMethod.d.ts @@ -0,0 +1,4 @@ +/** + * HTTP Verb supported by GitHub's REST API + */ +export type RequestMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT"; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestOptions.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestOptions.d.ts new file mode 100644 index 000000000..b799c0f8e --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestOptions.d.ts @@ -0,0 +1,14 @@ +import type { RequestHeaders } from "./RequestHeaders"; +import type { RequestMethod } from "./RequestMethod"; +import type { RequestRequestOptions } from "./RequestRequestOptions"; +import type { Url } from "./Url"; +/** + * Generic request options as they are returned by the `endpoint()` method + */ +export type RequestOptions = { + method: RequestMethod; + url: Url; + headers: RequestHeaders; + body?: any; + request?: RequestRequestOptions; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestParameters.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestParameters.d.ts new file mode 100644 index 000000000..e21247876 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestParameters.d.ts @@ -0,0 +1,45 @@ +import type { RequestRequestOptions } from "./RequestRequestOptions"; +import type { RequestHeaders } from "./RequestHeaders"; +import type { Url } from "./Url"; +/** + * Parameters that can be passed into `request(route, parameters)` or `endpoint(route, parameters)` methods + */ +export type RequestParameters = { + /** + * Base URL to be used when a relative URL is passed, such as `/orgs/{org}`. + * If `baseUrl` is `https://enterprise.acme-inc.com/api/v3`, then the request + * will be sent to `https://enterprise.acme-inc.com/api/v3/orgs/{org}`. + */ + baseUrl?: Url; + /** + * HTTP headers. Use lowercase keys. + */ + headers?: RequestHeaders; + /** + * Media type options, see {@link https://developer.github.com/v3/media/|GitHub Developer Guide} + */ + mediaType?: { + /** + * `json` by default. Can be `raw`, `text`, `html`, `full`, `diff`, `patch`, `sha`, `base64`. Depending on endpoint + */ + format?: string; + /** + * Custom media type names of {@link https://docs.github.com/en/graphql/overview/schema-previews|GraphQL API Previews} without the `-preview` suffix. + * Example for single preview: `['squirrel-girl']`. + * Example for multiple previews: `['squirrel-girl', 'mister-fantastic']`. + */ + previews?: string[]; + }; + /** + * Pass custom meta information for the request. The `request` object will be returned as is. + */ + request?: RequestRequestOptions; + /** + * Any additional parameter will be passed as follows + * 1. URL parameter if `':parameter'` or `{parameter}` is part of `url` + * 2. Query parameter if `method` is `'GET'` or `'HEAD'` + * 3. Request body if `parameter` is `'data'` + * 4. JSON in the request body in the form of `body[parameter]` unless `parameter` key is `'data'` + */ + [parameter: string]: unknown; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts new file mode 100644 index 000000000..0e4d269a2 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts @@ -0,0 +1,20 @@ +import type { Fetch } from "./Fetch"; +import type { Signal } from "./Signal"; +/** + * Octokit-specific request options which are ignored for the actual request, but can be used by Octokit or plugins to manipulate how the request is sent or how a response is handled + */ +export type RequestRequestOptions = { + /** + * Custom replacement for built-in fetch method. Useful for testing or request hooks. + */ + fetch?: Fetch; + /** + * Use an `AbortController` instance to cancel a request. In node you can only cancel streamed requests. + */ + signal?: Signal; + /** + * If set to `false`, the response body will not be parsed and will be returned as a stream. + */ + parseSuccessResponseBody?: boolean; + [option: string]: any; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts new file mode 100644 index 000000000..7b5bf53b2 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts @@ -0,0 +1,21 @@ +export type ResponseHeaders = { + "cache-control"?: string; + "content-length"?: number; + "content-type"?: string; + date?: string; + etag?: string; + "last-modified"?: string; + link?: string; + location?: string; + server?: string; + status?: string; + vary?: string; + "x-accepted-github-permissions"?: string; + "x-github-mediatype"?: string; + "x-github-request-id"?: string; + "x-oauth-scopes"?: string; + "x-ratelimit-limit"?: string; + "x-ratelimit-remaining"?: string; + "x-ratelimit-reset"?: string; + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Route.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Route.d.ts new file mode 100644 index 000000000..808991ebf --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Route.d.ts @@ -0,0 +1,4 @@ +/** + * String consisting of an optional HTTP method and relative path or absolute URL. Examples: `'/orgs/{org}'`, `'PUT /orgs/{org}'`, `GET https://example.com/foo/bar` + */ +export type Route = string; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Signal.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Signal.d.ts new file mode 100644 index 000000000..bdf97001e --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Signal.d.ts @@ -0,0 +1,6 @@ +/** + * Abort signal + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal + */ +export type Signal = any; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts new file mode 100644 index 000000000..6b213abac --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts @@ -0,0 +1,4 @@ +import type { AuthInterface } from "./AuthInterface"; +export interface StrategyInterface { + (...args: StrategyOptions): AuthInterface; +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Url.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Url.d.ts new file mode 100644 index 000000000..521f5ad9b --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/Url.d.ts @@ -0,0 +1,4 @@ +/** + * Relative or absolute URL. Examples: `'/orgs/{org}'`, `https://example.com/foo/bar` + */ +export type Url = string; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/VERSION.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/VERSION.d.ts new file mode 100644 index 000000000..9aba19e69 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/VERSION.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "12.6.0"; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts new file mode 100644 index 000000000..db283bc01 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts @@ -0,0 +1,3797 @@ +import type { paths } from "@octokit/openapi-types"; +import type { OctokitResponse } from "../OctokitResponse"; +import type { RequestHeaders } from "../RequestHeaders"; +import type { RequestRequestOptions } from "../RequestRequestOptions"; +/** + * @license (MIT OR CC0-1.0) + * @source https://github.com/sindresorhus/type-fest/blob/570e27f8fdaee37ef5d5e0fbf241e0212ff8fc1a/source/simplify.d.ts + */ +export type Simplify = { + [KeyType in keyof T]: T[KeyType]; +} & {}; +type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; +type ExtractParameters = "parameters" extends keyof T ? UnionToIntersection<{ + [K in keyof T["parameters"]]-?: T["parameters"][K]; +}[keyof T["parameters"]]> : {}; +type ExtractRequestBody = "requestBody" extends keyof T ? "content" extends keyof T["requestBody"] ? "application/json" extends keyof T["requestBody"]["content"] ? T["requestBody"]["content"]["application/json"] : { + data: { + [K in keyof T["requestBody"]["content"]]: T["requestBody"]["content"][K]; + }[keyof T["requestBody"]["content"]]; +} : "application/json" extends keyof T["requestBody"] ? T["requestBody"]["application/json"] : { + data: { + [K in keyof T["requestBody"]]: T["requestBody"][K]; + }[keyof T["requestBody"]]; +} : {}; +type ToOctokitParameters = ExtractParameters & ExtractRequestBody>; +type Operation = { + parameters: Simplify>; + request: Method extends ReadOnlyMethods ? { + method: Method extends string ? Uppercase : never; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; + } : { + method: Method extends string ? Uppercase : never; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; + data: ExtractRequestBody; + }; + response: ExtractOctokitResponse; +}; +type ReadOnlyMethods = "get" | "head"; +type SuccessStatuses = 200 | 201 | 202 | 204 | 205; +type RedirectStatuses = 301 | 302; +type EmptyResponseStatuses = 201 | 204 | 205; +type KnownJsonResponseTypes = "application/json" | "application/octocat-stream" | "application/scim+json" | "text/html" | "text/plain"; +type SuccessResponseDataType = { + [K in SuccessStatuses & keyof Responses]: GetContentKeyIfPresent extends never ? never : OctokitResponse, K>; +}[SuccessStatuses & keyof Responses]; +type RedirectResponseDataType = { + [K in RedirectStatuses & keyof Responses]: OctokitResponse; +}[RedirectStatuses & keyof Responses]; +type EmptyResponseDataType = { + [K in EmptyResponseStatuses & keyof Responses]: OctokitResponse; +}[EmptyResponseStatuses & keyof Responses]; +type GetContentKeyIfPresent = "content" extends keyof T ? DataType : DataType; +type DataType = { + [K in KnownJsonResponseTypes & keyof T]: T[K]; +}[KnownJsonResponseTypes & keyof T]; +type ExtractOctokitResponse = "responses" extends keyof R ? SuccessResponseDataType extends never ? RedirectResponseDataType extends never ? EmptyResponseDataType : RedirectResponseDataType : SuccessResponseDataType : unknown; +export interface Endpoints { + /** + * @see https://docs.github.com/rest/apps/apps#delete-an-installation-for-the-authenticated-app + */ + "DELETE /app/installations/{installation_id}": Operation<"/app/installations/{installation_id}", "delete">; + /** + * @see https://docs.github.com/rest/apps/apps#unsuspend-an-app-installation + */ + "DELETE /app/installations/{installation_id}/suspended": Operation<"/app/installations/{installation_id}/suspended", "delete">; + /** + * @see https://docs.github.com/rest/apps/oauth-applications#delete-an-app-authorization + */ + "DELETE /applications/{client_id}/grant": Operation<"/applications/{client_id}/grant", "delete">; + /** + * @see https://docs.github.com/rest/apps/oauth-applications#delete-an-app-token + */ + "DELETE /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "delete">; + /** + * @see https://docs.github.com/rest/gists/gists#delete-a-gist + */ + "DELETE /gists/{gist_id}": Operation<"/gists/{gist_id}", "delete">; + /** + * @see https://docs.github.com/rest/gists/comments#delete-a-gist-comment + */ + "DELETE /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/gists/gists#unstar-a-gist + */ + "DELETE /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "delete">; + /** + * @see https://docs.github.com/rest/apps/installations#revoke-an-installation-access-token + */ + "DELETE /installation/token": Operation<"/installation/token", "delete">; + /** + * @see https://docs.github.com/rest/activity/notifications#mark-a-thread-as-done + */ + "DELETE /notifications/threads/{thread_id}": Operation<"/notifications/threads/{thread_id}", "delete">; + /** + * @see https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription + */ + "DELETE /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "delete">; + /** + * @see https://docs.github.com/rest/orgs/orgs#delete-an-organization + */ + "DELETE /orgs/{org}": Operation<"/orgs/{org}", "delete">; + /** + * @see https://docs.github.com/rest/actions/permissions#disable-a-selected-repository-for-github-actions-in-an-organization + */ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}": Operation<"/orgs/{org}/actions/permissions/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#delete-a-self-hosted-runner-from-an-organization + */ + "DELETE /orgs/{org}/actions/runners/{runner_id}": Operation<"/orgs/{org}/actions/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#remove-all-custom-labels-from-a-self-hosted-runner-for-an-organization + */ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#remove-a-custom-label-from-a-self-hosted-runner-for-an-organization + */ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/secrets#delete-an-organization-secret + */ + "DELETE /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/secrets#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/variables#delete-an-organization-variable + */ + "DELETE /orgs/{org}/actions/variables/{name}": Operation<"/orgs/{org}/actions/variables/{name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/variables#remove-selected-repository-from-an-organization-variable + */ + "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/variables/{name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/blocking#unblock-a-user-from-an-organization + */ + "DELETE /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#remove-users-from-codespaces-access-for-an-organization + */ + "DELETE /orgs/{org}/codespaces/access/selected_users": Operation<"/orgs/{org}/codespaces/access/selected_users", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#delete-an-organization-secret + */ + "DELETE /orgs/{org}/codespaces/secrets/{secret_name}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#remove-teams-from-the-copilot-subscription-for-an-organization + */ + "DELETE /orgs/{org}/copilot/billing/selected_teams": Operation<"/orgs/{org}/copilot/billing/selected_teams", "delete">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#remove-users-from-the-copilot-subscription-for-an-organization + */ + "DELETE /orgs/{org}/copilot/billing/selected_users": Operation<"/orgs/{org}/copilot/billing/selected_users", "delete">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#delete-an-organization-secret + */ + "DELETE /orgs/{org}/dependabot/secrets/{secret_name}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#delete-an-organization-webhook + */ + "DELETE /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "delete">; + /** + * @see https://docs.github.com/rest/interactions/orgs#remove-interaction-restrictions-for-an-organization + */ + "DELETE /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/orgs/members#cancel-an-organization-invitation + */ + "DELETE /orgs/{org}/invitations/{invitation_id}": Operation<"/orgs/{org}/invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/members#remove-an-organization-member + */ + "DELETE /orgs/{org}/members/{username}": Operation<"/orgs/{org}/members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#delete-a-codespace-from-the-organization + */ + "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}": Operation<"/orgs/{org}/members/{username}/codespaces/{codespace_name}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/members#remove-organization-membership-for-a-user + */ + "DELETE /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/rest/migrations/orgs#delete-an-organization-migration-archive + */ + "DELETE /orgs/{org}/migrations/{migration_id}/archive": Operation<"/orgs/{org}/migrations/{migration_id}/archive", "delete">; + /** + * @see https://docs.github.com/rest/migrations/orgs#unlock-an-organization-repository + */ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": Operation<"/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-team + */ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}": Operation<"/orgs/{org}/organization-roles/teams/{team_slug}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-team + */ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}": Operation<"/orgs/{org}/organization-roles/teams/{team_slug}/{role_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-user + */ + "DELETE /orgs/{org}/organization-roles/users/{username}": Operation<"/orgs/{org}/organization-roles/users/{username}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-user + */ + "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}": Operation<"/orgs/{org}/organization-roles/users/{username}/{role_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#delete-a-custom-organization-role + */ + "DELETE /orgs/{org}/organization-roles/{role_id}": Operation<"/orgs/{org}/organization-roles/{role_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization + */ + "DELETE /orgs/{org}/outside_collaborators/{username}": Operation<"/orgs/{org}/outside_collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-a-package-for-an-organization + */ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-package-version-for-an-organization + */ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#remove-a-custom-property-for-an-organization + */ + "DELETE /orgs/{org}/properties/schema/{custom_property_name}": Operation<"/orgs/{org}/properties/schema/{custom_property_name}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/members#remove-public-organization-membership-for-the-authenticated-user + */ + "DELETE /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/rules#delete-an-organization-repository-ruleset + */ + "DELETE /orgs/{org}/rulesets/{ruleset_id}": Operation<"/orgs/{org}/rulesets/{ruleset_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team + */ + "DELETE /orgs/{org}/security-managers/teams/{team_slug}": Operation<"/orgs/{org}/security-managers/teams/{team_slug}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#delete-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "delete">; + /** + * @see https://docs.github.com/rest/teams/discussions#delete-a-discussion + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "delete">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#delete-a-discussion-comment + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-team-discussion-comment-reaction + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-team-discussion-reaction + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user + */ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#remove-a-project-from-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/projects/cards#delete-a-project-card + */ + "DELETE /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "delete">; + /** + * @see https://docs.github.com/rest/projects/columns#delete-a-project-column + */ + "DELETE /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "delete">; + /** + * @see https://docs.github.com/rest/projects/projects#delete-a-project + */ + "DELETE /projects/{project_id}": Operation<"/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/rest/projects/collaborators#remove-user-as-a-collaborator + */ + "DELETE /projects/{project_id}/collaborators/{username}": Operation<"/projects/{project_id}/collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/repos/repos#delete-a-repository + */ + "DELETE /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/actions/artifacts#delete-an-artifact + */ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/cache#delete-a-github-actions-cache-for-a-repository-using-a-cache-id + */ + "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}": Operation<"/repos/{owner}/{repo}/actions/caches/{cache_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/cache#delete-github-actions-caches-for-a-repository-using-a-cache-key + */ + "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}": Operation<"/repos/{owner}/{repo}/actions/caches", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#delete-a-self-hosted-runner-from-a-repository + */ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#remove-all-custom-labels-from-a-self-hosted-runner-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#remove-a-custom-label-from-a-self-hosted-runner-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#delete-a-workflow-run + */ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#delete-workflow-run-logs + */ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/logs", "delete">; + /** + * @see https://docs.github.com/rest/actions/secrets#delete-a-repository-secret + */ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/variables#delete-a-repository-variable + */ + "DELETE /repos/{owner}/{repo}/actions/variables/{name}": Operation<"/repos/{owner}/{repo}/actions/variables/{name}", "delete">; + /** + * @see https://docs.github.com/rest/repos/autolinks#delete-an-autolink-reference-from-a-repository + */ + "DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}": Operation<"/repos/{owner}/{repo}/autolinks/{autolink_id}", "delete">; + /** + * @see https://docs.github.com/rest/repos/repos#disable-automated-security-fixes + */ + "DELETE /repos/{owner}/{repo}/automated-security-fixes": Operation<"/repos/{owner}/{repo}/automated-security-fixes", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-branch-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-admin-branch-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-pull-request-review-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-commit-signature-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-status-check-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-status-check-contexts + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-app-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-team-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-user-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "delete">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#delete-a-code-scanning-analysis-from-a-repository + */ + "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}": Operation<"/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#delete-a-repository-secret + */ + "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/codespaces/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#remove-a-repository-collaborator + */ + "DELETE /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/commits/comments#delete-a-commit-comment + */ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-a-commit-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/repos/contents#delete-a-file + */ + "DELETE /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "delete">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#delete-a-repository-secret + */ + "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/deployments/deployments#delete-a-deployment + */ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}", "delete">; + /** + * @see https://docs.github.com/rest/deployments/environments#delete-an-environment + */ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}", "delete">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#delete-a-deployment-branch-policy + */ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}", "delete">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#disable-a-custom-protection-rule-for-an-environment + */ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}", "delete">; + /** + * @see https://docs.github.com/rest/git/refs#delete-a-reference + */ + "DELETE /repos/{owner}/{repo}/git/refs/{ref}": Operation<"/repos/{owner}/{repo}/git/refs/{ref}", "delete">; + /** + * @see https://docs.github.com/rest/repos/webhooks#delete-a-repository-webhook + */ + "DELETE /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "delete">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#cancel-an-import + */ + "DELETE /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "delete">; + /** + * @see https://docs.github.com/rest/interactions/repos#remove-interaction-restrictions-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#delete-a-repository-invitation + */ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}": Operation<"/repos/{owner}/{repo}/invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/issues/comments#delete-an-issue-comment + */ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-an-issue-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#remove-assignees-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/assignees", "delete">; + /** + * @see https://docs.github.com/rest/issues/labels#remove-all-labels-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "delete">; + /** + * @see https://docs.github.com/rest/issues/labels#remove-a-label-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/issues/issues#unlock-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/lock", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-an-issue-reaction + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/deploy-keys/deploy-keys#delete-a-deploy-key + */ + "DELETE /repos/{owner}/{repo}/keys/{key_id}": Operation<"/repos/{owner}/{repo}/keys/{key_id}", "delete">; + /** + * @see https://docs.github.com/rest/issues/labels#delete-a-label + */ + "DELETE /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/issues/milestones#delete-a-milestone + */ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "delete">; + /** + * @see https://docs.github.com/rest/pages/pages#delete-a-apiname-pages-site + */ + "DELETE /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "delete">; + /** + * @see https://docs.github.com/rest/repos/repos#disable-private-vulnerability-reporting-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting": Operation<"/repos/{owner}/{repo}/private-vulnerability-reporting", "delete">; + /** + * @see https://docs.github.com/rest/pulls/comments#delete-a-review-comment-for-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-a-pull-request-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/pulls/review-requests#remove-requested-reviewers-from-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "delete">; + /** + * @see https://docs.github.com/rest/pulls/reviews#delete-a-pending-review-for-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "delete">; + /** + * @see https://docs.github.com/rest/releases/assets#delete-a-release-asset + */ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "delete">; + /** + * @see https://docs.github.com/rest/releases/releases#delete-a-release + */ + "DELETE /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-a-release-reaction + */ + "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/repos/rules#delete-a-repository-ruleset + */ + "DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}": Operation<"/repos/{owner}/{repo}/rulesets/{ruleset_id}", "delete">; + /** + * @see https://docs.github.com/rest/activity/watching#delete-a-repository-subscription + */ + "DELETE /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "delete">; + /** + * @see https://docs.github.com/rest/repos/tags#delete-a-tag-protection-state-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}": Operation<"/repos/{owner}/{repo}/tags/protection/{tag_protection_id}", "delete">; + /** + * @see https://docs.github.com/rest/repos/repos#disable-vulnerability-alerts + */ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "delete">; + /** + * @see https://docs.github.com/rest/actions/secrets#delete-an-environment-secret + */ + "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/variables#delete-an-environment-variable + */ + "DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/variables/{name}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#delete-a-team-legacy + */ + "DELETE /teams/{team_id}": Operation<"/teams/{team_id}", "delete">; + /** + * @see https://docs.github.com/rest/teams/discussions#delete-a-discussion-legacy + */ + "DELETE /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "delete">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#delete-a-discussion-comment-legacy + */ + "DELETE /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "delete">; + /** + * @see https://docs.github.com/rest/teams/members#remove-team-member-legacy + */ + "DELETE /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user-legacy + */ + "DELETE /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#remove-a-project-from-a-team-legacy + */ + "DELETE /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team-legacy + */ + "DELETE /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/users/blocking#unblock-a-user + */ + "DELETE /user/blocks/{username}": Operation<"/user/blocks/{username}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#delete-a-secret-for-the-authenticated-user + */ + "DELETE /user/codespaces/secrets/{secret_name}": Operation<"/user/codespaces/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret + */ + "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/user/codespaces/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#delete-a-codespace-for-the-authenticated-user + */ + "DELETE /user/codespaces/{codespace_name}": Operation<"/user/codespaces/{codespace_name}", "delete">; + /** + * @see https://docs.github.com/rest/users/emails#delete-an-email-address-for-the-authenticated-user + */ + "DELETE /user/emails": Operation<"/user/emails", "delete">; + /** + * @see https://docs.github.com/rest/users/followers#unfollow-a-user + */ + "DELETE /user/following/{username}": Operation<"/user/following/{username}", "delete">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#delete-a-gpg-key-for-the-authenticated-user + */ + "DELETE /user/gpg_keys/{gpg_key_id}": Operation<"/user/gpg_keys/{gpg_key_id}", "delete">; + /** + * @see https://docs.github.com/rest/apps/installations#remove-a-repository-from-an-app-installation + */ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}": Operation<"/user/installations/{installation_id}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/interactions/user#remove-interaction-restrictions-from-your-public-repositories + */ + "DELETE /user/interaction-limits": Operation<"/user/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/users/keys#delete-a-public-ssh-key-for-the-authenticated-user + */ + "DELETE /user/keys/{key_id}": Operation<"/user/keys/{key_id}", "delete">; + /** + * @see https://docs.github.com/rest/migrations/users#delete-a-user-migration-archive + */ + "DELETE /user/migrations/{migration_id}/archive": Operation<"/user/migrations/{migration_id}/archive", "delete">; + /** + * @see https://docs.github.com/rest/migrations/users#unlock-a-user-repository + */ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock": Operation<"/user/migrations/{migration_id}/repos/{repo_name}/lock", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-a-package-for-the-authenticated-user + */ + "DELETE /user/packages/{package_type}/{package_name}": Operation<"/user/packages/{package_type}/{package_name}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-a-package-version-for-the-authenticated-user + */ + "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/user/packages/{package_type}/{package_name}/versions/{package_version_id}", "delete">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#decline-a-repository-invitation + */ + "DELETE /user/repository_invitations/{invitation_id}": Operation<"/user/repository_invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/users/social-accounts#delete-social-accounts-for-the-authenticated-user + */ + "DELETE /user/social_accounts": Operation<"/user/social_accounts", "delete">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#delete-an-ssh-signing-key-for-the-authenticated-user + */ + "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}": Operation<"/user/ssh_signing_keys/{ssh_signing_key_id}", "delete">; + /** + * @see https://docs.github.com/rest/activity/starring#unstar-a-repository-for-the-authenticated-user + */ + "DELETE /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-a-package-for-a-user + */ + "DELETE /users/{username}/packages/{package_type}/{package_name}": Operation<"/users/{username}/packages/{package_type}/{package_name}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-package-version-for-a-user + */ + "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}", "delete">; + /** + * @see https://docs.github.com/rest/meta/meta#github-api-root + */ + "GET /": Operation<"/", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/global-advisories#list-global-security-advisories + */ + "GET /advisories": Operation<"/advisories", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/global-advisories#get-a-global-security-advisory + */ + "GET /advisories/{ghsa_id}": Operation<"/advisories/{ghsa_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-the-authenticated-app + */ + "GET /app": Operation<"/app", "get">; + /** + * @see https://docs.github.com/rest/apps/webhooks#get-a-webhook-configuration-for-an-app + */ + "GET /app/hook/config": Operation<"/app/hook/config", "get">; + /** + * @see https://docs.github.com/rest/apps/webhooks#list-deliveries-for-an-app-webhook + */ + "GET /app/hook/deliveries": Operation<"/app/hook/deliveries", "get">; + /** + * @see https://docs.github.com/rest/apps/webhooks#get-a-delivery-for-an-app-webhook + */ + "GET /app/hook/deliveries/{delivery_id}": Operation<"/app/hook/deliveries/{delivery_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#list-installation-requests-for-the-authenticated-app + */ + "GET /app/installation-requests": Operation<"/app/installation-requests", "get">; + /** + * @see https://docs.github.com/enterprise-server@3.9/rest/apps/apps#list-installations-for-the-authenticated-app + */ + "GET /app/installations": Operation<"/app/installations", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-an-installation-for-the-authenticated-app + */ + "GET /app/installations/{installation_id}": Operation<"/app/installations/{installation_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-an-app + */ + "GET /apps/{app_slug}": Operation<"/apps/{app_slug}", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#get-an-assignment + */ + "GET /assignments/{assignment_id}": Operation<"/assignments/{assignment_id}", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#list-accepted-assignments-for-an-assignment + */ + "GET /assignments/{assignment_id}/accepted_assignments": Operation<"/assignments/{assignment_id}/accepted_assignments", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#get-assignment-grades + */ + "GET /assignments/{assignment_id}/grades": Operation<"/assignments/{assignment_id}/grades", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#list-classrooms + */ + "GET /classrooms": Operation<"/classrooms", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#get-a-classroom + */ + "GET /classrooms/{classroom_id}": Operation<"/classrooms/{classroom_id}", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#list-assignments-for-a-classroom + */ + "GET /classrooms/{classroom_id}/assignments": Operation<"/classrooms/{classroom_id}/assignments", "get">; + /** + * @see https://docs.github.com/rest/codes-of-conduct/codes-of-conduct#get-all-codes-of-conduct + */ + "GET /codes_of_conduct": Operation<"/codes_of_conduct", "get">; + /** + * @see https://docs.github.com/rest/codes-of-conduct/codes-of-conduct#get-a-code-of-conduct + */ + "GET /codes_of_conduct/{key}": Operation<"/codes_of_conduct/{key}", "get">; + /** + * @see https://docs.github.com/rest/emojis/emojis#get-emojis + */ + "GET /emojis": Operation<"/emojis", "get">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-enterprise + */ + "GET /enterprises/{enterprise}/dependabot/alerts": Operation<"/enterprises/{enterprise}/dependabot/alerts", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-an-enterprise + */ + "GET /enterprises/{enterprise}/secret-scanning/alerts": Operation<"/enterprises/{enterprise}/secret-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events + */ + "GET /events": Operation<"/events", "get">; + /** + * @see https://docs.github.com/rest/activity/feeds#get-feeds + */ + "GET /feeds": Operation<"/feeds", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-gists-for-the-authenticated-user + */ + "GET /gists": Operation<"/gists", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-public-gists + */ + "GET /gists/public": Operation<"/gists/public", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-starred-gists + */ + "GET /gists/starred": Operation<"/gists/starred", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#get-a-gist + */ + "GET /gists/{gist_id}": Operation<"/gists/{gist_id}", "get">; + /** + * @see https://docs.github.com/rest/gists/comments#list-gist-comments + */ + "GET /gists/{gist_id}/comments": Operation<"/gists/{gist_id}/comments", "get">; + /** + * @see https://docs.github.com/rest/gists/comments#get-a-gist-comment + */ + "GET /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-gist-commits + */ + "GET /gists/{gist_id}/commits": Operation<"/gists/{gist_id}/commits", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-gist-forks + */ + "GET /gists/{gist_id}/forks": Operation<"/gists/{gist_id}/forks", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#check-if-a-gist-is-starred + */ + "GET /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#get-a-gist-revision + */ + "GET /gists/{gist_id}/{sha}": Operation<"/gists/{gist_id}/{sha}", "get">; + /** + * @see https://docs.github.com/rest/gitignore/gitignore#get-all-gitignore-templates + */ + "GET /gitignore/templates": Operation<"/gitignore/templates", "get">; + /** + * @see https://docs.github.com/rest/gitignore/gitignore#get-a-gitignore-template + */ + "GET /gitignore/templates/{name}": Operation<"/gitignore/templates/{name}", "get">; + /** + * @see https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-app-installation + */ + "GET /installation/repositories": Operation<"/installation/repositories", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#list-issues-assigned-to-the-authenticated-user + */ + "GET /issues": Operation<"/issues", "get">; + /** + * @see https://docs.github.com/rest/licenses/licenses#get-all-commonly-used-licenses + */ + "GET /licenses": Operation<"/licenses", "get">; + /** + * @see https://docs.github.com/rest/licenses/licenses#get-a-license + */ + "GET /licenses/{license}": Operation<"/licenses/{license}", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#get-a-subscription-plan-for-an-account + */ + "GET /marketplace_listing/accounts/{account_id}": Operation<"/marketplace_listing/accounts/{account_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-plans + */ + "GET /marketplace_listing/plans": Operation<"/marketplace_listing/plans", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan + */ + "GET /marketplace_listing/plans/{plan_id}/accounts": Operation<"/marketplace_listing/plans/{plan_id}/accounts", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#get-a-subscription-plan-for-an-account-stubbed + */ + "GET /marketplace_listing/stubbed/accounts/{account_id}": Operation<"/marketplace_listing/stubbed/accounts/{account_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-plans-stubbed + */ + "GET /marketplace_listing/stubbed/plans": Operation<"/marketplace_listing/stubbed/plans", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan-stubbed + */ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts": Operation<"/marketplace_listing/stubbed/plans/{plan_id}/accounts", "get">; + /** + * @see https://docs.github.com/rest/meta/meta#get-apiname-meta-information + */ + "GET /meta": Operation<"/meta", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events-for-a-network-of-repositories + */ + "GET /networks/{owner}/{repo}/events": Operation<"/networks/{owner}/{repo}/events", "get">; + /** + * @see https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user + */ + "GET /notifications": Operation<"/notifications", "get">; + /** + * @see https://docs.github.com/rest/activity/notifications#get-a-thread + */ + "GET /notifications/threads/{thread_id}": Operation<"/notifications/threads/{thread_id}", "get">; + /** + * @see https://docs.github.com/rest/activity/notifications#get-a-thread-subscription-for-the-authenticated-user + */ + "GET /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "get">; + /** + * @see https://docs.github.com/rest/meta/meta#get-octocat + */ + "GET /octocat": Operation<"/octocat", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-organizations + */ + "GET /organizations": Operation<"/organizations", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-the-organization + * @deprecated "org_id" is now "org" + */ + "GET /orgs/{org_id}/codespaces": Operation<"/orgs/{org}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#get-an-organization + */ + "GET /orgs/{org}": Operation<"/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/actions/cache#get-github-actions-cache-usage-for-an-organization + */ + "GET /orgs/{org}/actions/cache/usage": Operation<"/orgs/{org}/actions/cache/usage", "get">; + /** + * @see https://docs.github.com/rest/actions/cache#list-repositories-with-github-actions-cache-usage-for-an-organization + */ + "GET /orgs/{org}/actions/cache/usage-by-repository": Operation<"/orgs/{org}/actions/cache/usage-by-repository", "get">; + /** + * @see https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-an-organization + */ + "GET /orgs/{org}/actions/oidc/customization/sub": Operation<"/orgs/{org}/actions/oidc/customization/sub", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-github-actions-permissions-for-an-organization + */ + "GET /orgs/{org}/actions/permissions": Operation<"/orgs/{org}/actions/permissions", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#list-selected-repositories-enabled-for-github-actions-in-an-organization + */ + "GET /orgs/{org}/actions/permissions/repositories": Operation<"/orgs/{org}/actions/permissions/repositories", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-an-organization + */ + "GET /orgs/{org}/actions/permissions/selected-actions": Operation<"/orgs/{org}/actions/permissions/selected-actions", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-default-workflow-permissions-for-an-organization + */ + "GET /orgs/{org}/actions/permissions/workflow": Operation<"/orgs/{org}/actions/permissions/workflow", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-self-hosted-runners-for-an-organization + */ + "GET /orgs/{org}/actions/runners": Operation<"/orgs/{org}/actions/runners", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-runner-applications-for-an-organization + */ + "GET /orgs/{org}/actions/runners/downloads": Operation<"/orgs/{org}/actions/runners/downloads", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#get-a-self-hosted-runner-for-an-organization + */ + "GET /orgs/{org}/actions/runners/{runner_id}": Operation<"/orgs/{org}/actions/runners/{runner_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-labels-for-a-self-hosted-runner-for-an-organization + */ + "GET /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-organization-secrets + */ + "GET /orgs/{org}/actions/secrets": Operation<"/orgs/{org}/actions/secrets", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-an-organization-public-key + */ + "GET /orgs/{org}/actions/secrets/public-key": Operation<"/orgs/{org}/actions/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-an-organization-secret + */ + "GET /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-organization-variables + */ + "GET /orgs/{org}/actions/variables": Operation<"/orgs/{org}/actions/variables", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#get-an-organization-variable + */ + "GET /orgs/{org}/actions/variables/{name}": Operation<"/orgs/{org}/actions/variables/{name}", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-selected-repositories-for-an-organization-variable + */ + "GET /orgs/{org}/actions/variables/{name}/repositories": Operation<"/orgs/{org}/actions/variables/{name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/orgs/blocking#list-users-blocked-by-an-organization + */ + "GET /orgs/{org}/blocks": Operation<"/orgs/{org}/blocks", "get">; + /** + * @see https://docs.github.com/rest/orgs/blocking#check-if-a-user-is-blocked-by-an-organization + */ + "GET /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-an-organization + */ + "GET /orgs/{org}/code-scanning/alerts": Operation<"/orgs/{org}/code-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-the-organization + */ + "GET /orgs/{org}/codespaces": Operation<"/orgs/{org}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#list-organization-secrets + */ + "GET /orgs/{org}/codespaces/secrets": Operation<"/orgs/{org}/codespaces/secrets", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-public-key + */ + "GET /orgs/{org}/codespaces/secrets/public-key": Operation<"/orgs/{org}/codespaces/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-secret + */ + "GET /orgs/{org}/codespaces/secrets/{secret_name}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-information-and-settings-for-an-organization + */ + "GET /orgs/{org}/copilot/billing": Operation<"/orgs/{org}/copilot/billing", "get">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization + */ + "GET /orgs/{org}/copilot/billing/seats": Operation<"/orgs/{org}/copilot/billing/seats", "get">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-organization + */ + "GET /orgs/{org}/dependabot/alerts": Operation<"/orgs/{org}/dependabot/alerts", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#list-organization-secrets + */ + "GET /orgs/{org}/dependabot/secrets": Operation<"/orgs/{org}/dependabot/secrets", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#get-an-organization-public-key + */ + "GET /orgs/{org}/dependabot/secrets/public-key": Operation<"/orgs/{org}/dependabot/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#get-an-organization-secret + */ + "GET /orgs/{org}/dependabot/secrets/{secret_name}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-organization + */ + "GET /orgs/{org}/docker/conflicts": Operation<"/orgs/{org}/docker/conflicts", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-organization-events + */ + "GET /orgs/{org}/events": Operation<"/orgs/{org}/events", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-failed-organization-invitations + */ + "GET /orgs/{org}/failed_invitations": Operation<"/orgs/{org}/failed_invitations", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#list-organization-webhooks + */ + "GET /orgs/{org}/hooks": Operation<"/orgs/{org}/hooks", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#get-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization + */ + "GET /orgs/{org}/hooks/{hook_id}/config": Operation<"/orgs/{org}/hooks/{hook_id}/config", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#list-deliveries-for-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}/deliveries": Operation<"/orgs/{org}/hooks/{hook_id}/deliveries", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#get-a-webhook-delivery-for-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}": Operation<"/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-an-organization-installation-for-the-authenticated-app + */ + "GET /orgs/{org}/installation": Operation<"/orgs/{org}/installation", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-app-installations-for-an-organization + */ + "GET /orgs/{org}/installations": Operation<"/orgs/{org}/installations", "get">; + /** + * @see https://docs.github.com/rest/interactions/orgs#get-interaction-restrictions-for-an-organization + */ + "GET /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-pending-organization-invitations + */ + "GET /orgs/{org}/invitations": Operation<"/orgs/{org}/invitations", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-organization-invitation-teams + */ + "GET /orgs/{org}/invitations/{invitation_id}/teams": Operation<"/orgs/{org}/invitations/{invitation_id}/teams", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#list-organization-issues-assigned-to-the-authenticated-user + */ + "GET /orgs/{org}/issues": Operation<"/orgs/{org}/issues", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-organization-members + */ + "GET /orgs/{org}/members": Operation<"/orgs/{org}/members", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user + */ + "GET /orgs/{org}/members/{username}": Operation<"/orgs/{org}/members/{username}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-a-user-in-organization + */ + "GET /orgs/{org}/members/{username}/codespaces": Operation<"/orgs/{org}/members/{username}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-assignment-details-for-a-user + */ + "GET /orgs/{org}/members/{username}/copilot": Operation<"/orgs/{org}/members/{username}/copilot", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user + */ + "GET /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/rest/migrations/orgs#list-organization-migrations + */ + "GET /orgs/{org}/migrations": Operation<"/orgs/{org}/migrations", "get">; + /** + * @see https://docs.github.com/rest/migrations/orgs#get-an-organization-migration-status + */ + "GET /orgs/{org}/migrations/{migration_id}": Operation<"/orgs/{org}/migrations/{migration_id}", "get">; + /** + * @see https://docs.github.com/rest/migrations/orgs#download-an-organization-migration-archive + */ + "GET /orgs/{org}/migrations/{migration_id}/archive": Operation<"/orgs/{org}/migrations/{migration_id}/archive", "get">; + /** + * @see https://docs.github.com/rest/migrations/orgs#list-repositories-in-an-organization-migration + */ + "GET /orgs/{org}/migrations/{migration_id}/repositories": Operation<"/orgs/{org}/migrations/{migration_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#list-organization-fine-grained-permissions-for-an-organization + */ + "GET /orgs/{org}/organization-fine-grained-permissions": Operation<"/orgs/{org}/organization-fine-grained-permissions", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#get-all-organization-roles-for-an-organization + */ + "GET /orgs/{org}/organization-roles": Operation<"/orgs/{org}/organization-roles", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#get-an-organization-role + */ + "GET /orgs/{org}/organization-roles/{role_id}": Operation<"/orgs/{org}/organization-roles/{role_id}", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#list-teams-that-are-assigned-to-an-organization-role + */ + "GET /orgs/{org}/organization-roles/{role_id}/teams": Operation<"/orgs/{org}/organization-roles/{role_id}/teams", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#list-users-that-are-assigned-to-an-organization-role + */ + "GET /orgs/{org}/organization-roles/{role_id}/users": Operation<"/orgs/{org}/organization-roles/{role_id}/users", "get">; + /** + * @see https://docs.github.com/rest/orgs/outside-collaborators#list-outside-collaborators-for-an-organization + */ + "GET /orgs/{org}/outside_collaborators": Operation<"/orgs/{org}/outside_collaborators", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-packages-for-an-organization + */ + "GET /orgs/{org}/packages": Operation<"/orgs/{org}/packages", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-for-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-version-for-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", "get">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens + */ + "GET /orgs/{org}/personal-access-token-requests": Operation<"/orgs/{org}/personal-access-token-requests", "get">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-requested-to-be-accessed-by-a-fine-grained-personal-access-token + */ + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories": Operation<"/orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-fine-grained-personal-access-tokens-with-access-to-organization-resources + */ + "GET /orgs/{org}/personal-access-tokens": Operation<"/orgs/{org}/personal-access-tokens", "get">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-a-fine-grained-personal-access-token-has-access-to + */ + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories": Operation<"/orgs/{org}/personal-access-tokens/{pat_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/projects/projects#list-organization-projects + */ + "GET /orgs/{org}/projects": Operation<"/orgs/{org}/projects", "get">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#get-all-custom-properties-for-an-organization + */ + "GET /orgs/{org}/properties/schema": Operation<"/orgs/{org}/properties/schema", "get">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#get-a-custom-property-for-an-organization + */ + "GET /orgs/{org}/properties/schema/{custom_property_name}": Operation<"/orgs/{org}/properties/schema/{custom_property_name}", "get">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#list-custom-property-values-for-organization-repositories + */ + "GET /orgs/{org}/properties/values": Operation<"/orgs/{org}/properties/values", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-public-organization-members + */ + "GET /orgs/{org}/public_members": Operation<"/orgs/{org}/public_members", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#check-public-organization-membership-for-a-user + */ + "GET /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-organization-repositories + */ + "GET /orgs/{org}/repos": Operation<"/orgs/{org}/repos", "get">; + /** + * @see https://docs.github.com/rest/orgs/rules#get-all-organization-repository-rulesets + */ + "GET /orgs/{org}/rulesets": Operation<"/orgs/{org}/rulesets", "get">; + /** + * @see https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites + */ + "GET /orgs/{org}/rulesets/rule-suites": Operation<"/orgs/{org}/rulesets/rule-suites", "get">; + /** + * @see https://docs.github.com/rest/orgs/rule-suites#get-an-organization-rule-suite + */ + "GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}": Operation<"/orgs/{org}/rulesets/rule-suites/{rule_suite_id}", "get">; + /** + * @see https://docs.github.com/rest/orgs/rules#get-an-organization-repository-ruleset + */ + "GET /orgs/{org}/rulesets/{ruleset_id}": Operation<"/orgs/{org}/rulesets/{ruleset_id}", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-an-organization + */ + "GET /orgs/{org}/secret-scanning/alerts": Operation<"/orgs/{org}/secret-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories-for-an-organization + */ + "GET /orgs/{org}/security-advisories": Operation<"/orgs/{org}/security-advisories", "get">; + /** + * @see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams + */ + "GET /orgs/{org}/security-managers": Operation<"/orgs/{org}/security-managers", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-github-actions-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/actions": Operation<"/orgs/{org}/settings/billing/actions", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-github-packages-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/packages": Operation<"/orgs/{org}/settings/billing/packages", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-shared-storage-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/shared-storage": Operation<"/orgs/{org}/settings/billing/shared-storage", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-teams + */ + "GET /orgs/{org}/teams": Operation<"/orgs/{org}/teams", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#get-a-team-by-name + */ + "GET /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "get">; + /** + * @see https://docs.github.com/rest/teams/discussions#list-discussions + */ + "GET /orgs/{org}/teams/{team_slug}/discussions": Operation<"/orgs/{org}/teams/{team_slug}/discussions", "get">; + /** + * @see https://docs.github.com/rest/teams/discussions#get-a-discussion + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "get">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/teams/members#list-pending-team-invitations + */ + "GET /orgs/{org}/teams/{team_slug}/invitations": Operation<"/orgs/{org}/teams/{team_slug}/invitations", "get">; + /** + * @see https://docs.github.com/rest/teams/members#list-team-members + */ + "GET /orgs/{org}/teams/{team_slug}/members": Operation<"/orgs/{org}/teams/{team_slug}/members", "get">; + /** + * @see https://docs.github.com/rest/teams/members#get-team-membership-for-a-user + */ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-projects + */ + "GET /orgs/{org}/teams/{team_slug}/projects": Operation<"/orgs/{org}/teams/{team_slug}/projects", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-project + */ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-repositories + */ + "GET /orgs/{org}/teams/{team_slug}/repos": Operation<"/orgs/{org}/teams/{team_slug}/repos", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository + */ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-child-teams + */ + "GET /orgs/{org}/teams/{team_slug}/teams": Operation<"/orgs/{org}/teams/{team_slug}/teams", "get">; + /** + * @see https://docs.github.com/rest/projects/cards#get-a-project-card + */ + "GET /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "get">; + /** + * @see https://docs.github.com/rest/projects/columns#get-a-project-column + */ + "GET /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "get">; + /** + * @see https://docs.github.com/rest/projects/cards#list-project-cards + */ + "GET /projects/columns/{column_id}/cards": Operation<"/projects/columns/{column_id}/cards", "get">; + /** + * @see https://docs.github.com/rest/projects/projects#get-a-project + */ + "GET /projects/{project_id}": Operation<"/projects/{project_id}", "get">; + /** + * @see https://docs.github.com/rest/projects/collaborators#list-project-collaborators + */ + "GET /projects/{project_id}/collaborators": Operation<"/projects/{project_id}/collaborators", "get">; + /** + * @see https://docs.github.com/rest/projects/collaborators#get-project-permission-for-a-user + */ + "GET /projects/{project_id}/collaborators/{username}/permission": Operation<"/projects/{project_id}/collaborators/{username}/permission", "get">; + /** + * @see https://docs.github.com/rest/projects/columns#list-project-columns + */ + "GET /projects/{project_id}/columns": Operation<"/projects/{project_id}/columns", "get">; + /** + * @see https://docs.github.com/rest/rate-limit/rate-limit#get-rate-limit-status-for-the-authenticated-user + */ + "GET /rate_limit": Operation<"/rate_limit", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#get-a-repository + */ + "GET /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/actions/artifacts#list-artifacts-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/artifacts": Operation<"/repos/{owner}/{repo}/actions/artifacts", "get">; + /** + * @see https://docs.github.com/rest/actions/artifacts#get-an-artifact + */ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/artifacts#download-an-artifact + */ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}", "get">; + /** + * @see https://docs.github.com/rest/actions/cache#get-github-actions-cache-usage-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/cache/usage": Operation<"/repos/{owner}/{repo}/actions/cache/usage", "get">; + /** + * @see https://docs.github.com/rest/actions/cache#list-github-actions-caches-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/caches": Operation<"/repos/{owner}/{repo}/actions/caches", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#get-a-job-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#download-job-logs-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}/logs", "get">; + /** + * @see https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/oidc/customization/sub": Operation<"/repos/{owner}/{repo}/actions/oidc/customization/sub", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-repository-organization-secrets + */ + "GET /repos/{owner}/{repo}/actions/organization-secrets": Operation<"/repos/{owner}/{repo}/actions/organization-secrets", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-repository-organization-variables + */ + "GET /repos/{owner}/{repo}/actions/organization-variables": Operation<"/repos/{owner}/{repo}/actions/organization-variables", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-github-actions-permissions-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions": Operation<"/repos/{owner}/{repo}/actions/permissions", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-the-level-of-access-for-workflows-outside-of-the-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions/access": Operation<"/repos/{owner}/{repo}/actions/permissions/access", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions": Operation<"/repos/{owner}/{repo}/actions/permissions/selected-actions", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-default-workflow-permissions-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions/workflow": Operation<"/repos/{owner}/{repo}/actions/permissions/workflow", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-self-hosted-runners-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners": Operation<"/repos/{owner}/{repo}/actions/runners", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-runner-applications-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/downloads": Operation<"/repos/{owner}/{repo}/actions/runners/downloads", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#get-a-self-hosted-runner-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-labels-for-a-self-hosted-runner-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runs": Operation<"/repos/{owner}/{repo}/actions/runs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-the-review-history-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/approvals", "get">; + /** + * @see https://docs.github.com/rest/actions/artifacts#list-workflow-run-artifacts + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run-attempt + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run-attempt + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-attempt-logs + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-logs + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/logs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-pending-deployments-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-workflow-run-usage + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/timing", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/actions/secrets": Operation<"/repos/{owner}/{repo}/actions/secrets", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-a-repository-public-key + */ + "GET /repos/{owner}/{repo}/actions/secrets/public-key": Operation<"/repos/{owner}/{repo}/actions/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-a-repository-secret + */ + "GET /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-repository-variables + */ + "GET /repos/{owner}/{repo}/actions/variables": Operation<"/repos/{owner}/{repo}/actions/variables", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#get-a-repository-variable + */ + "GET /repos/{owner}/{repo}/actions/variables/{name}": Operation<"/repos/{owner}/{repo}/actions/variables/{name}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflows#list-repository-workflows + */ + "GET /repos/{owner}/{repo}/actions/workflows": Operation<"/repos/{owner}/{repo}/actions/workflows", "get">; + /** + * @see https://docs.github.com/rest/actions/workflows#get-a-workflow + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-workflow + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflows#get-workflow-usage + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-activities + */ + "GET /repos/{owner}/{repo}/activity": Operation<"/repos/{owner}/{repo}/activity", "get">; + /** + * @see https://docs.github.com/rest/issues/assignees#list-assignees + */ + "GET /repos/{owner}/{repo}/assignees": Operation<"/repos/{owner}/{repo}/assignees", "get">; + /** + * @see https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned + */ + "GET /repos/{owner}/{repo}/assignees/{assignee}": Operation<"/repos/{owner}/{repo}/assignees/{assignee}", "get">; + /** + * @see https://docs.github.com/rest/repos/autolinks#get-all-autolinks-of-a-repository + */ + "GET /repos/{owner}/{repo}/autolinks": Operation<"/repos/{owner}/{repo}/autolinks", "get">; + /** + * @see https://docs.github.com/rest/repos/autolinks#get-an-autolink-reference-of-a-repository + */ + "GET /repos/{owner}/{repo}/autolinks/{autolink_id}": Operation<"/repos/{owner}/{repo}/autolinks/{autolink_id}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#check-if-automated-security-fixes-are-enabled-for-a-repository + */ + "GET /repos/{owner}/{repo}/automated-security-fixes": Operation<"/repos/{owner}/{repo}/automated-security-fixes", "get">; + /** + * @see https://docs.github.com/rest/branches/branches#list-branches + */ + "GET /repos/{owner}/{repo}/branches": Operation<"/repos/{owner}/{repo}/branches", "get">; + /** + * @see https://docs.github.com/rest/branches/branches#get-a-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}": Operation<"/repos/{owner}/{repo}/branches/{branch}", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-branch-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-admin-branch-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-pull-request-review-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-commit-signature-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-status-checks-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-all-status-check-contexts + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-access-restrictions + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-apps-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-teams-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-users-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "get">; + /** + * @see https://docs.github.com/rest/checks/runs#get-a-check-run + */ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}", "get">; + /** + * @see https://docs.github.com/rest/checks/runs#list-check-run-annotations + */ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "get">; + /** + * @see https://docs.github.com/rest/checks/suites#get-a-check-suite + */ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}", "get">; + /** + * @see https://docs.github.com/rest/checks/runs#list-check-runs-in-a-check-suite + */ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "get">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-code-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts": Operation<"/repos/{owner}/{repo}/code-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-alert + * @deprecated "alert_id" is now "alert_number" + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_id}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-alert + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-instances-of-a-code-scanning-alert + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-analyses-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/analyses": Operation<"/repos/{owner}/{repo}/code-scanning/analyses", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}": Operation<"/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-codeql-databases-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases": Operation<"/repos/{owner}/{repo}/code-scanning/codeql/databases", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-codeql-database-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}": Operation<"/repos/{owner}/{repo}/code-scanning/codeql/databases/{language}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-default-setup-configuration + */ + "GET /repos/{owner}/{repo}/code-scanning/default-setup": Operation<"/repos/{owner}/{repo}/code-scanning/default-setup", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload + */ + "GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}": Operation<"/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-codeowners-errors + */ + "GET /repos/{owner}/{repo}/codeowners/errors": Operation<"/repos/{owner}/{repo}/codeowners/errors", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#list-codespaces-in-a-repository-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces": Operation<"/repos/{owner}/{repo}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#list-devcontainer-configurations-in-a-repository-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces/devcontainers": Operation<"/repos/{owner}/{repo}/codespaces/devcontainers", "get">; + /** + * @see https://docs.github.com/rest/codespaces/machines#list-available-machine-types-for-a-repository + */ + "GET /repos/{owner}/{repo}/codespaces/machines": Operation<"/repos/{owner}/{repo}/codespaces/machines", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#get-default-attributes-for-a-codespace + */ + "GET /repos/{owner}/{repo}/codespaces/new": Operation<"/repos/{owner}/{repo}/codespaces/new", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#check-if-permissions-defined-by-a-devcontainer-have-been-accepted-by-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces/permissions_check": Operation<"/repos/{owner}/{repo}/codespaces/permissions_check", "get">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/codespaces/secrets": Operation<"/repos/{owner}/{repo}/codespaces/secrets", "get">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-public-key + */ + "GET /repos/{owner}/{repo}/codespaces/secrets/public-key": Operation<"/repos/{owner}/{repo}/codespaces/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-secret + */ + "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/codespaces/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#list-repository-collaborators + */ + "GET /repos/{owner}/{repo}/collaborators": Operation<"/repos/{owner}/{repo}/collaborators", "get">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#check-if-a-user-is-a-repository-collaborator + */ + "GET /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "get">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#get-repository-permissions-for-a-user + */ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission": Operation<"/repos/{owner}/{repo}/collaborators/{username}/permission", "get">; + /** + * @see https://docs.github.com/rest/commits/comments#list-commit-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/comments": Operation<"/repos/{owner}/{repo}/comments", "get">; + /** + * @see https://docs.github.com/rest/commits/comments#get-a-commit-comment + */ + "GET /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-commit-comment + */ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#list-commits + */ + "GET /repos/{owner}/{repo}/commits": Operation<"/repos/{owner}/{repo}/commits", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#list-branches-for-head-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "get">; + /** + * @see https://docs.github.com/rest/commits/comments#list-commit-comments + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/comments", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#list-pull-requests-associated-with-a-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/pulls", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#get-a-commit + */ + "GET /repos/{owner}/{repo}/commits/{ref}": Operation<"/repos/{owner}/{repo}/commits/{ref}", "get">; + /** + * @see https://docs.github.com/rest/checks/runs#list-check-runs-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs": Operation<"/repos/{owner}/{repo}/commits/{ref}/check-runs", "get">; + /** + * @see https://docs.github.com/rest/checks/suites#list-check-suites-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites": Operation<"/repos/{owner}/{repo}/commits/{ref}/check-suites", "get">; + /** + * @see https://docs.github.com/rest/commits/statuses#get-the-combined-status-for-a-specific-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/status": Operation<"/repos/{owner}/{repo}/commits/{ref}/status", "get">; + /** + * @see https://docs.github.com/rest/commits/statuses#list-commit-statuses-for-a-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses": Operation<"/repos/{owner}/{repo}/commits/{ref}/statuses", "get">; + /** + * @see https://docs.github.com/rest/metrics/community#get-community-profile-metrics + */ + "GET /repos/{owner}/{repo}/community/profile": Operation<"/repos/{owner}/{repo}/community/profile", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#compare-two-commits + */ + "GET /repos/{owner}/{repo}/compare/{basehead}": Operation<"/repos/{owner}/{repo}/compare/{basehead}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#compare-two-commits + */ + "GET /repos/{owner}/{repo}/compare/{base}...{head}": Operation<"/repos/{owner}/{repo}/compare/{base}...{head}", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#get-repository-content + */ + "GET /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-contributors + */ + "GET /repos/{owner}/{repo}/contributors": Operation<"/repos/{owner}/{repo}/contributors", "get">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/dependabot/alerts": Operation<"/repos/{owner}/{repo}/dependabot/alerts", "get">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#get-a-dependabot-alert + */ + "GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/dependabot/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/dependabot/secrets": Operation<"/repos/{owner}/{repo}/dependabot/secrets", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#get-a-repository-public-key + */ + "GET /repos/{owner}/{repo}/dependabot/secrets/public-key": Operation<"/repos/{owner}/{repo}/dependabot/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#get-a-repository-secret + */ + "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/dependency-graph/dependency-review#get-a-diff-of-the-dependencies-between-commits + */ + "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}": Operation<"/repos/{owner}/{repo}/dependency-graph/compare/{basehead}", "get">; + /** + * @see https://docs.github.com/rest/dependency-graph/sboms#export-a-software-bill-of-materials-sbom-for-a-repository + */ + "GET /repos/{owner}/{repo}/dependency-graph/sbom": Operation<"/repos/{owner}/{repo}/dependency-graph/sbom", "get">; + /** + * @see https://docs.github.com/rest/deployments/deployments#list-deployments + */ + "GET /repos/{owner}/{repo}/deployments": Operation<"/repos/{owner}/{repo}/deployments", "get">; + /** + * @see https://docs.github.com/rest/deployments/deployments#get-a-deployment + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}", "get">; + /** + * @see https://docs.github.com/rest/deployments/statuses#list-deployment-statuses + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "get">; + /** + * @see https://docs.github.com/rest/deployments/statuses#get-a-deployment-status + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}", "get">; + /** + * @see https://docs.github.com/rest/deployments/environments#list-environments + */ + "GET /repos/{owner}/{repo}/environments": Operation<"/repos/{owner}/{repo}/environments", "get">; + /** + * @see https://docs.github.com/rest/deployments/environments#get-an-environment + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}", "get">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#list-deployment-branch-policies + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies", "get">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#get-a-deployment-branch-policy + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}", "get">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#get-all-deployment-protection-rules-for-an-environment + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules", "get">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#list-custom-deployment-rule-integrations-available-for-an-environment + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps", "get">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#get-a-custom-deployment-protection-rule + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-repository-events + */ + "GET /repos/{owner}/{repo}/events": Operation<"/repos/{owner}/{repo}/events", "get">; + /** + * @see https://docs.github.com/rest/repos/forks#list-forks + */ + "GET /repos/{owner}/{repo}/forks": Operation<"/repos/{owner}/{repo}/forks", "get">; + /** + * @see https://docs.github.com/rest/git/blobs#get-a-blob + */ + "GET /repos/{owner}/{repo}/git/blobs/{file_sha}": Operation<"/repos/{owner}/{repo}/git/blobs/{file_sha}", "get">; + /** + * @see https://docs.github.com/rest/git/commits#get-a-commit-object + */ + "GET /repos/{owner}/{repo}/git/commits/{commit_sha}": Operation<"/repos/{owner}/{repo}/git/commits/{commit_sha}", "get">; + /** + * @see https://docs.github.com/rest/git/refs#list-matching-references + */ + "GET /repos/{owner}/{repo}/git/matching-refs/{ref}": Operation<"/repos/{owner}/{repo}/git/matching-refs/{ref}", "get">; + /** + * @see https://docs.github.com/rest/git/refs#get-a-reference + */ + "GET /repos/{owner}/{repo}/git/ref/{ref}": Operation<"/repos/{owner}/{repo}/git/ref/{ref}", "get">; + /** + * @see https://docs.github.com/rest/git/tags#get-a-tag + */ + "GET /repos/{owner}/{repo}/git/tags/{tag_sha}": Operation<"/repos/{owner}/{repo}/git/tags/{tag_sha}", "get">; + /** + * @see https://docs.github.com/rest/git/trees#get-a-tree + */ + "GET /repos/{owner}/{repo}/git/trees/{tree_sha}": Operation<"/repos/{owner}/{repo}/git/trees/{tree_sha}", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#list-repository-webhooks + */ + "GET /repos/{owner}/{repo}/hooks": Operation<"/repos/{owner}/{repo}/hooks", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#get-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#get-a-webhook-configuration-for-a-repository + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/config", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#list-deliveries-for-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#get-a-delivery-for-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}", "get">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#get-an-import-status + */ + "GET /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "get">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#get-commit-authors + */ + "GET /repos/{owner}/{repo}/import/authors": Operation<"/repos/{owner}/{repo}/import/authors", "get">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#get-large-files + */ + "GET /repos/{owner}/{repo}/import/large_files": Operation<"/repos/{owner}/{repo}/import/large_files", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-a-repository-installation-for-the-authenticated-app + */ + "GET /repos/{owner}/{repo}/installation": Operation<"/repos/{owner}/{repo}/installation", "get">; + /** + * @see https://docs.github.com/rest/interactions/repos#get-interaction-restrictions-for-a-repository + */ + "GET /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#list-repository-invitations + */ + "GET /repos/{owner}/{repo}/invitations": Operation<"/repos/{owner}/{repo}/invitations", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#list-repository-issues + */ + "GET /repos/{owner}/{repo}/issues": Operation<"/repos/{owner}/{repo}/issues", "get">; + /** + * @see https://docs.github.com/rest/issues/comments#list-issue-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/comments": Operation<"/repos/{owner}/{repo}/issues/comments", "get">; + /** + * @see https://docs.github.com/rest/issues/comments#get-an-issue-comment + */ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue-comment + */ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/issues/events#list-issue-events-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/events": Operation<"/repos/{owner}/{repo}/issues/events", "get">; + /** + * @see https://docs.github.com/rest/issues/events#get-an-issue-event + */ + "GET /repos/{owner}/{repo}/issues/events/{event_id}": Operation<"/repos/{owner}/{repo}/issues/events/{event_id}", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#get-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}", "get">; + /** + * @see https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned-to-a-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", "get">; + /** + * @see https://docs.github.com/rest/issues/comments#list-issue-comments + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/issues/events#list-issue-events + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/events": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/events", "get">; + /** + * @see https://docs.github.com/rest/issues/labels#list-labels-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/issues/timeline#list-timeline-events-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/timeline", "get">; + /** + * @see https://docs.github.com/rest/deploy-keys/deploy-keys#list-deploy-keys + */ + "GET /repos/{owner}/{repo}/keys": Operation<"/repos/{owner}/{repo}/keys", "get">; + /** + * @see https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key + */ + "GET /repos/{owner}/{repo}/keys/{key_id}": Operation<"/repos/{owner}/{repo}/keys/{key_id}", "get">; + /** + * @see https://docs.github.com/rest/issues/labels#list-labels-for-a-repository + */ + "GET /repos/{owner}/{repo}/labels": Operation<"/repos/{owner}/{repo}/labels", "get">; + /** + * @see https://docs.github.com/rest/issues/labels#get-a-label + */ + "GET /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-languages + */ + "GET /repos/{owner}/{repo}/languages": Operation<"/repos/{owner}/{repo}/languages", "get">; + /** + * @see https://docs.github.com/rest/licenses/licenses#get-the-license-for-a-repository + */ + "GET /repos/{owner}/{repo}/license": Operation<"/repos/{owner}/{repo}/license", "get">; + /** + * @see https://docs.github.com/rest/issues/milestones#list-milestones + */ + "GET /repos/{owner}/{repo}/milestones": Operation<"/repos/{owner}/{repo}/milestones", "get">; + /** + * @see https://docs.github.com/rest/issues/milestones#get-a-milestone + */ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "get">; + /** + * @see https://docs.github.com/rest/issues/labels#list-labels-for-issues-in-a-milestone + */ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}/labels", "get">; + /** + * @see https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/notifications": Operation<"/repos/{owner}/{repo}/notifications", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-a-apiname-pages-site + */ + "GET /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#list-apiname-pages-builds + */ + "GET /repos/{owner}/{repo}/pages/builds": Operation<"/repos/{owner}/{repo}/pages/builds", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-latest-pages-build + */ + "GET /repos/{owner}/{repo}/pages/builds/latest": Operation<"/repos/{owner}/{repo}/pages/builds/latest", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-apiname-pages-build + */ + "GET /repos/{owner}/{repo}/pages/builds/{build_id}": Operation<"/repos/{owner}/{repo}/pages/builds/{build_id}", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-the-status-of-a-github-pages-deployment + */ + "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}": Operation<"/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-a-dns-health-check-for-github-pages + */ + "GET /repos/{owner}/{repo}/pages/health": Operation<"/repos/{owner}/{repo}/pages/health", "get">; + /** + * @see https://docs.github.com/rest/projects/projects#list-repository-projects + */ + "GET /repos/{owner}/{repo}/projects": Operation<"/repos/{owner}/{repo}/projects", "get">; + /** + * @see https://docs.github.com/rest/repos/custom-properties#get-all-custom-property-values-for-a-repository + */ + "GET /repos/{owner}/{repo}/properties/values": Operation<"/repos/{owner}/{repo}/properties/values", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#list-pull-requests + */ + "GET /repos/{owner}/{repo}/pulls": Operation<"/repos/{owner}/{repo}/pulls", "get">; + /** + * @see https://docs.github.com/rest/pulls/comments#list-review-comments-in-a-repository + */ + "GET /repos/{owner}/{repo}/pulls/comments": Operation<"/repos/{owner}/{repo}/pulls/comments", "get">; + /** + * @see https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-pull-request-review-comment + */ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#get-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}", "get">; + /** + * @see https://docs.github.com/rest/pulls/comments#list-review-comments-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#list-commits-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/commits", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#list-pull-requests-files + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/files", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#check-if-a-pull-request-has-been-merged + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/merge": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/merge", "get">; + /** + * @see https://docs.github.com/rest/pulls/review-requests#get-all-requested-reviewers-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "get">; + /** + * @see https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews", "get">; + /** + * @see https://docs.github.com/rest/pulls/reviews#get-a-review-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "get">; + /** + * @see https://docs.github.com/rest/pulls/reviews#list-comments-for-a-pull-request-review + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#get-a-repository-readme + */ + "GET /repos/{owner}/{repo}/readme": Operation<"/repos/{owner}/{repo}/readme", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#get-a-repository-readme-for-a-directory + */ + "GET /repos/{owner}/{repo}/readme/{dir}": Operation<"/repos/{owner}/{repo}/readme/{dir}", "get">; + /** + * @see https://docs.github.com/rest/releases/releases#list-releases + */ + "GET /repos/{owner}/{repo}/releases": Operation<"/repos/{owner}/{repo}/releases", "get">; + /** + * @see https://docs.github.com/rest/releases/assets#get-a-release-asset + */ + "GET /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "get">; + /** + * @see https://docs.github.com/rest/releases/releases#get-the-latest-release + */ + "GET /repos/{owner}/{repo}/releases/latest": Operation<"/repos/{owner}/{repo}/releases/latest", "get">; + /** + * @see https://docs.github.com/rest/releases/releases#get-a-release-by-tag-name + */ + "GET /repos/{owner}/{repo}/releases/tags/{tag}": Operation<"/repos/{owner}/{repo}/releases/tags/{tag}", "get">; + /** + * @see https://docs.github.com/rest/releases/releases#get-a-release + */ + "GET /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "get">; + /** + * @see https://docs.github.com/rest/releases/assets#list-release-assets + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets": Operation<"/repos/{owner}/{repo}/releases/{release_id}/assets", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-release + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions": Operation<"/repos/{owner}/{repo}/releases/{release_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/repos/rules#get-rules-for-a-branch + */ + "GET /repos/{owner}/{repo}/rules/branches/{branch}": Operation<"/repos/{owner}/{repo}/rules/branches/{branch}", "get">; + /** + * @see https://docs.github.com/rest/repos/rules#get-all-repository-rulesets + */ + "GET /repos/{owner}/{repo}/rulesets": Operation<"/repos/{owner}/{repo}/rulesets", "get">; + /** + * @see https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites + */ + "GET /repos/{owner}/{repo}/rulesets/rule-suites": Operation<"/repos/{owner}/{repo}/rulesets/rule-suites", "get">; + /** + * @see https://docs.github.com/rest/repos/rule-suites#get-a-repository-rule-suite + */ + "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}": Operation<"/repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}", "get">; + /** + * @see https://docs.github.com/rest/repos/rules#get-a-repository-ruleset + */ + "GET /repos/{owner}/{repo}/rulesets/{ruleset_id}": Operation<"/repos/{owner}/{repo}/rulesets/{ruleset_id}", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#get-a-secret-scanning-alert + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-locations-for-a-secret-scanning-alert + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories + */ + "GET /repos/{owner}/{repo}/security-advisories": Operation<"/repos/{owner}/{repo}/security-advisories", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#get-a-repository-security-advisory + */ + "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}": Operation<"/repos/{owner}/{repo}/security-advisories/{ghsa_id}", "get">; + /** + * @see https://docs.github.com/rest/activity/starring#list-stargazers + */ + "GET /repos/{owner}/{repo}/stargazers": Operation<"/repos/{owner}/{repo}/stargazers", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/code_frequency": Operation<"/repos/{owner}/{repo}/stats/code_frequency", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-the-last-year-of-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/commit_activity": Operation<"/repos/{owner}/{repo}/stats/commit_activity", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-all-contributor-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/contributors": Operation<"/repos/{owner}/{repo}/stats/contributors", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-count + */ + "GET /repos/{owner}/{repo}/stats/participation": Operation<"/repos/{owner}/{repo}/stats/participation", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-the-hourly-commit-count-for-each-day + */ + "GET /repos/{owner}/{repo}/stats/punch_card": Operation<"/repos/{owner}/{repo}/stats/punch_card", "get">; + /** + * @see https://docs.github.com/rest/activity/watching#list-watchers + */ + "GET /repos/{owner}/{repo}/subscribers": Operation<"/repos/{owner}/{repo}/subscribers", "get">; + /** + * @see https://docs.github.com/rest/activity/watching#get-a-repository-subscription + */ + "GET /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-tags + */ + "GET /repos/{owner}/{repo}/tags": Operation<"/repos/{owner}/{repo}/tags", "get">; + /** + * @see https://docs.github.com/rest/repos/tags#list-tag-protection-states-for-a-repository + */ + "GET /repos/{owner}/{repo}/tags/protection": Operation<"/repos/{owner}/{repo}/tags/protection", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#download-a-repository-archive-tar + */ + "GET /repos/{owner}/{repo}/tarball/{ref}": Operation<"/repos/{owner}/{repo}/tarball/{ref}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-teams + */ + "GET /repos/{owner}/{repo}/teams": Operation<"/repos/{owner}/{repo}/teams", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#get-all-repository-topics + */ + "GET /repos/{owner}/{repo}/topics": Operation<"/repos/{owner}/{repo}/topics", "get">; + /** + * @see https://docs.github.com/rest/metrics/traffic#get-repository-clones + */ + "GET /repos/{owner}/{repo}/traffic/clones": Operation<"/repos/{owner}/{repo}/traffic/clones", "get">; + /** + * @see https://docs.github.com/rest/metrics/traffic#get-top-referral-paths + */ + "GET /repos/{owner}/{repo}/traffic/popular/paths": Operation<"/repos/{owner}/{repo}/traffic/popular/paths", "get">; + /** + * @see https://docs.github.com/rest/metrics/traffic#get-top-referral-sources + */ + "GET /repos/{owner}/{repo}/traffic/popular/referrers": Operation<"/repos/{owner}/{repo}/traffic/popular/referrers", "get">; + /** + * @see https://docs.github.com/rest/metrics/traffic#get-page-views + */ + "GET /repos/{owner}/{repo}/traffic/views": Operation<"/repos/{owner}/{repo}/traffic/views", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#check-if-vulnerability-alerts-are-enabled-for-a-repository + */ + "GET /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#download-a-repository-archive-zip + */ + "GET /repos/{owner}/{repo}/zipball/{ref}": Operation<"/repos/{owner}/{repo}/zipball/{ref}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-public-repositories + */ + "GET /repositories": Operation<"/repositories", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-environment-secrets + */ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-an-environment-public-key + */ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-an-environment-secret + */ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-environment-variables + */ + "GET /repositories/{repository_id}/environments/{environment_name}/variables": Operation<"/repositories/{repository_id}/environments/{environment_name}/variables", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#get-an-environment-variable + */ + "GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/variables/{name}", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-code + */ + "GET /search/code": Operation<"/search/code", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-commits + */ + "GET /search/commits": Operation<"/search/commits", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-issues-and-pull-requests + */ + "GET /search/issues": Operation<"/search/issues", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-labels + */ + "GET /search/labels": Operation<"/search/labels", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-repositories + */ + "GET /search/repositories": Operation<"/search/repositories", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-topics + */ + "GET /search/topics": Operation<"/search/topics", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-users + */ + "GET /search/users": Operation<"/search/users", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#get-a-team-legacy + */ + "GET /teams/{team_id}": Operation<"/teams/{team_id}", "get">; + /** + * @see https://docs.github.com/rest/teams/discussions#list-discussions-legacy + */ + "GET /teams/{team_id}/discussions": Operation<"/teams/{team_id}/discussions", "get">; + /** + * @see https://docs.github.com/rest/teams/discussions#get-a-discussion-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "get">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/teams/members#list-pending-team-invitations-legacy + */ + "GET /teams/{team_id}/invitations": Operation<"/teams/{team_id}/invitations", "get">; + /** + * @see https://docs.github.com/rest/teams/members#list-team-members-legacy + */ + "GET /teams/{team_id}/members": Operation<"/teams/{team_id}/members", "get">; + /** + * @see https://docs.github.com/rest/teams/members#get-team-member-legacy + */ + "GET /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "get">; + /** + * @see https://docs.github.com/rest/teams/members#get-team-membership-for-a-user-legacy + */ + "GET /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-projects-legacy + */ + "GET /teams/{team_id}/projects": Operation<"/teams/{team_id}/projects", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-project-legacy + */ + "GET /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-repositories-legacy + */ + "GET /teams/{team_id}/repos": Operation<"/teams/{team_id}/repos", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository-legacy + */ + "GET /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-child-teams-legacy + */ + "GET /teams/{team_id}/teams": Operation<"/teams/{team_id}/teams", "get">; + /** + * @see https://docs.github.com/rest/users/users#get-the-authenticated-user + */ + "GET /user": Operation<"/user", "get">; + /** + * @see https://docs.github.com/rest/users/blocking#list-users-blocked-by-the-authenticated-user + */ + "GET /user/blocks": Operation<"/user/blocks", "get">; + /** + * @see https://docs.github.com/rest/users/blocking#check-if-a-user-is-blocked-by-the-authenticated-user + */ + "GET /user/blocks/{username}": Operation<"/user/blocks/{username}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#list-codespaces-for-the-authenticated-user + */ + "GET /user/codespaces": Operation<"/user/codespaces", "get">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#list-secrets-for-the-authenticated-user + */ + "GET /user/codespaces/secrets": Operation<"/user/codespaces/secrets", "get">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#get-public-key-for-the-authenticated-user + */ + "GET /user/codespaces/secrets/public-key": Operation<"/user/codespaces/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#get-a-secret-for-the-authenticated-user + */ + "GET /user/codespaces/secrets/{secret_name}": Operation<"/user/codespaces/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret + */ + "GET /user/codespaces/secrets/{secret_name}/repositories": Operation<"/user/codespaces/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#get-a-codespace-for-the-authenticated-user + */ + "GET /user/codespaces/{codespace_name}": Operation<"/user/codespaces/{codespace_name}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#get-details-about-a-codespace-export + */ + "GET /user/codespaces/{codespace_name}/exports/{export_id}": Operation<"/user/codespaces/{codespace_name}/exports/{export_id}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/machines#list-machine-types-for-a-codespace + */ + "GET /user/codespaces/{codespace_name}/machines": Operation<"/user/codespaces/{codespace_name}/machines", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-authenticated-user + */ + "GET /user/docker/conflicts": Operation<"/user/docker/conflicts", "get">; + /** + * @see https://docs.github.com/rest/users/emails#list-email-addresses-for-the-authenticated-user + */ + "GET /user/emails": Operation<"/user/emails", "get">; + /** + * @see https://docs.github.com/rest/users/followers#list-followers-of-the-authenticated-user + */ + "GET /user/followers": Operation<"/user/followers", "get">; + /** + * @see https://docs.github.com/rest/users/followers#list-the-people-the-authenticated-user-follows + */ + "GET /user/following": Operation<"/user/following", "get">; + /** + * @see https://docs.github.com/rest/users/followers#check-if-a-person-is-followed-by-the-authenticated-user + */ + "GET /user/following/{username}": Operation<"/user/following/{username}", "get">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-the-authenticated-user + */ + "GET /user/gpg_keys": Operation<"/user/gpg_keys", "get">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#get-a-gpg-key-for-the-authenticated-user + */ + "GET /user/gpg_keys/{gpg_key_id}": Operation<"/user/gpg_keys/{gpg_key_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/installations#list-app-installations-accessible-to-the-user-access-token + */ + "GET /user/installations": Operation<"/user/installations", "get">; + /** + * @see https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-user-access-token + */ + "GET /user/installations/{installation_id}/repositories": Operation<"/user/installations/{installation_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/interactions/user#get-interaction-restrictions-for-your-public-repositories + */ + "GET /user/interaction-limits": Operation<"/user/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#list-user-account-issues-assigned-to-the-authenticated-user + */ + "GET /user/issues": Operation<"/user/issues", "get">; + /** + * @see https://docs.github.com/rest/users/keys#list-public-ssh-keys-for-the-authenticated-user + */ + "GET /user/keys": Operation<"/user/keys", "get">; + /** + * @see https://docs.github.com/rest/users/keys#get-a-public-ssh-key-for-the-authenticated-user + */ + "GET /user/keys/{key_id}": Operation<"/user/keys/{key_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user + */ + "GET /user/marketplace_purchases": Operation<"/user/marketplace_purchases", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user-stubbed + */ + "GET /user/marketplace_purchases/stubbed": Operation<"/user/marketplace_purchases/stubbed", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-organization-memberships-for-the-authenticated-user + */ + "GET /user/memberships/orgs": Operation<"/user/memberships/orgs", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#get-an-organization-membership-for-the-authenticated-user + */ + "GET /user/memberships/orgs/{org}": Operation<"/user/memberships/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/migrations/users#list-user-migrations + */ + "GET /user/migrations": Operation<"/user/migrations", "get">; + /** + * @see https://docs.github.com/rest/migrations/users#get-a-user-migration-status + */ + "GET /user/migrations/{migration_id}": Operation<"/user/migrations/{migration_id}", "get">; + /** + * @see https://docs.github.com/rest/migrations/users#download-a-user-migration-archive + */ + "GET /user/migrations/{migration_id}/archive": Operation<"/user/migrations/{migration_id}/archive", "get">; + /** + * @see https://docs.github.com/rest/migrations/users#list-repositories-for-a-user-migration + */ + "GET /user/migrations/{migration_id}/repositories": Operation<"/user/migrations/{migration_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user + */ + "GET /user/orgs": Operation<"/user/orgs", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-packages-for-the-authenticated-users-namespace + */ + "GET /user/packages": Operation<"/user/packages", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-for-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}": Operation<"/user/packages/{package_type}/{package_name}", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}/versions": Operation<"/user/packages/{package_type}/{package_name}/versions", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-version-for-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/user/packages/{package_type}/{package_name}/versions/{package_version_id}", "get">; + /** + * @see https://docs.github.com/rest/users/emails#list-public-email-addresses-for-the-authenticated-user + */ + "GET /user/public_emails": Operation<"/user/public_emails", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repositories-for-the-authenticated-user + */ + "GET /user/repos": Operation<"/user/repos", "get">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#list-repository-invitations-for-the-authenticated-user + */ + "GET /user/repository_invitations": Operation<"/user/repository_invitations", "get">; + /** + * @see https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-the-authenticated-user + */ + "GET /user/social_accounts": Operation<"/user/social_accounts", "get">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-the-authenticated-user + */ + "GET /user/ssh_signing_keys": Operation<"/user/ssh_signing_keys", "get">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#get-an-ssh-signing-key-for-the-authenticated-user + */ + "GET /user/ssh_signing_keys/{ssh_signing_key_id}": Operation<"/user/ssh_signing_keys/{ssh_signing_key_id}", "get">; + /** + * @see https://docs.github.com/rest/activity/starring#list-repositories-starred-by-the-authenticated-user + */ + "GET /user/starred": Operation<"/user/starred", "get">; + /** + * @see https://docs.github.com/rest/activity/starring#check-if-a-repository-is-starred-by-the-authenticated-user + */ + "GET /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/activity/watching#list-repositories-watched-by-the-authenticated-user + */ + "GET /user/subscriptions": Operation<"/user/subscriptions", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-teams-for-the-authenticated-user + */ + "GET /user/teams": Operation<"/user/teams", "get">; + /** + * @see https://docs.github.com/rest/users/users#list-users + */ + "GET /users": Operation<"/users", "get">; + /** + * @see https://docs.github.com/rest/users/users#get-a-user + */ + "GET /users/{username}": Operation<"/users/{username}", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-user + */ + "GET /users/{username}/docker/conflicts": Operation<"/users/{username}/docker/conflicts", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-events-for-the-authenticated-user + */ + "GET /users/{username}/events": Operation<"/users/{username}/events", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-organization-events-for-the-authenticated-user + */ + "GET /users/{username}/events/orgs/{org}": Operation<"/users/{username}/events/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events-for-a-user + */ + "GET /users/{username}/events/public": Operation<"/users/{username}/events/public", "get">; + /** + * @see https://docs.github.com/rest/users/followers#list-followers-of-a-user + */ + "GET /users/{username}/followers": Operation<"/users/{username}/followers", "get">; + /** + * @see https://docs.github.com/rest/users/followers#list-the-people-a-user-follows + */ + "GET /users/{username}/following": Operation<"/users/{username}/following", "get">; + /** + * @see https://docs.github.com/rest/users/followers#check-if-a-user-follows-another-user + */ + "GET /users/{username}/following/{target_user}": Operation<"/users/{username}/following/{target_user}", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-gists-for-a-user + */ + "GET /users/{username}/gists": Operation<"/users/{username}/gists", "get">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-a-user + */ + "GET /users/{username}/gpg_keys": Operation<"/users/{username}/gpg_keys", "get">; + /** + * @see https://docs.github.com/rest/users/users#get-contextual-information-for-a-user + */ + "GET /users/{username}/hovercard": Operation<"/users/{username}/hovercard", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-a-user-installation-for-the-authenticated-app + */ + "GET /users/{username}/installation": Operation<"/users/{username}/installation", "get">; + /** + * @see https://docs.github.com/rest/users/keys#list-public-keys-for-a-user + */ + "GET /users/{username}/keys": Operation<"/users/{username}/keys", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-organizations-for-a-user + */ + "GET /users/{username}/orgs": Operation<"/users/{username}/orgs", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-packages-for-a-user + */ + "GET /users/{username}/packages": Operation<"/users/{username}/packages", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-for-a-user + */ + "GET /users/{username}/packages/{package_type}/{package_name}": Operation<"/users/{username}/packages/{package_type}/{package_name}", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-a-user + */ + "GET /users/{username}/packages/{package_type}/{package_name}/versions": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-version-for-a-user + */ + "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}", "get">; + /** + * @see https://docs.github.com/rest/projects/projects#list-user-projects + */ + "GET /users/{username}/projects": Operation<"/users/{username}/projects", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-events-received-by-the-authenticated-user + */ + "GET /users/{username}/received_events": Operation<"/users/{username}/received_events", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events-received-by-a-user + */ + "GET /users/{username}/received_events/public": Operation<"/users/{username}/received_events/public", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repositories-for-a-user + */ + "GET /users/{username}/repos": Operation<"/users/{username}/repos", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-github-actions-billing-for-a-user + */ + "GET /users/{username}/settings/billing/actions": Operation<"/users/{username}/settings/billing/actions", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-github-packages-billing-for-a-user + */ + "GET /users/{username}/settings/billing/packages": Operation<"/users/{username}/settings/billing/packages", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-shared-storage-billing-for-a-user + */ + "GET /users/{username}/settings/billing/shared-storage": Operation<"/users/{username}/settings/billing/shared-storage", "get">; + /** + * @see https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-a-user + */ + "GET /users/{username}/social_accounts": Operation<"/users/{username}/social_accounts", "get">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-a-user + */ + "GET /users/{username}/ssh_signing_keys": Operation<"/users/{username}/ssh_signing_keys", "get">; + /** + * @see https://docs.github.com/rest/activity/starring#list-repositories-starred-by-a-user + */ + "GET /users/{username}/starred": Operation<"/users/{username}/starred", "get">; + /** + * @see https://docs.github.com/rest/activity/watching#list-repositories-watched-by-a-user + */ + "GET /users/{username}/subscriptions": Operation<"/users/{username}/subscriptions", "get">; + /** + * @see https://docs.github.com/rest/meta/meta#get-all-api-versions + */ + "GET /versions": Operation<"/versions", "get">; + /** + * @see https://docs.github.com/rest/meta/meta#get-the-zen-of-github + */ + "GET /zen": Operation<"/zen", "get">; + /** + * @see https://docs.github.com/rest/apps/webhooks#update-a-webhook-configuration-for-an-app + */ + "PATCH /app/hook/config": Operation<"/app/hook/config", "patch">; + /** + * @see https://docs.github.com/rest/apps/oauth-applications#reset-a-token + */ + "PATCH /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "patch">; + /** + * @see https://docs.github.com/rest/reference/gists/#update-a-gist + */ + "PATCH /gists/{gist_id}": Operation<"/gists/{gist_id}", "patch">; + /** + * @see https://docs.github.com/rest/gists/comments#update-a-gist-comment + */ + "PATCH /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/activity/notifications#mark-a-thread-as-read + */ + "PATCH /notifications/threads/{thread_id}": Operation<"/notifications/threads/{thread_id}", "patch">; + /** + * @see https://docs.github.com/rest/orgs/orgs#update-an-organization + */ + "PATCH /orgs/{org}": Operation<"/orgs/{org}", "patch">; + /** + * @see https://docs.github.com/rest/actions/variables#update-an-organization-variable + */ + "PATCH /orgs/{org}/actions/variables/{name}": Operation<"/orgs/{org}/actions/variables/{name}", "patch">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#update-an-organization-webhook + */ + "PATCH /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "patch">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization + */ + "PATCH /orgs/{org}/hooks/{hook_id}/config": Operation<"/orgs/{org}/hooks/{hook_id}/config", "patch">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#update-a-custom-organization-role + */ + "PATCH /orgs/{org}/organization-roles/{role_id}": Operation<"/orgs/{org}/organization-roles/{role_id}", "patch">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-properties-for-an-organization + */ + "PATCH /orgs/{org}/properties/schema": Operation<"/orgs/{org}/properties/schema", "patch">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-property-values-for-organization-repositories + */ + "PATCH /orgs/{org}/properties/values": Operation<"/orgs/{org}/properties/values", "patch">; + /** + * @see https://docs.github.com/rest/teams/teams#update-a-team + */ + "PATCH /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "patch">; + /** + * @see https://docs.github.com/rest/teams/discussions#update-a-discussion + */ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "patch">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#update-a-discussion-comment + */ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "patch">; + /** + * @see https://docs.github.com/rest/projects/cards#update-an-existing-project-card + */ + "PATCH /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "patch">; + /** + * @see https://docs.github.com/rest/projects/columns#update-an-existing-project-column + */ + "PATCH /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "patch">; + /** + * @see https://docs.github.com/rest/projects/projects#update-a-project + */ + "PATCH /projects/{project_id}": Operation<"/projects/{project_id}", "patch">; + /** + * @see https://docs.github.com/rest/repos/repos#update-a-repository + */ + "PATCH /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "patch">; + /** + * @see https://docs.github.com/rest/actions/variables#update-a-repository-variable + */ + "PATCH /repos/{owner}/{repo}/actions/variables/{name}": Operation<"/repos/{owner}/{repo}/actions/variables/{name}", "patch">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#update-pull-request-review-protection + */ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "patch">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#update-status-check-protection + */ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "patch">; + /** + * @see https://docs.github.com/rest/checks/runs#update-a-check-run + */ + "PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}", "patch">; + /** + * @see https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites + */ + "PATCH /repos/{owner}/{repo}/check-suites/preferences": Operation<"/repos/{owner}/{repo}/check-suites/preferences", "patch">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-alert + */ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "patch">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-default-setup-configuration + */ + "PATCH /repos/{owner}/{repo}/code-scanning/default-setup": Operation<"/repos/{owner}/{repo}/code-scanning/default-setup", "patch">; + /** + * @see https://docs.github.com/rest/commits/comments#update-a-commit-comment + */ + "PATCH /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#update-a-dependabot-alert + */ + "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/dependabot/alerts/{alert_number}", "patch">; + /** + * @see https://docs.github.com/rest/git/refs#update-a-reference + */ + "PATCH /repos/{owner}/{repo}/git/refs/{ref}": Operation<"/repos/{owner}/{repo}/git/refs/{ref}", "patch">; + /** + * @see https://docs.github.com/rest/repos/webhooks#update-a-repository-webhook + */ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "patch">; + /** + * @see https://docs.github.com/rest/repos/webhooks#update-a-webhook-configuration-for-a-repository + */ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/config", "patch">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#update-an-import + */ + "PATCH /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "patch">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author + */ + "PATCH /repos/{owner}/{repo}/import/authors/{author_id}": Operation<"/repos/{owner}/{repo}/import/authors/{author_id}", "patch">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference + */ + "PATCH /repos/{owner}/{repo}/import/lfs": Operation<"/repos/{owner}/{repo}/import/lfs", "patch">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#update-a-repository-invitation + */ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}": Operation<"/repos/{owner}/{repo}/invitations/{invitation_id}", "patch">; + /** + * @see https://docs.github.com/rest/issues/comments#update-an-issue-comment + */ + "PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/issues/issues#update-an-issue + */ + "PATCH /repos/{owner}/{repo}/issues/{issue_number}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}", "patch">; + /** + * @see https://docs.github.com/rest/issues/labels#update-a-label + */ + "PATCH /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "patch">; + /** + * @see https://docs.github.com/rest/issues/milestones#update-a-milestone + */ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "patch">; + /** + * @see https://docs.github.com/rest/repos/custom-properties#create-or-update-custom-property-values-for-a-repository + */ + "PATCH /repos/{owner}/{repo}/properties/values": Operation<"/repos/{owner}/{repo}/properties/values", "patch">; + /** + * @see https://docs.github.com/rest/pulls/comments#update-a-review-comment-for-a-pull-request + */ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/pulls/pulls#update-a-pull-request + */ + "PATCH /repos/{owner}/{repo}/pulls/{pull_number}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}", "patch">; + /** + * @see https://docs.github.com/rest/releases/assets#update-a-release-asset + */ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "patch">; + /** + * @see https://docs.github.com/rest/releases/releases#update-a-release + */ + "PATCH /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "patch">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#update-a-secret-scanning-alert + */ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", "patch">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#update-a-repository-security-advisory + */ + "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}": Operation<"/repos/{owner}/{repo}/security-advisories/{ghsa_id}", "patch">; + /** + * @see https://docs.github.com/rest/actions/variables#update-an-environment-variable + */ + "PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/variables/{name}", "patch">; + /** + * @see https://docs.github.com/rest/teams/teams#update-a-team-legacy + */ + "PATCH /teams/{team_id}": Operation<"/teams/{team_id}", "patch">; + /** + * @see https://docs.github.com/rest/teams/discussions#update-a-discussion-legacy + */ + "PATCH /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "patch">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#update-a-discussion-comment-legacy + */ + "PATCH /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "patch">; + /** + * @see https://docs.github.com/rest/users/users#update-the-authenticated-user + */ + "PATCH /user": Operation<"/user", "patch">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#update-a-codespace-for-the-authenticated-user + */ + "PATCH /user/codespaces/{codespace_name}": Operation<"/user/codespaces/{codespace_name}", "patch">; + /** + * @see https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user + */ + "PATCH /user/email/visibility": Operation<"/user/email/visibility", "patch">; + /** + * @see https://docs.github.com/rest/orgs/members#update-an-organization-membership-for-the-authenticated-user + */ + "PATCH /user/memberships/orgs/{org}": Operation<"/user/memberships/orgs/{org}", "patch">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#accept-a-repository-invitation + */ + "PATCH /user/repository_invitations/{invitation_id}": Operation<"/user/repository_invitations/{invitation_id}", "patch">; + /** + * @see https://docs.github.com/rest/apps/apps#create-a-github-app-from-a-manifest + */ + "POST /app-manifests/{code}/conversions": Operation<"/app-manifests/{code}/conversions", "post">; + /** + * @see https://docs.github.com/rest/apps/webhooks#redeliver-a-delivery-for-an-app-webhook + */ + "POST /app/hook/deliveries/{delivery_id}/attempts": Operation<"/app/hook/deliveries/{delivery_id}/attempts", "post">; + /** + * @see https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app + */ + "POST /app/installations/{installation_id}/access_tokens": Operation<"/app/installations/{installation_id}/access_tokens", "post">; + /** + * @see https://docs.github.com/rest/apps/oauth-applications#check-a-token + */ + "POST /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "post">; + /** + * @see https://docs.github.com/rest/apps/apps#create-a-scoped-access-token + */ + "POST /applications/{client_id}/token/scoped": Operation<"/applications/{client_id}/token/scoped", "post">; + /** + * @see https://docs.github.com/rest/gists/gists#create-a-gist + */ + "POST /gists": Operation<"/gists", "post">; + /** + * @see https://docs.github.com/rest/gists/comments#create-a-gist-comment + */ + "POST /gists/{gist_id}/comments": Operation<"/gists/{gist_id}/comments", "post">; + /** + * @see https://docs.github.com/rest/gists/gists#fork-a-gist + */ + "POST /gists/{gist_id}/forks": Operation<"/gists/{gist_id}/forks", "post">; + /** + * @see https://docs.github.com/rest/markdown/markdown#render-a-markdown-document + */ + "POST /markdown": Operation<"/markdown", "post">; + /** + * @see https://docs.github.com/rest/markdown/markdown#render-a-markdown-document-in-raw-mode + */ + "POST /markdown/raw": Operation<"/markdown/raw", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-configuration-for-a-just-in-time-runner-for-an-organization + */ + "POST /orgs/{org}/actions/runners/generate-jitconfig": Operation<"/orgs/{org}/actions/runners/generate-jitconfig", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-a-registration-token-for-an-organization + */ + "POST /orgs/{org}/actions/runners/registration-token": Operation<"/orgs/{org}/actions/runners/registration-token", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-a-remove-token-for-an-organization + */ + "POST /orgs/{org}/actions/runners/remove-token": Operation<"/orgs/{org}/actions/runners/remove-token", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#add-custom-labels-to-a-self-hosted-runner-for-an-organization + */ + "POST /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "post">; + /** + * @see https://docs.github.com/rest/actions/variables#create-an-organization-variable + */ + "POST /orgs/{org}/actions/variables": Operation<"/orgs/{org}/actions/variables", "post">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#add-users-to-codespaces-access-for-an-organization + */ + "POST /orgs/{org}/codespaces/access/selected_users": Operation<"/orgs/{org}/codespaces/access/selected_users", "post">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#add-teams-to-the-copilot-subscription-for-an-organization + */ + "POST /orgs/{org}/copilot/billing/selected_teams": Operation<"/orgs/{org}/copilot/billing/selected_teams", "post">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#add-users-to-the-copilot-subscription-for-an-organization + */ + "POST /orgs/{org}/copilot/billing/selected_users": Operation<"/orgs/{org}/copilot/billing/selected_users", "post">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#create-an-organization-webhook + */ + "POST /orgs/{org}/hooks": Operation<"/orgs/{org}/hooks", "post">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#redeliver-a-delivery-for-an-organization-webhook + */ + "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": Operation<"/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts", "post">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#ping-an-organization-webhook + */ + "POST /orgs/{org}/hooks/{hook_id}/pings": Operation<"/orgs/{org}/hooks/{hook_id}/pings", "post">; + /** + * @see https://docs.github.com/rest/orgs/members#create-an-organization-invitation + */ + "POST /orgs/{org}/invitations": Operation<"/orgs/{org}/invitations", "post">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#stop-a-codespace-for-an-organization-user + */ + "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop": Operation<"/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop", "post">; + /** + * @see https://docs.github.com/rest/migrations/orgs#start-an-organization-migration + */ + "POST /orgs/{org}/migrations": Operation<"/orgs/{org}/migrations", "post">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#create-a-custom-organization-role + */ + "POST /orgs/{org}/organization-roles": Operation<"/orgs/{org}/organization-roles", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-a-package-for-an-organization + */ + "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/restore", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-package-version-for-an-organization + */ + "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", "post">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#review-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens + */ + "POST /orgs/{org}/personal-access-token-requests": Operation<"/orgs/{org}/personal-access-token-requests", "post">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#review-a-request-to-access-organization-resources-with-a-fine-grained-personal-access-token + */ + "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}": Operation<"/orgs/{org}/personal-access-token-requests/{pat_request_id}", "post">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-to-organization-resources-via-fine-grained-personal-access-tokens + */ + "POST /orgs/{org}/personal-access-tokens": Operation<"/orgs/{org}/personal-access-tokens", "post">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-a-fine-grained-personal-access-token-has-to-organization-resources + */ + "POST /orgs/{org}/personal-access-tokens/{pat_id}": Operation<"/orgs/{org}/personal-access-tokens/{pat_id}", "post">; + /** + * @see https://docs.github.com/rest/projects/projects#create-an-organization-project + */ + "POST /orgs/{org}/projects": Operation<"/orgs/{org}/projects", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#create-an-organization-repository + */ + "POST /orgs/{org}/repos": Operation<"/orgs/{org}/repos", "post">; + /** + * @see https://docs.github.com/rest/orgs/rules#create-an-organization-repository-ruleset + */ + "POST /orgs/{org}/rulesets": Operation<"/orgs/{org}/rulesets", "post">; + /** + * @see https://docs.github.com/rest/teams/teams#create-a-team + */ + "POST /orgs/{org}/teams": Operation<"/orgs/{org}/teams", "post">; + /** + * @see https://docs.github.com/rest/teams/discussions#create-a-discussion + */ + "POST /orgs/{org}/teams/{team_slug}/discussions": Operation<"/orgs/{org}/teams/{team_slug}/discussions", "post">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#create-a-discussion-comment + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/orgs/orgs#enable-or-disable-a-security-feature-for-an-organization + */ + "POST /orgs/{org}/{security_product}/{enablement}": Operation<"/orgs/{org}/{security_product}/{enablement}", "post">; + /** + * @see https://docs.github.com/rest/projects/cards#move-a-project-card + */ + "POST /projects/columns/cards/{card_id}/moves": Operation<"/projects/columns/cards/{card_id}/moves", "post">; + /** + * @see https://docs.github.com/rest/projects/cards#create-a-project-card + */ + "POST /projects/columns/{column_id}/cards": Operation<"/projects/columns/{column_id}/cards", "post">; + /** + * @see https://docs.github.com/rest/projects/columns#move-a-project-column + */ + "POST /projects/columns/{column_id}/moves": Operation<"/projects/columns/{column_id}/moves", "post">; + /** + * @see https://docs.github.com/rest/projects/columns#create-a-project-column + */ + "POST /projects/{project_id}/columns": Operation<"/projects/{project_id}/columns", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-configuration-for-a-just-in-time-runner-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig": Operation<"/repos/{owner}/{repo}/actions/runners/generate-jitconfig", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-a-registration-token-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/registration-token": Operation<"/repos/{owner}/{repo}/actions/runners/registration-token", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-a-remove-token-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/remove-token": Operation<"/repos/{owner}/{repo}/actions/runners/remove-token", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#add-custom-labels-to-a-self-hosted-runner-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#approve-a-workflow-run-for-a-fork-pull-request + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/approve", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#cancel-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/cancel", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#review-custom-deployment-protection-rules-for-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#force-cancel-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#re-run-a-workflow + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/rerun", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#re-run-failed-jobs-from-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs", "post">; + /** + * @see https://docs.github.com/rest/actions/variables#create-a-repository-variable + */ + "POST /repos/{owner}/{repo}/actions/variables": Operation<"/repos/{owner}/{repo}/actions/variables", "post">; + /** + * @see https://docs.github.com/rest/actions/workflows#create-a-workflow-dispatch-event + */ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches", "post">; + /** + * @see https://docs.github.com/rest/repos/autolinks#create-an-autolink-reference-for-a-repository + */ + "POST /repos/{owner}/{repo}/autolinks": Operation<"/repos/{owner}/{repo}/autolinks", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-admin-branch-protection + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#create-commit-signature-protection + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#add-status-check-contexts + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#add-app-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#add-team-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#add-user-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "post">; + /** + * @see https://docs.github.com/rest/branches/branches#rename-a-branch + */ + "POST /repos/{owner}/{repo}/branches/{branch}/rename": Operation<"/repos/{owner}/{repo}/branches/{branch}/rename", "post">; + /** + * @see https://docs.github.com/rest/reference/checks#create-a-check-run + */ + "POST /repos/{owner}/{repo}/check-runs": Operation<"/repos/{owner}/{repo}/check-runs", "post">; + /** + * @see https://docs.github.com/rest/checks/runs#rerequest-a-check-run + */ + "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest", "post">; + /** + * @see https://docs.github.com/rest/checks/suites#create-a-check-suite + */ + "POST /repos/{owner}/{repo}/check-suites": Operation<"/repos/{owner}/{repo}/check-suites", "post">; + /** + * @see https://docs.github.com/rest/checks/suites#rerequest-a-check-suite + */ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest", "post">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#upload-an-analysis-as-sarif-data + */ + "POST /repos/{owner}/{repo}/code-scanning/sarifs": Operation<"/repos/{owner}/{repo}/code-scanning/sarifs", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-in-a-repository + */ + "POST /repos/{owner}/{repo}/codespaces": Operation<"/repos/{owner}/{repo}/codespaces", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-commit-comment + */ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/commits/comments#create-a-commit-comment + */ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/comments", "post">; + /** + * @see https://docs.github.com/rest/dependency-graph/dependency-submission#create-a-snapshot-of-dependencies-for-a-repository + */ + "POST /repos/{owner}/{repo}/dependency-graph/snapshots": Operation<"/repos/{owner}/{repo}/dependency-graph/snapshots", "post">; + /** + * @see https://docs.github.com/rest/deployments/deployments#create-a-deployment + */ + "POST /repos/{owner}/{repo}/deployments": Operation<"/repos/{owner}/{repo}/deployments", "post">; + /** + * @see https://docs.github.com/rest/deployments/statuses#create-a-deployment-status + */ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#create-a-repository-dispatch-event + */ + "POST /repos/{owner}/{repo}/dispatches": Operation<"/repos/{owner}/{repo}/dispatches", "post">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#create-a-deployment-branch-policy + */ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies", "post">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#create-a-custom-deployment-protection-rule-on-an-environment + */ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules", "post">; + /** + * @see https://docs.github.com/rest/repos/forks#create-a-fork + */ + "POST /repos/{owner}/{repo}/forks": Operation<"/repos/{owner}/{repo}/forks", "post">; + /** + * @see https://docs.github.com/rest/git/blobs#create-a-blob + */ + "POST /repos/{owner}/{repo}/git/blobs": Operation<"/repos/{owner}/{repo}/git/blobs", "post">; + /** + * @see https://docs.github.com/rest/git/commits#create-a-commit + */ + "POST /repos/{owner}/{repo}/git/commits": Operation<"/repos/{owner}/{repo}/git/commits", "post">; + /** + * @see https://docs.github.com/rest/git/refs#create-a-reference + */ + "POST /repos/{owner}/{repo}/git/refs": Operation<"/repos/{owner}/{repo}/git/refs", "post">; + /** + * @see https://docs.github.com/rest/git/tags#create-a-tag-object + */ + "POST /repos/{owner}/{repo}/git/tags": Operation<"/repos/{owner}/{repo}/git/tags", "post">; + /** + * @see https://docs.github.com/rest/git/trees#create-a-tree + */ + "POST /repos/{owner}/{repo}/git/trees": Operation<"/repos/{owner}/{repo}/git/trees", "post">; + /** + * @see https://docs.github.com/rest/repos/webhooks#create-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks": Operation<"/repos/{owner}/{repo}/hooks", "post">; + /** + * @see https://docs.github.com/rest/repos/webhooks#redeliver-a-delivery-for-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts", "post">; + /** + * @see https://docs.github.com/rest/repos/webhooks#ping-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/pings": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/pings", "post">; + /** + * @see https://docs.github.com/rest/repos/webhooks#test-the-push-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/tests": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/tests", "post">; + /** + * @see https://docs.github.com/rest/issues/issues#create-an-issue + */ + "POST /repos/{owner}/{repo}/issues": Operation<"/repos/{owner}/{repo}/issues", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue-comment + */ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/issues/assignees#add-assignees-to-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/assignees", "post">; + /** + * @see https://docs.github.com/rest/issues/comments#create-an-issue-comment + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/issues/labels#add-labels-to-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/deploy-keys/deploy-keys#create-a-deploy-key + */ + "POST /repos/{owner}/{repo}/keys": Operation<"/repos/{owner}/{repo}/keys", "post">; + /** + * @see https://docs.github.com/rest/issues/labels#create-a-label + */ + "POST /repos/{owner}/{repo}/labels": Operation<"/repos/{owner}/{repo}/labels", "post">; + /** + * @see https://docs.github.com/rest/branches/branches#sync-a-fork-branch-with-the-upstream-repository + */ + "POST /repos/{owner}/{repo}/merge-upstream": Operation<"/repos/{owner}/{repo}/merge-upstream", "post">; + /** + * @see https://docs.github.com/rest/branches/branches#merge-a-branch + */ + "POST /repos/{owner}/{repo}/merges": Operation<"/repos/{owner}/{repo}/merges", "post">; + /** + * @see https://docs.github.com/rest/issues/milestones#create-a-milestone + */ + "POST /repos/{owner}/{repo}/milestones": Operation<"/repos/{owner}/{repo}/milestones", "post">; + /** + * @see https://docs.github.com/rest/pages/pages#create-a-apiname-pages-site + */ + "POST /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "post">; + /** + * @see https://docs.github.com/rest/pages/pages#request-a-apiname-pages-build + */ + "POST /repos/{owner}/{repo}/pages/builds": Operation<"/repos/{owner}/{repo}/pages/builds", "post">; + /** + * @see https://docs.github.com/rest/pages/pages#create-a-github-pages-deployment + */ + "POST /repos/{owner}/{repo}/pages/deployments": Operation<"/repos/{owner}/{repo}/pages/deployments", "post">; + /** + * @see https://docs.github.com/rest/pages/pages#cancel-a-github-pages-deployment + */ + "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel": Operation<"/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel", "post">; + /** + * @see https://docs.github.com/rest/projects/projects#create-a-repository-project + */ + "POST /repos/{owner}/{repo}/projects": Operation<"/repos/{owner}/{repo}/projects", "post">; + /** + * @see https://docs.github.com/rest/pulls/pulls#create-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls": Operation<"/repos/{owner}/{repo}/pulls", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-pull-request-review-comment + */ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-from-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/codespaces", "post">; + /** + * @see https://docs.github.com/rest/pulls/comments#create-a-review-comment-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/pulls/comments#create-a-reply-for-a-review-comment + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies", "post">; + /** + * @see https://docs.github.com/rest/reference/pulls#request-reviewers-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "post">; + /** + * @see https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews", "post">; + /** + * @see https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events", "post">; + /** + * @see https://docs.github.com/rest/releases/releases#create-a-release + */ + "POST /repos/{owner}/{repo}/releases": Operation<"/repos/{owner}/{repo}/releases", "post">; + /** + * @see https://docs.github.com/rest/releases/releases#generate-release-notes-content-for-a-release + */ + "POST /repos/{owner}/{repo}/releases/generate-notes": Operation<"/repos/{owner}/{repo}/releases/generate-notes", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-release + */ + "POST /repos/{owner}/{repo}/releases/{release_id}/reactions": Operation<"/repos/{owner}/{repo}/releases/{release_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/repos/rules#create-a-repository-ruleset + */ + "POST /repos/{owner}/{repo}/rulesets": Operation<"/repos/{owner}/{repo}/rulesets", "post">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#create-a-repository-security-advisory + */ + "POST /repos/{owner}/{repo}/security-advisories": Operation<"/repos/{owner}/{repo}/security-advisories", "post">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#privately-report-a-security-vulnerability + */ + "POST /repos/{owner}/{repo}/security-advisories/reports": Operation<"/repos/{owner}/{repo}/security-advisories/reports", "post">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#request-a-cve-for-a-repository-security-advisory + */ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve": Operation<"/repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve", "post">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#create-a-temporary-private-fork + */ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks": Operation<"/repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks", "post">; + /** + * @see https://docs.github.com/rest/commits/statuses#create-a-commit-status + */ + "POST /repos/{owner}/{repo}/statuses/{sha}": Operation<"/repos/{owner}/{repo}/statuses/{sha}", "post">; + /** + * @see https://docs.github.com/rest/repos/tags#create-a-tag-protection-state-for-a-repository + */ + "POST /repos/{owner}/{repo}/tags/protection": Operation<"/repos/{owner}/{repo}/tags/protection", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#transfer-a-repository + */ + "POST /repos/{owner}/{repo}/transfer": Operation<"/repos/{owner}/{repo}/transfer", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#create-a-repository-using-a-template + */ + "POST /repos/{template_owner}/{template_repo}/generate": Operation<"/repos/{template_owner}/{template_repo}/generate", "post">; + /** + * @see https://docs.github.com/rest/actions/variables#create-an-environment-variable + */ + "POST /repositories/{repository_id}/environments/{environment_name}/variables": Operation<"/repositories/{repository_id}/environments/{environment_name}/variables", "post">; + /** + * @see https://docs.github.com/rest/teams/discussions#create-a-discussion-legacy + */ + "POST /teams/{team_id}/discussions": Operation<"/teams/{team_id}/discussions", "post">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#create-a-discussion-comment-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/comments": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces": Operation<"/user/codespaces", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#export-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces/{codespace_name}/exports": Operation<"/user/codespaces/{codespace_name}/exports", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#create-a-repository-from-an-unpublished-codespace + */ + "POST /user/codespaces/{codespace_name}/publish": Operation<"/user/codespaces/{codespace_name}/publish", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#start-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces/{codespace_name}/start": Operation<"/user/codespaces/{codespace_name}/start", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#stop-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces/{codespace_name}/stop": Operation<"/user/codespaces/{codespace_name}/stop", "post">; + /** + * @see https://docs.github.com/rest/users/emails#add-an-email-address-for-the-authenticated-user + */ + "POST /user/emails": Operation<"/user/emails", "post">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#create-a-gpg-key-for-the-authenticated-user + */ + "POST /user/gpg_keys": Operation<"/user/gpg_keys", "post">; + /** + * @see https://docs.github.com/rest/users/keys#create-a-public-ssh-key-for-the-authenticated-user + */ + "POST /user/keys": Operation<"/user/keys", "post">; + /** + * @see https://docs.github.com/rest/migrations/users#start-a-user-migration + */ + "POST /user/migrations": Operation<"/user/migrations", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-a-package-for-the-authenticated-user + */ + "POST /user/packages/{package_type}/{package_name}/restore{?token}": Operation<"/user/packages/{package_type}/{package_name}/restore", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-a-package-version-for-the-authenticated-user + */ + "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": Operation<"/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", "post">; + /** + * @see https://docs.github.com/rest/projects/projects#create-a-user-project + */ + "POST /user/projects": Operation<"/user/projects", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user + */ + "POST /user/repos": Operation<"/user/repos", "post">; + /** + * @see https://docs.github.com/rest/users/social-accounts#add-social-accounts-for-the-authenticated-user + */ + "POST /user/social_accounts": Operation<"/user/social_accounts", "post">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#create-a-ssh-signing-key-for-the-authenticated-user + */ + "POST /user/ssh_signing_keys": Operation<"/user/ssh_signing_keys", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-a-package-for-a-user + */ + "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}": Operation<"/users/{username}/packages/{package_type}/{package_name}/restore", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-package-version-for-a-user + */ + "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", "post">; + /** + * @see https://docs.github.com/rest/releases/assets#upload-a-release-asset + */ + "POST {origin}/repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}": Operation<"/repos/{owner}/{repo}/releases/{release_id}/assets", "post">; + /** + * @see https://docs.github.com/rest/apps/apps#suspend-an-app-installation + */ + "PUT /app/installations/{installation_id}/suspended": Operation<"/app/installations/{installation_id}/suspended", "put">; + /** + * @see https://docs.github.com/rest/gists/gists#star-a-gist + */ + "PUT /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "put">; + /** + * @see https://docs.github.com/rest/activity/notifications#mark-notifications-as-read + */ + "PUT /notifications": Operation<"/notifications", "put">; + /** + * @see https://docs.github.com/rest/activity/notifications#set-a-thread-subscription + */ + "PUT /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "put">; + /** + * @see https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-an-organization + */ + "PUT /orgs/{org}/actions/oidc/customization/sub": Operation<"/orgs/{org}/actions/oidc/customization/sub", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-github-actions-permissions-for-an-organization + */ + "PUT /orgs/{org}/actions/permissions": Operation<"/orgs/{org}/actions/permissions", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-selected-repositories-enabled-for-github-actions-in-an-organization + */ + "PUT /orgs/{org}/actions/permissions/repositories": Operation<"/orgs/{org}/actions/permissions/repositories", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#enable-a-selected-repository-for-github-actions-in-an-organization + */ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}": Operation<"/orgs/{org}/actions/permissions/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-allowed-actions-and-reusable-workflows-for-an-organization + */ + "PUT /orgs/{org}/actions/permissions/selected-actions": Operation<"/orgs/{org}/actions/permissions/selected-actions", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-default-workflow-permissions-for-an-organization + */ + "PUT /orgs/{org}/actions/permissions/workflow": Operation<"/orgs/{org}/actions/permissions/workflow", "put">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#set-custom-labels-for-a-self-hosted-runner-for-an-organization + */ + "PUT /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/actions/secrets#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/actions/secrets#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/actions/variables#set-selected-repositories-for-an-organization-variable + */ + "PUT /orgs/{org}/actions/variables/{name}/repositories": Operation<"/orgs/{org}/actions/variables/{name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/actions/variables#add-selected-repository-to-an-organization-variable + */ + "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/variables/{name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/orgs/blocking#block-a-user-from-an-organization + */ + "PUT /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "put">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces + */ + "PUT /orgs/{org}/codespaces/access": Operation<"/orgs/{org}/codespaces/access", "put">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret + */ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret + */ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/interactions/orgs#set-interaction-restrictions-for-an-organization + */ + "PUT /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/orgs/members#set-organization-membership-for-a-user + */ + "PUT /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-team + */ + "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}": Operation<"/orgs/{org}/organization-roles/teams/{team_slug}/{role_id}", "put">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-user + */ + "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}": Operation<"/orgs/{org}/organization-roles/users/{username}/{role_id}", "put">; + /** + * @see https://docs.github.com/rest/orgs/outside-collaborators#convert-an-organization-member-to-outside-collaborator + */ + "PUT /orgs/{org}/outside_collaborators/{username}": Operation<"/orgs/{org}/outside_collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#create-or-update-a-custom-property-for-an-organization + */ + "PUT /orgs/{org}/properties/schema/{custom_property_name}": Operation<"/orgs/{org}/properties/schema/{custom_property_name}", "put">; + /** + * @see https://docs.github.com/rest/orgs/members#set-public-organization-membership-for-the-authenticated-user + */ + "PUT /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "put">; + /** + * @see https://docs.github.com/rest/orgs/rules#update-an-organization-repository-ruleset + */ + "PUT /orgs/{org}/rulesets/{ruleset_id}": Operation<"/orgs/{org}/rulesets/{ruleset_id}", "put">; + /** + * @see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team + */ + "PUT /orgs/{org}/security-managers/teams/{team_slug}": Operation<"/orgs/{org}/security-managers/teams/{team_slug}", "put">; + /** + * @see https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user + */ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/rest/teams/teams#add-or-update-team-project-permissions + */ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "put">; + /** + * @see https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions + */ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "put">; + /** + * @see https://docs.github.com/rest/projects/collaborators#add-project-collaborator + */ + "PUT /projects/{project_id}/collaborators/{username}": Operation<"/projects/{project_id}/collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub": Operation<"/repos/{owner}/{repo}/actions/oidc/customization/sub", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-github-actions-permissions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions": Operation<"/repos/{owner}/{repo}/actions/permissions", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-the-level-of-access-for-workflows-outside-of-the-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions/access": Operation<"/repos/{owner}/{repo}/actions/permissions/access", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-allowed-actions-and-reusable-workflows-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions": Operation<"/repos/{owner}/{repo}/actions/permissions/selected-actions", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-default-workflow-permissions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions/workflow": Operation<"/repos/{owner}/{repo}/actions/permissions/workflow", "put">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#set-custom-labels-for-a-self-hosted-runner-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "put">; + /** + * @see https://docs.github.com/rest/actions/secrets#create-or-update-a-repository-secret + */ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/actions/workflows#disable-a-workflow + */ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable", "put">; + /** + * @see https://docs.github.com/rest/actions/workflows#enable-a-workflow + */ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable", "put">; + /** + * @see https://docs.github.com/rest/repos/repos#enable-automated-security-fixes + */ + "PUT /repos/{owner}/{repo}/automated-security-fixes": Operation<"/repos/{owner}/{repo}/automated-security-fixes", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#update-branch-protection + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-status-check-contexts + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-app-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-team-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-user-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "put">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#create-or-update-a-repository-secret + */ + "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/codespaces/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#add-a-repository-collaborator + */ + "PUT /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/repos/contents#create-or-update-file-contents + */ + "PUT /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "put">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#create-or-update-a-repository-secret + */ + "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/deployments/environments#create-or-update-an-environment + */ + "PUT /repos/{owner}/{repo}/environments/{environment_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}", "put">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#update-a-deployment-branch-policy + */ + "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}", "put">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#start-an-import + */ + "PUT /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "put">; + /** + * @see https://docs.github.com/rest/interactions/repos#set-interaction-restrictions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/issues/labels#set-labels-for-an-issue + */ + "PUT /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "put">; + /** + * @see https://docs.github.com/rest/issues/issues#lock-an-issue + */ + "PUT /repos/{owner}/{repo}/issues/{issue_number}/lock": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/lock", "put">; + /** + * @see https://docs.github.com/rest/activity/notifications#mark-repository-notifications-as-read + */ + "PUT /repos/{owner}/{repo}/notifications": Operation<"/repos/{owner}/{repo}/notifications", "put">; + /** + * @see https://docs.github.com/rest/pages/pages#update-information-about-a-apiname-pages-site + */ + "PUT /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "put">; + /** + * @see https://docs.github.com/rest/repos/repos#enable-private-vulnerability-reporting-for-a-repository + */ + "PUT /repos/{owner}/{repo}/private-vulnerability-reporting": Operation<"/repos/{owner}/{repo}/private-vulnerability-reporting", "put">; + /** + * @see https://docs.github.com/rest/pulls/pulls#merge-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/merge", "put">; + /** + * @see https://docs.github.com/rest/pulls/reviews#update-a-review-for-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "put">; + /** + * @see https://docs.github.com/rest/pulls/reviews#dismiss-a-review-for-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals", "put">; + /** + * @see https://docs.github.com/rest/pulls/pulls#update-a-pull-request-branch + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/update-branch", "put">; + /** + * @see https://docs.github.com/rest/repos/rules#update-a-repository-ruleset + */ + "PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}": Operation<"/repos/{owner}/{repo}/rulesets/{ruleset_id}", "put">; + /** + * @see https://docs.github.com/rest/activity/watching#set-a-repository-subscription + */ + "PUT /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "put">; + /** + * @see https://docs.github.com/rest/repos/repos#replace-all-repository-topics + */ + "PUT /repos/{owner}/{repo}/topics": Operation<"/repos/{owner}/{repo}/topics", "put">; + /** + * @see https://docs.github.com/rest/repos/repos#enable-vulnerability-alerts + */ + "PUT /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "put">; + /** + * @see https://docs.github.com/rest/actions/secrets#create-or-update-an-environment-secret + */ + "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/teams/members#add-team-member-legacy + */ + "PUT /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "put">; + /** + * @see https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user-legacy + */ + "PUT /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/rest/teams/teams#add-or-update-team-project-permissions-legacy + */ + "PUT /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "put">; + /** + * @see https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions-legacy + */ + "PUT /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "put">; + /** + * @see https://docs.github.com/rest/users/blocking#block-a-user + */ + "PUT /user/blocks/{username}": Operation<"/user/blocks/{username}", "put">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#create-or-update-a-secret-for-the-authenticated-user + */ + "PUT /user/codespaces/secrets/{secret_name}": Operation<"/user/codespaces/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#set-selected-repositories-for-a-user-secret + */ + "PUT /user/codespaces/secrets/{secret_name}/repositories": Operation<"/user/codespaces/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#add-a-selected-repository-to-a-user-secret + */ + "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/user/codespaces/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/users/followers#follow-a-user + */ + "PUT /user/following/{username}": Operation<"/user/following/{username}", "put">; + /** + * @see https://docs.github.com/rest/apps/installations#add-a-repository-to-an-app-installation + */ + "PUT /user/installations/{installation_id}/repositories/{repository_id}": Operation<"/user/installations/{installation_id}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/interactions/user#set-interaction-restrictions-for-your-public-repositories + */ + "PUT /user/interaction-limits": Operation<"/user/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/activity/starring#star-a-repository-for-the-authenticated-user + */ + "PUT /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "put">; +} +export {}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/index.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/index.d.ts new file mode 100644 index 000000000..004ae9b22 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/dist-types/index.d.ts @@ -0,0 +1,21 @@ +export * from "./AuthInterface"; +export * from "./EndpointDefaults"; +export * from "./EndpointInterface"; +export * from "./EndpointOptions"; +export * from "./Fetch"; +export * from "./OctokitResponse"; +export * from "./RequestError"; +export * from "./RequestHeaders"; +export * from "./RequestInterface"; +export * from "./RequestMethod"; +export * from "./RequestOptions"; +export * from "./RequestParameters"; +export * from "./RequestRequestOptions"; +export * from "./ResponseHeaders"; +export * from "./Route"; +export * from "./Signal"; +export * from "./StrategyInterface"; +export * from "./Url"; +export * from "./VERSION"; +export * from "./GetResponseTypeFromEndpointMethod"; +export * from "./generated/Endpoints"; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/package.json b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/package.json new file mode 100644 index 000000000..99959575e --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types/package.json @@ -0,0 +1,46 @@ +{ + "name": "@octokit/types", + "version": "12.6.0", + "publishConfig": { + "access": "public" + }, + "description": "Shared TypeScript definitions for Octokit projects", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + }, + "repository": "github:octokit/types.ts", + "keywords": [ + "github", + "api", + "sdk", + "toolkit", + "typescript" + ], + "author": "Gregor Martynus (https://twitter.com/gr2m)", + "license": "MIT", + "devDependencies": { + "@octokit/tsconfig": "^2.0.0", + "@types/node": ">= 8", + "github-openapi-graphql-query": "^4.0.0", + "handlebars": "^4.7.6", + "json-schema-to-typescript": "^13.0.0", + "lodash.set": "^4.3.2", + "npm-run-all2": "^6.0.0", + "pascal-case": "^3.1.1", + "prettier": "^3.0.0", + "semantic-release": "^23.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "sort-keys": "^5.0.0", + "string-to-jsdoc-comment": "^1.0.0", + "typedoc": "^0.25.0", + "typescript": "^5.0.0" + }, + "octokit": { + "openapi-version": "14.0.0" + }, + "files": [ + "dist-types/**" + ], + "types": "dist-types/index.d.ts", + "sideEffects": false +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/package.json b/node_modules/@octokit/plugin-rest-endpoint-methods/package.json new file mode 100644 index 000000000..ec873412b --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/package.json @@ -0,0 +1,60 @@ +{ + "name": "@octokit/plugin-rest-endpoint-methods", + "version": "10.4.1", + "description": "Octokit plugin adding one method for all of api.github.com REST API endpoints", + "repository": "github:octokit/plugin-rest-endpoint-methods.js", + "keywords": [ + "github", + "api", + "sdk", + "toolkit" + ], + "author": "Gregor Martynus (https://twitter.com/gr2m)", + "license": "MIT", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "devDependencies": { + "@octokit/core": "^5.0.0", + "@octokit/tsconfig": "^2.0.0", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^29.0.0", + "@types/node": "^20.0.0", + "@types/sinon": "^17.0.0", + "esbuild": "^0.20.0", + "fetch-mock": "npm:@gr2m/fetch-mock@^9.11.0-pull-request-644.1", + "github-openapi-graphql-query": "^4.3.1", + "glob": "^10.2.6", + "jest": "^29.0.0", + "lodash.camelcase": "^4.3.0", + "lodash.set": "^4.3.2", + "lodash.upperfirst": "^4.3.1", + "mustache": "^4.0.0", + "npm-run-all2": "^6.0.0", + "prettier": "3.2.5", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "sinon": "^17.0.0", + "sort-keys": "^5.0.0", + "string-to-jsdoc-comment": "^1.0.0", + "ts-jest": "^29.0.0", + "typescript": "^5.0.0" + }, + "peerDependencies": { + "@octokit/core": "5" + }, + "publishConfig": { + "access": "public" + }, + "engines": { + "node": ">= 18" + }, + "files": [ + "dist-*/**", + "bin/**" + ], + "main": "dist-node/index.js", + "browser": "dist-web/index.js", + "types": "dist-types/index.d.ts", + "module": "dist-src/index.js", + "sideEffects": false +} diff --git a/node_modules/@octokit/request-error/LICENSE b/node_modules/@octokit/request-error/LICENSE new file mode 100644 index 000000000..ef2c18ee5 --- /dev/null +++ b/node_modules/@octokit/request-error/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2019 Octokit contributors + +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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. diff --git a/node_modules/@octokit/request-error/README.md b/node_modules/@octokit/request-error/README.md new file mode 100644 index 000000000..cdd369557 --- /dev/null +++ b/node_modules/@octokit/request-error/README.md @@ -0,0 +1,88 @@ +# http-error.js + +> Error class for Octokit request errors + +[![@latest](https://img.shields.io/npm/v/@octokit/request-error.svg)](https://www.npmjs.com/package/@octokit/request-error) +[![Build Status](https://github.com/octokit/request-error.js/workflows/Test/badge.svg)](https://github.com/octokit/request-error.js/actions?query=workflow%3ATest) + +## Usage + + + + + + +
+Browsers + +Load @octokit/request-error directly from esm.sh + +```html + +``` + +
+Node + + +Install with npm install @octokit/request-error + +```js +const { RequestError } = require("@octokit/request-error"); +// or: import { RequestError } from "@octokit/request-error"; +``` + +
+ +```js +const error = new RequestError("Oops", 500, { + request: { + method: "POST", + url: "https://api.github.com/foo", + body: { + bar: "baz", + }, + headers: { + authorization: "token secret123", + }, + }, + response: { + status: 500, + url: "https://api.github.com/foo", + headers: { + "x-github-request-id": "1:2:3:4", + }, + data: { + foo: "bar", + }, + }, +}); + +error.message; // Oops +error.status; // 500 +error.request; // { method, url, headers, body } +error.response; // { url, status, headers, data } +``` + +### Usage with Octokit + +```js +try { + // your code here that sends at least one Octokit request + await octokit.request("GET /"); +} catch (error) { + // Octokit errors always have a `error.status` property which is the http response code + if (error.status) { + // handle Octokit error + } else { + // handle all other errors + throw error; + } +} +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/node_modules/@octokit/request-error/dist-node/index.js b/node_modules/@octokit/request-error/dist-node/index.js new file mode 100644 index 000000000..ad4bc5fbb --- /dev/null +++ b/node_modules/@octokit/request-error/dist-node/index.js @@ -0,0 +1,92 @@ +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + RequestError: () => RequestError +}); +module.exports = __toCommonJS(dist_src_exports); +var import_deprecation = require("deprecation"); +var import_once = __toESM(require("once")); +var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); +var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); +var RequestError = class extends Error { + constructor(message, statusCode, options) { + super(message); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = "HttpError"; + this.status = statusCode; + let headers; + if ("headers" in options && typeof options.headers !== "undefined") { + headers = options.headers; + } + if ("response" in options) { + this.response = options.response; + headers = options.response.headers; + } + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace( + / .*$/, + " [REDACTED]" + ) + }); + } + requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + Object.defineProperty(this, "code", { + get() { + logOnceCode( + new import_deprecation.Deprecation( + "[@octokit/request-error] `error.code` is deprecated, use `error.status`." + ) + ); + return statusCode; + } + }); + Object.defineProperty(this, "headers", { + get() { + logOnceHeaders( + new import_deprecation.Deprecation( + "[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`." + ) + ); + return headers || {}; + } + }); + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + RequestError +}); diff --git a/node_modules/@octokit/request-error/dist-node/index.js.map b/node_modules/@octokit/request-error/dist-node/index.js.map new file mode 100644 index 000000000..3b7e6fe1b --- /dev/null +++ b/node_modules/@octokit/request-error/dist-node/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/index.js"], + "sourcesContent": ["import { Deprecation } from \"deprecation\";\nimport once from \"once\";\nconst logOnceCode = once((deprecation) => console.warn(deprecation));\nconst logOnceHeaders = once((deprecation) => console.warn(deprecation));\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n }\n const requestCopy = Object.assign({}, options.request);\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(\n / .*$/,\n \" [REDACTED]\"\n )\n });\n }\n requestCopy.url = requestCopy.url.replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\").replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy;\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(\n new Deprecation(\n \"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"\n )\n );\n return statusCode;\n }\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(\n new Deprecation(\n \"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"\n )\n );\n return headers || {};\n }\n });\n }\n}\nexport {\n RequestError\n};\n"], + "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA4B;AAC5B,kBAAiB;AACjB,IAAM,kBAAc,YAAAA,SAAK,CAAC,gBAAgB,QAAQ,KAAK,WAAW,CAAC;AACnE,IAAM,qBAAiB,YAAAA,SAAK,CAAC,gBAAgB,QAAQ,KAAK,WAAW,CAAC;AACtE,IAAM,eAAN,cAA2B,MAAM;AAAA,EAC/B,YAAY,SAAS,YAAY,SAAS;AACxC,UAAM,OAAO;AACb,QAAI,MAAM,mBAAmB;AAC3B,YAAM,kBAAkB,MAAM,KAAK,WAAW;AAAA,IAChD;AACA,SAAK,OAAO;AACZ,SAAK,SAAS;AACd,QAAI;AACJ,QAAI,aAAa,WAAW,OAAO,QAAQ,YAAY,aAAa;AAClE,gBAAU,QAAQ;AAAA,IACpB;AACA,QAAI,cAAc,SAAS;AACzB,WAAK,WAAW,QAAQ;AACxB,gBAAU,QAAQ,SAAS;AAAA,IAC7B;AACA,UAAM,cAAc,OAAO,OAAO,CAAC,GAAG,QAAQ,OAAO;AACrD,QAAI,QAAQ,QAAQ,QAAQ,eAAe;AACzC,kBAAY,UAAU,OAAO,OAAO,CAAC,GAAG,QAAQ,QAAQ,SAAS;AAAA,QAC/D,eAAe,QAAQ,QAAQ,QAAQ,cAAc;AAAA,UACnD;AAAA,UACA;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AACA,gBAAY,MAAM,YAAY,IAAI,QAAQ,wBAAwB,0BAA0B,EAAE,QAAQ,uBAAuB,yBAAyB;AACtJ,SAAK,UAAU;AACf,WAAO,eAAe,MAAM,QAAQ;AAAA,MAClC,MAAM;AACJ;AAAA,UACE,IAAI;AAAA,YACF;AAAA,UACF;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AACD,WAAO,eAAe,MAAM,WAAW;AAAA,MACrC,MAAM;AACJ;AAAA,UACE,IAAI;AAAA,YACF;AAAA,UACF;AAAA,QACF;AACA,eAAO,WAAW,CAAC;AAAA,MACrB;AAAA,IACF,CAAC;AAAA,EACH;AACF;", + "names": ["once"] +} diff --git a/node_modules/@octokit/request-error/dist-src/index.js b/node_modules/@octokit/request-error/dist-src/index.js new file mode 100644 index 000000000..36f10b5b6 --- /dev/null +++ b/node_modules/@octokit/request-error/dist-src/index.js @@ -0,0 +1,56 @@ +import { Deprecation } from "deprecation"; +import once from "once"; +const logOnceCode = once((deprecation) => console.warn(deprecation)); +const logOnceHeaders = once((deprecation) => console.warn(deprecation)); +class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = "HttpError"; + this.status = statusCode; + let headers; + if ("headers" in options && typeof options.headers !== "undefined") { + headers = options.headers; + } + if ("response" in options) { + this.response = options.response; + headers = options.response.headers; + } + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace( + / .*$/, + " [REDACTED]" + ) + }); + } + requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + Object.defineProperty(this, "code", { + get() { + logOnceCode( + new Deprecation( + "[@octokit/request-error] `error.code` is deprecated, use `error.status`." + ) + ); + return statusCode; + } + }); + Object.defineProperty(this, "headers", { + get() { + logOnceHeaders( + new Deprecation( + "[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`." + ) + ); + return headers || {}; + } + }); + } +} +export { + RequestError +}; diff --git a/node_modules/@octokit/request-error/dist-types/index.d.ts b/node_modules/@octokit/request-error/dist-types/index.d.ts new file mode 100644 index 000000000..b91d08a64 --- /dev/null +++ b/node_modules/@octokit/request-error/dist-types/index.d.ts @@ -0,0 +1,33 @@ +import type { RequestOptions, ResponseHeaders, OctokitResponse } from "@octokit/types"; +import type { RequestErrorOptions } from "./types"; +/** + * Error with extra properties to help with debugging + */ +export declare class RequestError extends Error { + name: "HttpError"; + /** + * http status code + */ + status: number; + /** + * http status code + * + * @deprecated `error.code` is deprecated in favor of `error.status` + */ + code: number; + /** + * Request options that lead to the error. + */ + request: RequestOptions; + /** + * error response headers + * + * @deprecated `error.headers` is deprecated in favor of `error.response.headers` + */ + headers: ResponseHeaders; + /** + * Response object if a response was received + */ + response?: OctokitResponse; + constructor(message: string, statusCode: number, options: RequestErrorOptions); +} diff --git a/node_modules/@octokit/request-error/dist-types/types.d.ts b/node_modules/@octokit/request-error/dist-types/types.d.ts new file mode 100644 index 000000000..4d084aa18 --- /dev/null +++ b/node_modules/@octokit/request-error/dist-types/types.d.ts @@ -0,0 +1,9 @@ +import type { RequestOptions, ResponseHeaders, OctokitResponse } from "@octokit/types"; +export type RequestErrorOptions = { + /** @deprecated set `response` instead */ + headers?: ResponseHeaders; + request: RequestOptions; +} | { + response: OctokitResponse; + request: RequestOptions; +}; diff --git a/node_modules/@octokit/request-error/dist-web/index.js b/node_modules/@octokit/request-error/dist-web/index.js new file mode 100644 index 000000000..8ddf1322d --- /dev/null +++ b/node_modules/@octokit/request-error/dist-web/index.js @@ -0,0 +1,57 @@ +// pkg/dist-src/index.js +import { Deprecation } from "deprecation"; +import once from "once"; +var logOnceCode = once((deprecation) => console.warn(deprecation)); +var logOnceHeaders = once((deprecation) => console.warn(deprecation)); +var RequestError = class extends Error { + constructor(message, statusCode, options) { + super(message); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = "HttpError"; + this.status = statusCode; + let headers; + if ("headers" in options && typeof options.headers !== "undefined") { + headers = options.headers; + } + if ("response" in options) { + this.response = options.response; + headers = options.response.headers; + } + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace( + / .*$/, + " [REDACTED]" + ) + }); + } + requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + Object.defineProperty(this, "code", { + get() { + logOnceCode( + new Deprecation( + "[@octokit/request-error] `error.code` is deprecated, use `error.status`." + ) + ); + return statusCode; + } + }); + Object.defineProperty(this, "headers", { + get() { + logOnceHeaders( + new Deprecation( + "[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`." + ) + ); + return headers || {}; + } + }); + } +}; +export { + RequestError +}; diff --git a/node_modules/@octokit/request-error/dist-web/index.js.map b/node_modules/@octokit/request-error/dist-web/index.js.map new file mode 100644 index 000000000..b6d41bff3 --- /dev/null +++ b/node_modules/@octokit/request-error/dist-web/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/index.js"], + "sourcesContent": ["import { Deprecation } from \"deprecation\";\nimport once from \"once\";\nconst logOnceCode = once((deprecation) => console.warn(deprecation));\nconst logOnceHeaders = once((deprecation) => console.warn(deprecation));\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n }\n const requestCopy = Object.assign({}, options.request);\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(\n / .*$/,\n \" [REDACTED]\"\n )\n });\n }\n requestCopy.url = requestCopy.url.replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\").replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy;\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(\n new Deprecation(\n \"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"\n )\n );\n return statusCode;\n }\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(\n new Deprecation(\n \"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"\n )\n );\n return headers || {};\n }\n });\n }\n}\nexport {\n RequestError\n};\n"], + "mappings": ";AAAA,SAAS,mBAAmB;AAC5B,OAAO,UAAU;AACjB,IAAM,cAAc,KAAK,CAAC,gBAAgB,QAAQ,KAAK,WAAW,CAAC;AACnE,IAAM,iBAAiB,KAAK,CAAC,gBAAgB,QAAQ,KAAK,WAAW,CAAC;AACtE,IAAM,eAAN,cAA2B,MAAM;AAAA,EAC/B,YAAY,SAAS,YAAY,SAAS;AACxC,UAAM,OAAO;AACb,QAAI,MAAM,mBAAmB;AAC3B,YAAM,kBAAkB,MAAM,KAAK,WAAW;AAAA,IAChD;AACA,SAAK,OAAO;AACZ,SAAK,SAAS;AACd,QAAI;AACJ,QAAI,aAAa,WAAW,OAAO,QAAQ,YAAY,aAAa;AAClE,gBAAU,QAAQ;AAAA,IACpB;AACA,QAAI,cAAc,SAAS;AACzB,WAAK,WAAW,QAAQ;AACxB,gBAAU,QAAQ,SAAS;AAAA,IAC7B;AACA,UAAM,cAAc,OAAO,OAAO,CAAC,GAAG,QAAQ,OAAO;AACrD,QAAI,QAAQ,QAAQ,QAAQ,eAAe;AACzC,kBAAY,UAAU,OAAO,OAAO,CAAC,GAAG,QAAQ,QAAQ,SAAS;AAAA,QAC/D,eAAe,QAAQ,QAAQ,QAAQ,cAAc;AAAA,UACnD;AAAA,UACA;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AACA,gBAAY,MAAM,YAAY,IAAI,QAAQ,wBAAwB,0BAA0B,EAAE,QAAQ,uBAAuB,yBAAyB;AACtJ,SAAK,UAAU;AACf,WAAO,eAAe,MAAM,QAAQ;AAAA,MAClC,MAAM;AACJ;AAAA,UACE,IAAI;AAAA,YACF;AAAA,UACF;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AACD,WAAO,eAAe,MAAM,WAAW;AAAA,MACrC,MAAM;AACJ;AAAA,UACE,IAAI;AAAA,YACF;AAAA,UACF;AAAA,QACF;AACA,eAAO,WAAW,CAAC;AAAA,MACrB;AAAA,IACF,CAAC;AAAA,EACH;AACF;", + "names": [] +} diff --git a/node_modules/@octokit/request-error/package.json b/node_modules/@octokit/request-error/package.json new file mode 100644 index 000000000..42dd8ed5e --- /dev/null +++ b/node_modules/@octokit/request-error/package.json @@ -0,0 +1,48 @@ +{ + "name": "@octokit/request-error", + "version": "5.1.0", + "publishConfig": { + "access": "public", + "provenance": true + }, + "description": "Error class for Octokit request errors", + "repository": "github:octokit/request-error.js", + "keywords": [ + "octokit", + "github", + "api", + "error" + ], + "author": "Gregor Martynus (https://github.com/gr2m)", + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "devDependencies": { + "@octokit/tsconfig": "^2.0.0", + "@types/jest": "^29.0.0", + "@types/node": "^18.0.0", + "@types/once": "^1.4.0", + "esbuild": "^0.19.0", + "glob": "^10.2.6", + "jest": "^29.0.0", + "prettier": "3.0.3", + "ts-jest": "^29.0.0", + "typescript": "^5.0.0" + }, + "engines": { + "node": ">= 18" + }, + "files": [ + "dist-*/**", + "bin/**" + ], + "main": "dist-node/index.js", + "browser": "dist-web/index.js", + "types": "dist-types/index.d.ts", + "module": "dist-src/index.js", + "sideEffects": false, + "unpkg": "dist-web/index.js" +} diff --git a/node_modules/@octokit/request/LICENSE b/node_modules/@octokit/request/LICENSE new file mode 100644 index 000000000..af5366d0d --- /dev/null +++ b/node_modules/@octokit/request/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Octokit contributors + +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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. diff --git a/node_modules/@octokit/request/README.md b/node_modules/@octokit/request/README.md new file mode 100644 index 000000000..6f80026f2 --- /dev/null +++ b/node_modules/@octokit/request/README.md @@ -0,0 +1,579 @@ +# request.js + +> Send parameterized requests to GitHub’s APIs with sensible defaults in browsers and Node + +[![@latest](https://img.shields.io/npm/v/@octokit/request.svg)](https://www.npmjs.com/package/@octokit/request) +[![Build Status](https://github.com/octokit/request.js/workflows/Test/badge.svg)](https://github.com/octokit/request.js/actions?query=workflow%3ATest+branch%3Amain) + +`@octokit/request` is a request library for browsers & node that makes it easier +to interact with [GitHub’s REST API](https://developer.github.com/v3/) and +[GitHub’s GraphQL API](https://developer.github.com/v4/guides/forming-calls/#the-graphql-endpoint). + +It uses [`@octokit/endpoint`](https://github.com/octokit/endpoint.js) to parse +the passed options and sends the request using [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). You can pass a custom `fetch` function using the `options.request.fetch` option, see below. + + + + + +- [request.js](#requestjs) + - [Features](#features) + - [Usage](#usage) + - [REST API example](#rest-api-example) + - [GraphQL example](#graphql-example) + - [Alternative: pass `method` \& `url` as part of options](#alternative-pass-method--url-as-part-of-options) + - [Authentication](#authentication) + - [request()](#request) + - [`request.defaults()`](#requestdefaults) + - [`request.endpoint`](#requestendpoint) + - [Special cases](#special-cases) + - [The `data` parameter – set request body directly](#the-data-parameter--set-request-body-directly) + - [Set parameters for both the URL/query and the request body](#set-parameters-for-both-the-urlquery-and-the-request-body) + - [Set a custom Agent to your requests](#set-a-custom-agent-to-your-requests) + - [LICENSE](#license) + + + +## Features + +🤩 1:1 mapping of REST API endpoint documentation, e.g. [Add labels to an issue](https://developer.github.com/v3/issues/labels/#add-labels-to-an-issue) becomes + +```js +request("POST /repos/{owner}/{repo}/issues/{number}/labels", { + mediaType: { + previews: ["symmetra"], + }, + owner: "octokit", + repo: "request.js", + number: 1, + labels: ["🐛 bug"], +}); +``` + +👶 [Small bundle size](https://bundlephobia.com/result?p=@octokit/request@5.0.3) (\<4kb minified + gzipped) + +😎 [Authenticate](#authentication) with any of [GitHubs Authentication Strategies](https://github.com/octokit/auth.js). + +👍 Sensible defaults + +- `baseUrl`: `https://api.github.com` +- `headers.accept`: `application/vnd.github.v3+json` +- `headers['user-agent']`: `octokit-request.js/ `, e.g. `octokit-request.js/1.2.3 Node.js/10.15.0 (macOS Mojave; x64)` + +👌 Simple to test: mock requests by passing a custom fetch method. + +🧐 Simple to debug: Sets `error.request` to request options causing the error (with redacted credentials). + +## Usage + + + + + + +
+Browsers + +Load @octokit/request directly from esm.sh + +```html + +``` + +
+Node + + +Install with npm install @octokit/request + +```js +const { request } = require("@octokit/request"); +// or: import { request } from "@octokit/request"; +``` + +
+ +### REST API example + +```js +// Following GitHub docs formatting: +// https://developer.github.com/v3/repos/#list-organization-repositories +const result = await request("GET /orgs/{org}/repos", { + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, + org: "octokit", + type: "private", +}); + +console.log(`${result.data.length} repos found.`); +``` + +### GraphQL example + +For GraphQL request we recommend using [`@octokit/graphql`](https://github.com/octokit/graphql.js#readme) + +```js +const result = await request("POST /graphql", { + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, + query: `query ($login: String!) { + organization(login: $login) { + repositories(privacy: PRIVATE) { + totalCount + } + } + }`, + variables: { + login: "octokit", + }, +}); +``` + +### Alternative: pass `method` & `url` as part of options + +Alternatively, pass in a method and a url + +```js +const result = await request({ + method: "GET", + url: "/orgs/{org}/repos", + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, + org: "octokit", + type: "private", +}); +``` + +## Authentication + +The simplest way to authenticate a request is to set the `Authorization` header directly, e.g. to a [personal access token](https://github.com/settings/tokens/). + +```js +const requestWithAuth = request.defaults({ + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, +}); +const result = await requestWithAuth("GET /user"); +``` + +For more complex authentication strategies such as GitHub Apps or Basic, we recommend the according authentication library exported by [`@octokit/auth`](https://github.com/octokit/auth.js). + +```js +const { createAppAuth } = require("@octokit/auth-app"); +const auth = createAppAuth({ + appId: process.env.APP_ID, + privateKey: process.env.PRIVATE_KEY, + installationId: 123, +}); +const requestWithAuth = request.defaults({ + request: { + hook: auth.hook, + }, + mediaType: { + previews: ["machine-man"], + }, +}); + +const { data: app } = await requestWithAuth("GET /app"); +const { data: app } = await requestWithAuth( + "POST /repos/{owner}/{repo}/issues", + { + owner: "octocat", + repo: "hello-world", + title: "Hello from the engine room", + }, +); +``` + +## request() + +`request(route, options)` or `request(options)`. + +**Options** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ route + + String + + **Required**. If route is set it has to be a string consisting of the request method and URL, e.g. GET /orgs/{org} +
+ options.baseUrl + + String + + The base URL that route or url will be prefixed with, if they use relative paths. Defaults to https://api.github.com. +
+ options.headers + + Object + + Custom headers. Passed headers are merged with defaults:
+ headers['user-agent'] defaults to octokit-rest.js/1.2.3 (where 1.2.3 is the released version).
+ headers['accept'] defaults to application/vnd.github.v3+json.
Use options.mediaType.{format,previews} to request API previews and custom media types. +
+ options.method + + String + + Any supported http verb, case-insensitive. Defaults to Get. +
+ options.mediaType.format + + String + + Media type param, such as `raw`, `html`, or `full`. See Media Types. +
+ options.mediaType.previews + + Array of strings + + Name of previews, such as `mercy`, `symmetra`, or `scarlet-witch`. See GraphQL Schema Previews. + Note that these only apply to GraphQL requests and have no effect on REST routes. +
+ options.url + + String + + **Required**. A path or full URL which may contain :variable or {variable} placeholders, + e.g. /orgs/{org}/repos. The url is parsed using url-template. +
+ options.data + + Any + + Set request body directly instead of setting it to JSON based on additional parameters. See "The `data` parameter" below. +
+ options.request.fetch + + Function + + Custom replacement for fetch. Useful for testing or request hooks. +
+ options.request.hook + + Function + + Function with the signature hook(request, endpointOptions), where endpointOptions are the parsed options as returned by endpoint.merge(), and request is request(). This option works great in conjunction with before-after-hook. +
+ options.request.signal + + new AbortController().signal + + Use an AbortController instance to cancel a request. In node you can only cancel streamed requests. +
+ options.request.log + + object + + Used for internal logging. Defaults to console. +
+ options.request.parseSuccessResponseBody + + boolean + + If set to false the returned `response` will be passed through from `fetch`. This is useful to stream response.body when downloading files from the GitHub API. +
+ +All other options except `options.request.*` will be passed depending on the `method` and `url` options. + +1. If the option key is a placeholder in the `url`, it will be used as replacement. For example, if the passed options are `{url: '/orgs/{org}/repos', org: 'foo'}` the returned `options.url` is `https://api.github.com/orgs/foo/repos` +2. If the `method` is `GET` or `HEAD`, the option is passed as query parameter +3. Otherwise the parameter is passed in the request body as JSON key. + +**Result** + +`request` returns a promise. If the request was successful, the promise resolves with an object containing 4 keys: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ key + + type + + description +
statusIntegerResponse status status
urlStringURL of response. If a request results in redirects, this is the final URL. You can send a HEAD request to retrieve it without loading the full response body.
headersObjectAll response headers
dataAnyThe response body as returned from server. If the response is JSON then it will be parsed into an object
+ +If an error occurs, the promise is rejected with an `error` object containing 3 keys to help with debugging: + +- `error.status` The http response status code +- `error.request` The request options such as `method`, `url` and `data` +- `error.response` The http response object with `url`, `headers`, and `data` + +If the error is due to an `AbortSignal` being used, the resulting `AbortError` is bubbled up to the caller. + +## `request.defaults()` + +Override or set default options. Example: + +```js +const myrequest = require("@octokit/request").defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + authorization: `token 0000000000000000000000000000000000000001`, + }, + org: "my-project", + per_page: 100, +}); + +myrequest(`GET /orgs/{org}/repos`); +``` + +You can call `.defaults()` again on the returned method, the defaults will cascade. + +```js +const myProjectRequest = request.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + }, + org: "my-project", +}); +const myProjectRequestWithAuth = myProjectRequest.defaults({ + headers: { + authorization: `token 0000000000000000000000000000000000000001`, + }, +}); +``` + +`myProjectRequest` now defaults the `baseUrl`, `headers['user-agent']`, +`org` and `headers['authorization']` on top of `headers['accept']` that is set +by the global default. + +## `request.endpoint` + +See https://github.com/octokit/endpoint.js. Example + +```js +const options = request.endpoint("GET /orgs/{org}/repos", { + org: "my-project", + type: "private", +}); + +// { +// method: 'GET', +// url: 'https://api.github.com/orgs/my-project/repos?type=private', +// headers: { +// accept: 'application/vnd.github.v3+json', +// authorization: 'token 0000000000000000000000000000000000000001', +// 'user-agent': 'octokit/endpoint.js v1.2.3' +// } +// } +``` + +All of the [`@octokit/endpoint`](https://github.com/octokit/endpoint.js) API can be used: + +- [`octokitRequest.endpoint()`](#endpoint) +- [`octokitRequest.endpoint.defaults()`](#endpointdefaults) +- [`octokitRequest.endpoint.merge()`](#endpointdefaults) +- [`octokitRequest.endpoint.parse()`](#endpointmerge) + +## Special cases + + + +### The `data` parameter – set request body directly + +Some endpoints such as [Render a Markdown document in raw mode](https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode) don’t have parameters that are sent as request body keys, instead the request body needs to be set directly. In these cases, set the `data` parameter. + +```js +const response = await request("POST /markdown/raw", { + data: "Hello world github/linguist#1 **cool**, and #1!", + headers: { + accept: "text/html;charset=utf-8", + "content-type": "text/plain", + }, +}); + +// Request is sent as +// +// { +// method: 'post', +// url: 'https://api.github.com/markdown/raw', +// headers: { +// accept: 'text/html;charset=utf-8', +// 'content-type': 'text/plain', +// 'user-agent': userAgent +// }, +// body: 'Hello world github/linguist#1 **cool**, and #1!' +// } +// +// not as +// +// { +// ... +// body: '{"data": "Hello world github/linguist#1 **cool**, and #1!"}' +// } +``` + +### Set parameters for both the URL/query and the request body + +There are API endpoints that accept both query parameters as well as a body. In that case you need to add the query parameters as templates to `options.url`, as defined in the [RFC 6570 URI Template specification](https://tools.ietf.org/html/rfc6570). + +Example + +```js +request( + "POST https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label}", + { + name: "example.zip", + label: "short description", + headers: { + "content-type": "text/plain", + "content-length": 14, + authorization: `token 0000000000000000000000000000000000000001`, + }, + data: "Hello, world!", + }, +); +``` + +### Set a custom Agent to your requests + +The way to pass a custom `Agent` to requests is by creating a custom `fetch` function and pass it as `options.request.fetch`. A good example can be [undici's `fetch` implementation](https://undici.nodejs.org/#/?id=undicifetchinput-init-promise). + +Example ([See example in CodeSandbox](https://codesandbox.io/p/sandbox/nifty-stitch-wdlwlf)) + +```js +import { request } from "@octokit/request"; +import { fetch as undiciFetch, Agent } from "undici"; + +/** @type {typeof import("undici").fetch} */ +const myFetch = (url, options) => { + return undiciFetch(url, { + ...options, + dispatcher: new Agent({ + keepAliveTimeout: 10, + keepAliveMaxTimeout: 10, + }), + }); +}; + +const { data } = await request("GET /users/{username}", { + username: "octocat", + headers: { + "X-GitHub-Api-Version": "2022-11-28", + }, + options: { + request: { + fetch: myFetch, + }, + }, +}); +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/node_modules/@octokit/request/dist-node/index.js b/node_modules/@octokit/request/dist-node/index.js new file mode 100644 index 000000000..8eac63e60 --- /dev/null +++ b/node_modules/@octokit/request/dist-node/index.js @@ -0,0 +1,224 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + request: () => request +}); +module.exports = __toCommonJS(dist_src_exports); +var import_endpoint = require("@octokit/endpoint"); +var import_universal_user_agent = require("universal-user-agent"); + +// pkg/dist-src/version.js +var VERSION = "8.4.0"; + +// pkg/dist-src/is-plain-object.js +function isPlainObject(value) { + if (typeof value !== "object" || value === null) + return false; + if (Object.prototype.toString.call(value) !== "[object Object]") + return false; + const proto = Object.getPrototypeOf(value); + if (proto === null) + return true; + const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); +} + +// pkg/dist-src/fetch-wrapper.js +var import_request_error = require("@octokit/request-error"); + +// pkg/dist-src/get-buffer-response.js +function getBufferResponse(response) { + return response.arrayBuffer(); +} + +// pkg/dist-src/fetch-wrapper.js +function fetchWrapper(requestOptions) { + var _a, _b, _c, _d; + const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; + const parseSuccessResponseBody = ((_a = requestOptions.request) == null ? void 0 : _a.parseSuccessResponseBody) !== false; + if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + let headers = {}; + let status; + let url; + let { fetch } = globalThis; + if ((_b = requestOptions.request) == null ? void 0 : _b.fetch) { + fetch = requestOptions.request.fetch; + } + if (!fetch) { + throw new Error( + "fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing" + ); + } + return fetch(requestOptions.url, { + method: requestOptions.method, + body: requestOptions.body, + redirect: (_c = requestOptions.request) == null ? void 0 : _c.redirect, + headers: requestOptions.headers, + signal: (_d = requestOptions.request) == null ? void 0 : _d.signal, + // duplex must be set if request.body is ReadableStream or Async Iterables. + // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex. + ...requestOptions.body && { duplex: "half" } + }).then(async (response) => { + url = response.url; + status = response.status; + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + if ("deprecation" in headers) { + const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn( + `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}` + ); + } + if (status === 204 || status === 205) { + return; + } + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + throw new import_request_error.RequestError(response.statusText, status, { + response: { + url, + status, + headers, + data: void 0 + }, + request: requestOptions + }); + } + if (status === 304) { + throw new import_request_error.RequestError("Not modified", status, { + response: { + url, + status, + headers, + data: await getResponseData(response) + }, + request: requestOptions + }); + } + if (status >= 400) { + const data = await getResponseData(response); + const error = new import_request_error.RequestError(toErrorMessage(data), status, { + response: { + url, + status, + headers, + data + }, + request: requestOptions + }); + throw error; + } + return parseSuccessResponseBody ? await getResponseData(response) : response.body; + }).then((data) => { + return { + status, + url, + headers, + data + }; + }).catch((error) => { + if (error instanceof import_request_error.RequestError) + throw error; + else if (error.name === "AbortError") + throw error; + let message = error.message; + if (error.name === "TypeError" && "cause" in error) { + if (error.cause instanceof Error) { + message = error.cause.message; + } else if (typeof error.cause === "string") { + message = error.cause; + } + } + throw new import_request_error.RequestError(message, 500, { + request: requestOptions + }); + }); +} +async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + if (/application\/json/.test(contentType)) { + return response.json().catch(() => response.text()).catch(() => ""); + } + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + return getBufferResponse(response); +} +function toErrorMessage(data) { + if (typeof data === "string") + return data; + let suffix; + if ("documentation_url" in data) { + suffix = ` - ${data.documentation_url}`; + } else { + suffix = ""; + } + if ("message" in data) { + if (Array.isArray(data.errors)) { + return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}${suffix}`; + } + return `${data.message}${suffix}`; + } + return `Unknown error: ${JSON.stringify(data)}`; +} + +// pkg/dist-src/with-defaults.js +function withDefaults(oldEndpoint, newDefaults) { + const endpoint2 = oldEndpoint.defaults(newDefaults); + const newApi = function(route, parameters) { + const endpointOptions = endpoint2.merge(route, parameters); + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint2.parse(endpointOptions)); + } + const request2 = (route2, parameters2) => { + return fetchWrapper( + endpoint2.parse(endpoint2.merge(route2, parameters2)) + ); + }; + Object.assign(request2, { + endpoint: endpoint2, + defaults: withDefaults.bind(null, endpoint2) + }); + return endpointOptions.request.hook(request2, endpointOptions); + }; + return Object.assign(newApi, { + endpoint: endpoint2, + defaults: withDefaults.bind(null, endpoint2) + }); +} + +// pkg/dist-src/index.js +var request = withDefaults(import_endpoint.endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}` + } +}); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + request +}); diff --git a/node_modules/@octokit/request/dist-node/index.js.map b/node_modules/@octokit/request/dist-node/index.js.map new file mode 100644 index 000000000..e6ef43a79 --- /dev/null +++ b/node_modules/@octokit/request/dist-node/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/index.js", "../dist-src/version.js", "../dist-src/is-plain-object.js", "../dist-src/fetch-wrapper.js", "../dist-src/get-buffer-response.js", "../dist-src/with-defaults.js"], + "sourcesContent": ["import { endpoint } from \"@octokit/endpoint\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version.js\";\nimport withDefaults from \"./with-defaults.js\";\nconst request = withDefaults(endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${getUserAgent()}`\n }\n});\nexport {\n request\n};\n", "const VERSION = \"8.4.0\";\nexport {\n VERSION\n};\n", "function isPlainObject(value) {\n if (typeof value !== \"object\" || value === null)\n return false;\n if (Object.prototype.toString.call(value) !== \"[object Object]\")\n return false;\n const proto = Object.getPrototypeOf(value);\n if (proto === null)\n return true;\n const Ctor = Object.prototype.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);\n}\nexport {\n isPlainObject\n};\n", "import { isPlainObject } from \"./is-plain-object.js\";\nimport { RequestError } from \"@octokit/request-error\";\nimport getBuffer from \"./get-buffer-response.js\";\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false;\n if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n let headers = {};\n let status;\n let url;\n let { fetch } = globalThis;\n if (requestOptions.request?.fetch) {\n fetch = requestOptions.request.fetch;\n }\n if (!fetch) {\n throw new Error(\n \"fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing\"\n );\n }\n return fetch(requestOptions.url, {\n method: requestOptions.method,\n body: requestOptions.body,\n redirect: requestOptions.request?.redirect,\n headers: requestOptions.headers,\n signal: requestOptions.request?.signal,\n // duplex must be set if request.body is ReadableStream or Async Iterables.\n // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex.\n ...requestOptions.body && { duplex: \"half\" }\n }).then(async (response) => {\n url = response.url;\n status = response.status;\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(\n `[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`\n );\n }\n if (status === 204 || status === 205) {\n return;\n }\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n throw new RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: void 0\n },\n request: requestOptions\n });\n }\n if (status === 304) {\n throw new RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n return parseSuccessResponseBody ? await getResponseData(response) : response.body;\n }).then((data) => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch((error) => {\n if (error instanceof RequestError)\n throw error;\n else if (error.name === \"AbortError\")\n throw error;\n let message = error.message;\n if (error.name === \"TypeError\" && \"cause\" in error) {\n if (error.cause instanceof Error) {\n message = error.cause.message;\n } else if (typeof error.cause === \"string\") {\n message = error.cause;\n }\n }\n throw new RequestError(message, 500, {\n request: requestOptions\n });\n });\n}\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n if (/application\\/json/.test(contentType)) {\n return response.json().catch(() => response.text()).catch(() => \"\");\n }\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n return getBuffer(response);\n}\nfunction toErrorMessage(data) {\n if (typeof data === \"string\")\n return data;\n let suffix;\n if (\"documentation_url\" in data) {\n suffix = ` - ${data.documentation_url}`;\n } else {\n suffix = \"\";\n }\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}${suffix}`;\n }\n return `${data.message}${suffix}`;\n }\n return `Unknown error: ${JSON.stringify(data)}`;\n}\nexport {\n fetchWrapper as default\n};\n", "function getBufferResponse(response) {\n return response.arrayBuffer();\n}\nexport {\n getBufferResponse as default\n};\n", "import fetchWrapper from \"./fetch-wrapper.js\";\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n const newApi = function(route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n const request = (route2, parameters2) => {\n return fetchWrapper(\n endpoint.parse(endpoint.merge(route2, parameters2))\n );\n };\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\nexport {\n withDefaults as default\n};\n"], + "mappings": "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", + "names": ["endpoint", "request"] +} diff --git a/node_modules/@octokit/request/dist-src/fetch-wrapper.js b/node_modules/@octokit/request/dist-src/fetch-wrapper.js new file mode 100644 index 000000000..c6374d455 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/fetch-wrapper.js @@ -0,0 +1,140 @@ +import { isPlainObject } from "./is-plain-object.js"; +import { RequestError } from "@octokit/request-error"; +import getBuffer from "./get-buffer-response.js"; +function fetchWrapper(requestOptions) { + const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; + const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false; + if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + let headers = {}; + let status; + let url; + let { fetch } = globalThis; + if (requestOptions.request?.fetch) { + fetch = requestOptions.request.fetch; + } + if (!fetch) { + throw new Error( + "fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing" + ); + } + return fetch(requestOptions.url, { + method: requestOptions.method, + body: requestOptions.body, + redirect: requestOptions.request?.redirect, + headers: requestOptions.headers, + signal: requestOptions.request?.signal, + // duplex must be set if request.body is ReadableStream or Async Iterables. + // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex. + ...requestOptions.body && { duplex: "half" } + }).then(async (response) => { + url = response.url; + status = response.status; + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + if ("deprecation" in headers) { + const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn( + `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}` + ); + } + if (status === 204 || status === 205) { + return; + } + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + throw new RequestError(response.statusText, status, { + response: { + url, + status, + headers, + data: void 0 + }, + request: requestOptions + }); + } + if (status === 304) { + throw new RequestError("Not modified", status, { + response: { + url, + status, + headers, + data: await getResponseData(response) + }, + request: requestOptions + }); + } + if (status >= 400) { + const data = await getResponseData(response); + const error = new RequestError(toErrorMessage(data), status, { + response: { + url, + status, + headers, + data + }, + request: requestOptions + }); + throw error; + } + return parseSuccessResponseBody ? await getResponseData(response) : response.body; + }).then((data) => { + return { + status, + url, + headers, + data + }; + }).catch((error) => { + if (error instanceof RequestError) + throw error; + else if (error.name === "AbortError") + throw error; + let message = error.message; + if (error.name === "TypeError" && "cause" in error) { + if (error.cause instanceof Error) { + message = error.cause.message; + } else if (typeof error.cause === "string") { + message = error.cause; + } + } + throw new RequestError(message, 500, { + request: requestOptions + }); + }); +} +async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + if (/application\/json/.test(contentType)) { + return response.json().catch(() => response.text()).catch(() => ""); + } + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + return getBuffer(response); +} +function toErrorMessage(data) { + if (typeof data === "string") + return data; + let suffix; + if ("documentation_url" in data) { + suffix = ` - ${data.documentation_url}`; + } else { + suffix = ""; + } + if ("message" in data) { + if (Array.isArray(data.errors)) { + return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}${suffix}`; + } + return `${data.message}${suffix}`; + } + return `Unknown error: ${JSON.stringify(data)}`; +} +export { + fetchWrapper as default +}; diff --git a/node_modules/@octokit/request/dist-src/get-buffer-response.js b/node_modules/@octokit/request/dist-src/get-buffer-response.js new file mode 100644 index 000000000..792c895a0 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/get-buffer-response.js @@ -0,0 +1,6 @@ +function getBufferResponse(response) { + return response.arrayBuffer(); +} +export { + getBufferResponse as default +}; diff --git a/node_modules/@octokit/request/dist-src/index.js b/node_modules/@octokit/request/dist-src/index.js new file mode 100644 index 000000000..3f8e1ae9a --- /dev/null +++ b/node_modules/@octokit/request/dist-src/index.js @@ -0,0 +1,12 @@ +import { endpoint } from "@octokit/endpoint"; +import { getUserAgent } from "universal-user-agent"; +import { VERSION } from "./version.js"; +import withDefaults from "./with-defaults.js"; +const request = withDefaults(endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${getUserAgent()}` + } +}); +export { + request +}; diff --git a/node_modules/@octokit/request/dist-src/is-plain-object.js b/node_modules/@octokit/request/dist-src/is-plain-object.js new file mode 100644 index 000000000..44b5eb2a6 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/is-plain-object.js @@ -0,0 +1,14 @@ +function isPlainObject(value) { + if (typeof value !== "object" || value === null) + return false; + if (Object.prototype.toString.call(value) !== "[object Object]") + return false; + const proto = Object.getPrototypeOf(value); + if (proto === null) + return true; + const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); +} +export { + isPlainObject +}; diff --git a/node_modules/@octokit/request/dist-src/version.js b/node_modules/@octokit/request/dist-src/version.js new file mode 100644 index 000000000..b761df444 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/version.js @@ -0,0 +1,4 @@ +const VERSION = "8.4.0"; +export { + VERSION +}; diff --git a/node_modules/@octokit/request/dist-src/with-defaults.js b/node_modules/@octokit/request/dist-src/with-defaults.js new file mode 100644 index 000000000..b2dd7ad6b --- /dev/null +++ b/node_modules/@octokit/request/dist-src/with-defaults.js @@ -0,0 +1,27 @@ +import fetchWrapper from "./fetch-wrapper.js"; +function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + const newApi = function(route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + const request = (route2, parameters2) => { + return fetchWrapper( + endpoint.parse(endpoint.merge(route2, parameters2)) + ); + }; + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); +} +export { + withDefaults as default +}; diff --git a/node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts b/node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts new file mode 100644 index 000000000..eaa77c41f --- /dev/null +++ b/node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts @@ -0,0 +1,9 @@ +import type { EndpointInterface } from "@octokit/types"; +export default function fetchWrapper(requestOptions: ReturnType): Promise<{ + status: number; + url: string; + headers: { + [header: string]: string; + }; + data: any; +}>; diff --git a/node_modules/@octokit/request/dist-types/get-buffer-response.d.ts b/node_modules/@octokit/request/dist-types/get-buffer-response.d.ts new file mode 100644 index 000000000..26f185279 --- /dev/null +++ b/node_modules/@octokit/request/dist-types/get-buffer-response.d.ts @@ -0,0 +1 @@ +export default function getBufferResponse(response: Response): Promise; diff --git a/node_modules/@octokit/request/dist-types/index.d.ts b/node_modules/@octokit/request/dist-types/index.d.ts new file mode 100644 index 000000000..1030809f9 --- /dev/null +++ b/node_modules/@octokit/request/dist-types/index.d.ts @@ -0,0 +1 @@ +export declare const request: import("@octokit/types").RequestInterface; diff --git a/node_modules/@octokit/request/dist-types/is-plain-object.d.ts b/node_modules/@octokit/request/dist-types/is-plain-object.d.ts new file mode 100644 index 000000000..004fa4bf5 --- /dev/null +++ b/node_modules/@octokit/request/dist-types/is-plain-object.d.ts @@ -0,0 +1 @@ +export declare function isPlainObject(value: unknown): value is Object; diff --git a/node_modules/@octokit/request/dist-types/version.d.ts b/node_modules/@octokit/request/dist-types/version.d.ts new file mode 100644 index 000000000..07ab25ee7 --- /dev/null +++ b/node_modules/@octokit/request/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "8.4.0"; diff --git a/node_modules/@octokit/request/dist-types/with-defaults.d.ts b/node_modules/@octokit/request/dist-types/with-defaults.d.ts new file mode 100644 index 000000000..4300682f0 --- /dev/null +++ b/node_modules/@octokit/request/dist-types/with-defaults.d.ts @@ -0,0 +1,2 @@ +import type { EndpointInterface, RequestInterface, RequestParameters } from "@octokit/types"; +export default function withDefaults(oldEndpoint: EndpointInterface, newDefaults: RequestParameters): RequestInterface; diff --git a/node_modules/@octokit/request/dist-web/index.js b/node_modules/@octokit/request/dist-web/index.js new file mode 100644 index 000000000..198a29b38 --- /dev/null +++ b/node_modules/@octokit/request/dist-web/index.js @@ -0,0 +1,198 @@ +// pkg/dist-src/index.js +import { endpoint } from "@octokit/endpoint"; +import { getUserAgent } from "universal-user-agent"; + +// pkg/dist-src/version.js +var VERSION = "8.4.0"; + +// pkg/dist-src/is-plain-object.js +function isPlainObject(value) { + if (typeof value !== "object" || value === null) + return false; + if (Object.prototype.toString.call(value) !== "[object Object]") + return false; + const proto = Object.getPrototypeOf(value); + if (proto === null) + return true; + const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); +} + +// pkg/dist-src/fetch-wrapper.js +import { RequestError } from "@octokit/request-error"; + +// pkg/dist-src/get-buffer-response.js +function getBufferResponse(response) { + return response.arrayBuffer(); +} + +// pkg/dist-src/fetch-wrapper.js +function fetchWrapper(requestOptions) { + const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; + const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false; + if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + let headers = {}; + let status; + let url; + let { fetch } = globalThis; + if (requestOptions.request?.fetch) { + fetch = requestOptions.request.fetch; + } + if (!fetch) { + throw new Error( + "fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing" + ); + } + return fetch(requestOptions.url, { + method: requestOptions.method, + body: requestOptions.body, + redirect: requestOptions.request?.redirect, + headers: requestOptions.headers, + signal: requestOptions.request?.signal, + // duplex must be set if request.body is ReadableStream or Async Iterables. + // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex. + ...requestOptions.body && { duplex: "half" } + }).then(async (response) => { + url = response.url; + status = response.status; + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + if ("deprecation" in headers) { + const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn( + `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}` + ); + } + if (status === 204 || status === 205) { + return; + } + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + throw new RequestError(response.statusText, status, { + response: { + url, + status, + headers, + data: void 0 + }, + request: requestOptions + }); + } + if (status === 304) { + throw new RequestError("Not modified", status, { + response: { + url, + status, + headers, + data: await getResponseData(response) + }, + request: requestOptions + }); + } + if (status >= 400) { + const data = await getResponseData(response); + const error = new RequestError(toErrorMessage(data), status, { + response: { + url, + status, + headers, + data + }, + request: requestOptions + }); + throw error; + } + return parseSuccessResponseBody ? await getResponseData(response) : response.body; + }).then((data) => { + return { + status, + url, + headers, + data + }; + }).catch((error) => { + if (error instanceof RequestError) + throw error; + else if (error.name === "AbortError") + throw error; + let message = error.message; + if (error.name === "TypeError" && "cause" in error) { + if (error.cause instanceof Error) { + message = error.cause.message; + } else if (typeof error.cause === "string") { + message = error.cause; + } + } + throw new RequestError(message, 500, { + request: requestOptions + }); + }); +} +async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + if (/application\/json/.test(contentType)) { + return response.json().catch(() => response.text()).catch(() => ""); + } + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + return getBufferResponse(response); +} +function toErrorMessage(data) { + if (typeof data === "string") + return data; + let suffix; + if ("documentation_url" in data) { + suffix = ` - ${data.documentation_url}`; + } else { + suffix = ""; + } + if ("message" in data) { + if (Array.isArray(data.errors)) { + return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}${suffix}`; + } + return `${data.message}${suffix}`; + } + return `Unknown error: ${JSON.stringify(data)}`; +} + +// pkg/dist-src/with-defaults.js +function withDefaults(oldEndpoint, newDefaults) { + const endpoint2 = oldEndpoint.defaults(newDefaults); + const newApi = function(route, parameters) { + const endpointOptions = endpoint2.merge(route, parameters); + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint2.parse(endpointOptions)); + } + const request2 = (route2, parameters2) => { + return fetchWrapper( + endpoint2.parse(endpoint2.merge(route2, parameters2)) + ); + }; + Object.assign(request2, { + endpoint: endpoint2, + defaults: withDefaults.bind(null, endpoint2) + }); + return endpointOptions.request.hook(request2, endpointOptions); + }; + return Object.assign(newApi, { + endpoint: endpoint2, + defaults: withDefaults.bind(null, endpoint2) + }); +} + +// pkg/dist-src/index.js +var request = withDefaults(endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${getUserAgent()}` + } +}); +export { + request +}; diff --git a/node_modules/@octokit/request/dist-web/index.js.map b/node_modules/@octokit/request/dist-web/index.js.map new file mode 100644 index 000000000..a38bf3ab5 --- /dev/null +++ b/node_modules/@octokit/request/dist-web/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../dist-src/index.js", "../dist-src/version.js", "../dist-src/is-plain-object.js", "../dist-src/fetch-wrapper.js", "../dist-src/get-buffer-response.js", "../dist-src/with-defaults.js"], + "sourcesContent": ["import { endpoint } from \"@octokit/endpoint\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version.js\";\nimport withDefaults from \"./with-defaults.js\";\nconst request = withDefaults(endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${getUserAgent()}`\n }\n});\nexport {\n request\n};\n", "const VERSION = \"8.4.0\";\nexport {\n VERSION\n};\n", "function isPlainObject(value) {\n if (typeof value !== \"object\" || value === null)\n return false;\n if (Object.prototype.toString.call(value) !== \"[object Object]\")\n return false;\n const proto = Object.getPrototypeOf(value);\n if (proto === null)\n return true;\n const Ctor = Object.prototype.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);\n}\nexport {\n isPlainObject\n};\n", "import { isPlainObject } from \"./is-plain-object.js\";\nimport { RequestError } from \"@octokit/request-error\";\nimport getBuffer from \"./get-buffer-response.js\";\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false;\n if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n let headers = {};\n let status;\n let url;\n let { fetch } = globalThis;\n if (requestOptions.request?.fetch) {\n fetch = requestOptions.request.fetch;\n }\n if (!fetch) {\n throw new Error(\n \"fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing\"\n );\n }\n return fetch(requestOptions.url, {\n method: requestOptions.method,\n body: requestOptions.body,\n redirect: requestOptions.request?.redirect,\n headers: requestOptions.headers,\n signal: requestOptions.request?.signal,\n // duplex must be set if request.body is ReadableStream or Async Iterables.\n // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex.\n ...requestOptions.body && { duplex: \"half\" }\n }).then(async (response) => {\n url = response.url;\n status = response.status;\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(\n `[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`\n );\n }\n if (status === 204 || status === 205) {\n return;\n }\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n throw new RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: void 0\n },\n request: requestOptions\n });\n }\n if (status === 304) {\n throw new RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n return parseSuccessResponseBody ? await getResponseData(response) : response.body;\n }).then((data) => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch((error) => {\n if (error instanceof RequestError)\n throw error;\n else if (error.name === \"AbortError\")\n throw error;\n let message = error.message;\n if (error.name === \"TypeError\" && \"cause\" in error) {\n if (error.cause instanceof Error) {\n message = error.cause.message;\n } else if (typeof error.cause === \"string\") {\n message = error.cause;\n }\n }\n throw new RequestError(message, 500, {\n request: requestOptions\n });\n });\n}\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n if (/application\\/json/.test(contentType)) {\n return response.json().catch(() => response.text()).catch(() => \"\");\n }\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n return getBuffer(response);\n}\nfunction toErrorMessage(data) {\n if (typeof data === \"string\")\n return data;\n let suffix;\n if (\"documentation_url\" in data) {\n suffix = ` - ${data.documentation_url}`;\n } else {\n suffix = \"\";\n }\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}${suffix}`;\n }\n return `${data.message}${suffix}`;\n }\n return `Unknown error: ${JSON.stringify(data)}`;\n}\nexport {\n fetchWrapper as default\n};\n", "function getBufferResponse(response) {\n return response.arrayBuffer();\n}\nexport {\n getBufferResponse as default\n};\n", "import fetchWrapper from \"./fetch-wrapper.js\";\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n const newApi = function(route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n const request = (route2, parameters2) => {\n return fetchWrapper(\n endpoint.parse(endpoint.merge(route2, parameters2))\n );\n };\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\nexport {\n withDefaults as default\n};\n"], + "mappings": "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", + "names": ["endpoint", "request"] +} diff --git a/node_modules/@octokit/request/package.json b/node_modules/@octokit/request/package.json new file mode 100644 index 000000000..143071761 --- /dev/null +++ b/node_modules/@octokit/request/package.json @@ -0,0 +1,55 @@ +{ + "name": "@octokit/request", + "version": "8.4.0", + "publishConfig": { + "access": "public", + "provenance": true + }, + "description": "Send parameterized requests to GitHub's APIs with sensible defaults in browsers and Node", + "repository": "github:octokit/request.js", + "keywords": [ + "octokit", + "github", + "api", + "request" + ], + "author": "Gregor Martynus (https://github.com/gr2m)", + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "devDependencies": { + "@octokit/auth-app": "^6.0.0", + "@octokit/tsconfig": "^2.0.0", + "@types/fetch-mock": "^7.2.4", + "@types/jest": "^29.0.0", + "@types/lolex": "^5.1.0", + "@types/node": "^20.0.0", + "@types/once": "^1.4.0", + "esbuild": "^0.20.0", + "fetch-mock": "npm:@gr2m/fetch-mock@^9.11.0-pull-request-644.1", + "glob": "^10.2.4", + "jest": "^29.0.0", + "lolex": "^6.0.0", + "prettier": "3.2.5", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "string-to-arraybuffer": "^1.0.2", + "ts-jest": "^29.0.0", + "typescript": "^5.0.0" + }, + "engines": { + "node": ">= 18" + }, + "files": [ + "dist-*/**", + "bin/**" + ], + "main": "dist-node/index.js", + "browser": "dist-web/index.js", + "types": "dist-types/index.d.ts", + "module": "dist-src/index.js", + "sideEffects": false +} diff --git a/node_modules/@octokit/types/LICENSE b/node_modules/@octokit/types/LICENSE new file mode 100644 index 000000000..57bee5f18 --- /dev/null +++ b/node_modules/@octokit/types/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +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: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +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. diff --git a/node_modules/@octokit/types/README.md b/node_modules/@octokit/types/README.md new file mode 100644 index 000000000..7ebe154a1 --- /dev/null +++ b/node_modules/@octokit/types/README.md @@ -0,0 +1,65 @@ +# types.ts + +> Shared TypeScript definitions for Octokit projects + +[![@latest](https://img.shields.io/npm/v/@octokit/types.svg)](https://www.npmjs.com/package/@octokit/types) +[![Build Status](https://github.com/octokit/types.ts/workflows/Test/badge.svg)](https://github.com/octokit/types.ts/actions?workflow=Test) + + + +- [Usage](#usage) +- [Examples](#examples) + - [Get parameter and response data types for a REST API endpoint](#get-parameter-and-response-data-types-for-a-rest-api-endpoint) + - [Get response types from endpoint methods](#get-response-types-from-endpoint-methods) +- [Contributing](#contributing) +- [License](#license) + + + +## Usage + +See all exported types at https://octokit.github.io/types.ts + +## Examples + +### Get parameter and response data types for a REST API endpoint + +```ts +import { Endpoints } from "@octokit/types"; + +type listUserReposParameters = + Endpoints["GET /repos/{owner}/{repo}"]["parameters"]; +type listUserReposResponse = Endpoints["GET /repos/{owner}/{repo}"]["response"]; + +async function listRepos( + options: listUserReposParameters, +): listUserReposResponse["data"] { + // ... +} +``` + +### Get response types from endpoint methods + +```ts +import { + GetResponseTypeFromEndpointMethod, + GetResponseDataTypeFromEndpointMethod, +} from "@octokit/types"; +import { Octokit } from "@octokit/rest"; + +const octokit = new Octokit(); +type CreateLabelResponseType = GetResponseTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +type CreateLabelResponseDataType = GetResponseDataTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +``` + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/types/dist-types/AuthInterface.d.ts b/node_modules/@octokit/types/dist-types/AuthInterface.d.ts new file mode 100644 index 000000000..616d6d57d --- /dev/null +++ b/node_modules/@octokit/types/dist-types/AuthInterface.d.ts @@ -0,0 +1,31 @@ +import type { EndpointOptions } from "./EndpointOptions"; +import type { OctokitResponse } from "./OctokitResponse"; +import type { RequestInterface } from "./RequestInterface"; +import type { RequestParameters } from "./RequestParameters"; +import type { Route } from "./Route"; +/** + * Interface to implement complex authentication strategies for Octokit. + * An object Implementing the AuthInterface can directly be passed as the + * `auth` option in the Octokit constructor. + * + * For the official implementations of the most common authentication + * strategies, see https://github.com/octokit/auth.js + */ +export interface AuthInterface { + (...args: AuthOptions): Promise; + hook: { + /** + * Sends a request using the passed `request` instance + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, options: EndpointOptions): Promise>; + /** + * Sends a request using the passed `request` instance + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, route: Route, parameters?: RequestParameters): Promise>; + }; +} diff --git a/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts b/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts new file mode 100644 index 000000000..3bbc38890 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts @@ -0,0 +1,21 @@ +import type { RequestHeaders } from "./RequestHeaders"; +import type { RequestMethod } from "./RequestMethod"; +import type { RequestParameters } from "./RequestParameters"; +import type { Url } from "./Url"; +/** + * The `.endpoint()` method is guaranteed to set all keys defined by RequestParameters + * as well as the method property. + */ +export type EndpointDefaults = RequestParameters & { + baseUrl: Url; + method: RequestMethod; + url?: Url; + headers: RequestHeaders & { + accept: string; + "user-agent": string; + }; + mediaType: { + format: string; + previews?: string[]; + }; +}; diff --git a/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts b/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts new file mode 100644 index 000000000..184bf7361 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts @@ -0,0 +1,65 @@ +import type { EndpointDefaults } from "./EndpointDefaults"; +import type { RequestOptions } from "./RequestOptions"; +import type { RequestParameters } from "./RequestParameters"; +import type { Route } from "./Route"; +import type { Endpoints } from "./generated/Endpoints"; +export interface EndpointInterface { + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {object} endpoint Must set `url` unless it's set defaults. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): RequestOptions & Pick; + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, parameters?: P): (R extends keyof Endpoints ? Endpoints[R]["request"] : RequestOptions) & Pick; + /** + * Object with current default route and parameters + */ + DEFAULTS: D & EndpointDefaults; + /** + * Returns a new `endpoint` interface with new defaults + */ + defaults: (newDefaults: O) => EndpointInterface; + merge: { + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * + */ + (route: keyof Endpoints | R, parameters?: P): D & (R extends keyof Endpoints ? Endpoints[R]["request"] & Endpoints[R]["parameters"] : EndpointDefaults) & P; + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ +

(options: P): EndpointDefaults & D & P; + /** + * Returns current default options. + * + * @deprecated use endpoint.DEFAULTS instead + */ + (): D & EndpointDefaults; + }; + /** + * Stateless method to turn endpoint options into request options. + * Calling `endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`. + * + * @param {object} options `method`, `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + parse: (options: O) => RequestOptions & Pick; +} diff --git a/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts b/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts new file mode 100644 index 000000000..e77168eac --- /dev/null +++ b/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts @@ -0,0 +1,7 @@ +import type { RequestMethod } from "./RequestMethod"; +import type { Url } from "./Url"; +import type { RequestParameters } from "./RequestParameters"; +export type EndpointOptions = RequestParameters & { + method: RequestMethod; + url: Url; +}; diff --git a/node_modules/@octokit/types/dist-types/Fetch.d.ts b/node_modules/@octokit/types/dist-types/Fetch.d.ts new file mode 100644 index 000000000..983c79be1 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/Fetch.d.ts @@ -0,0 +1,4 @@ +/** + * Browser's fetch method (or compatible such as fetch-mock) + */ +export type Fetch = any; diff --git a/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts b/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts new file mode 100644 index 000000000..2daaf34db --- /dev/null +++ b/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts @@ -0,0 +1,5 @@ +type Unwrap = T extends Promise ? U : T; +type AnyFunction = (...args: any[]) => any; +export type GetResponseTypeFromEndpointMethod = Unwrap>; +export type GetResponseDataTypeFromEndpointMethod = Unwrap>["data"]; +export {}; diff --git a/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts b/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts new file mode 100644 index 000000000..bc6ab1099 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts @@ -0,0 +1,17 @@ +import type { ResponseHeaders } from "./ResponseHeaders"; +import type { Url } from "./Url"; +export interface OctokitResponse { + headers: ResponseHeaders; + /** + * http response code + */ + status: S; + /** + * URL of response after all redirects + */ + url: Url; + /** + * Response data as documented in the REST API reference documentation at https://docs.github.com/rest/reference + */ + data: T; +} diff --git a/node_modules/@octokit/types/dist-types/RequestError.d.ts b/node_modules/@octokit/types/dist-types/RequestError.d.ts new file mode 100644 index 000000000..46083923d --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestError.d.ts @@ -0,0 +1,11 @@ +export type RequestError = { + name: string; + status: number; + documentation_url: string; + errors?: Array<{ + resource: string; + code: string; + field: string; + message?: string; + }>; +}; diff --git a/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts b/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts new file mode 100644 index 000000000..423115948 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts @@ -0,0 +1,15 @@ +export type RequestHeaders = { + /** + * Avoid setting `headers.accept`, use `mediaType.{format|previews}` option instead. + */ + accept?: string; + /** + * Use `authorization` to send authenticated request, remember `token ` / `bearer ` prefixes. Example: `token 1234567890abcdef1234567890abcdef12345678` + */ + authorization?: string; + /** + * `user-agent` is set do a default and can be overwritten as needed. + */ + "user-agent"?: string; + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/types/dist-types/RequestInterface.d.ts b/node_modules/@octokit/types/dist-types/RequestInterface.d.ts new file mode 100644 index 000000000..cc757e4c4 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestInterface.d.ts @@ -0,0 +1,34 @@ +import type { EndpointInterface } from "./EndpointInterface"; +import type { OctokitResponse } from "./OctokitResponse"; +import type { RequestParameters } from "./RequestParameters"; +import type { Route } from "./Route"; +import type { Endpoints } from "./generated/Endpoints"; +export interface RequestInterface { + /** + * Sends a request based on endpoint options + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): Promise>; + /** + * Sends a request based on endpoint options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, options?: R extends keyof Endpoints ? Endpoints[R]["parameters"] & RequestParameters : RequestParameters): R extends keyof Endpoints ? Promise : Promise>; + /** + * Returns a new `request` with updated route and parameters + */ + defaults: (newDefaults: O) => RequestInterface; + /** + * Octokit endpoint API, see {@link https://github.com/octokit/endpoint.js|@octokit/endpoint} + */ + endpoint: EndpointInterface; +} diff --git a/node_modules/@octokit/types/dist-types/RequestMethod.d.ts b/node_modules/@octokit/types/dist-types/RequestMethod.d.ts new file mode 100644 index 000000000..4cdfe61c8 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestMethod.d.ts @@ -0,0 +1,4 @@ +/** + * HTTP Verb supported by GitHub's REST API + */ +export type RequestMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT"; diff --git a/node_modules/@octokit/types/dist-types/RequestOptions.d.ts b/node_modules/@octokit/types/dist-types/RequestOptions.d.ts new file mode 100644 index 000000000..b799c0f8e --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestOptions.d.ts @@ -0,0 +1,14 @@ +import type { RequestHeaders } from "./RequestHeaders"; +import type { RequestMethod } from "./RequestMethod"; +import type { RequestRequestOptions } from "./RequestRequestOptions"; +import type { Url } from "./Url"; +/** + * Generic request options as they are returned by the `endpoint()` method + */ +export type RequestOptions = { + method: RequestMethod; + url: Url; + headers: RequestHeaders; + body?: any; + request?: RequestRequestOptions; +}; diff --git a/node_modules/@octokit/types/dist-types/RequestParameters.d.ts b/node_modules/@octokit/types/dist-types/RequestParameters.d.ts new file mode 100644 index 000000000..e21247876 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestParameters.d.ts @@ -0,0 +1,45 @@ +import type { RequestRequestOptions } from "./RequestRequestOptions"; +import type { RequestHeaders } from "./RequestHeaders"; +import type { Url } from "./Url"; +/** + * Parameters that can be passed into `request(route, parameters)` or `endpoint(route, parameters)` methods + */ +export type RequestParameters = { + /** + * Base URL to be used when a relative URL is passed, such as `/orgs/{org}`. + * If `baseUrl` is `https://enterprise.acme-inc.com/api/v3`, then the request + * will be sent to `https://enterprise.acme-inc.com/api/v3/orgs/{org}`. + */ + baseUrl?: Url; + /** + * HTTP headers. Use lowercase keys. + */ + headers?: RequestHeaders; + /** + * Media type options, see {@link https://developer.github.com/v3/media/|GitHub Developer Guide} + */ + mediaType?: { + /** + * `json` by default. Can be `raw`, `text`, `html`, `full`, `diff`, `patch`, `sha`, `base64`. Depending on endpoint + */ + format?: string; + /** + * Custom media type names of {@link https://docs.github.com/en/graphql/overview/schema-previews|GraphQL API Previews} without the `-preview` suffix. + * Example for single preview: `['squirrel-girl']`. + * Example for multiple previews: `['squirrel-girl', 'mister-fantastic']`. + */ + previews?: string[]; + }; + /** + * Pass custom meta information for the request. The `request` object will be returned as is. + */ + request?: RequestRequestOptions; + /** + * Any additional parameter will be passed as follows + * 1. URL parameter if `':parameter'` or `{parameter}` is part of `url` + * 2. Query parameter if `method` is `'GET'` or `'HEAD'` + * 3. Request body if `parameter` is `'data'` + * 4. JSON in the request body in the form of `body[parameter]` unless `parameter` key is `'data'` + */ + [parameter: string]: unknown; +}; diff --git a/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts b/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts new file mode 100644 index 000000000..be1a6bb54 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts @@ -0,0 +1,21 @@ +import type { Fetch } from "./Fetch"; +import type { Signal } from "./Signal"; +/** + * Octokit-specific request options which are ignored for the actual request, but can be used by Octokit or plugins to manipulate how the request is sent or how a response is handled + */ +export type RequestRequestOptions = { + /** + * Custom replacement for built-in fetch method. Useful for testing or request hooks. + */ + fetch?: Fetch; + /** + * Use an `AbortController` instance to cancel a request. In node you can only cancel streamed requests. + */ + signal?: Signal; + /** + * If set to `false`, the response body will not be parsed and will be returned as a stream. + */ + parseSuccessResponseBody?: boolean; + redirect?: "follow" | "error" | "manual"; + [option: string]: any; +}; diff --git a/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts b/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts new file mode 100644 index 000000000..7b5bf53b2 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts @@ -0,0 +1,21 @@ +export type ResponseHeaders = { + "cache-control"?: string; + "content-length"?: number; + "content-type"?: string; + date?: string; + etag?: string; + "last-modified"?: string; + link?: string; + location?: string; + server?: string; + status?: string; + vary?: string; + "x-accepted-github-permissions"?: string; + "x-github-mediatype"?: string; + "x-github-request-id"?: string; + "x-oauth-scopes"?: string; + "x-ratelimit-limit"?: string; + "x-ratelimit-remaining"?: string; + "x-ratelimit-reset"?: string; + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/types/dist-types/Route.d.ts b/node_modules/@octokit/types/dist-types/Route.d.ts new file mode 100644 index 000000000..808991ebf --- /dev/null +++ b/node_modules/@octokit/types/dist-types/Route.d.ts @@ -0,0 +1,4 @@ +/** + * String consisting of an optional HTTP method and relative path or absolute URL. Examples: `'/orgs/{org}'`, `'PUT /orgs/{org}'`, `GET https://example.com/foo/bar` + */ +export type Route = string; diff --git a/node_modules/@octokit/types/dist-types/Signal.d.ts b/node_modules/@octokit/types/dist-types/Signal.d.ts new file mode 100644 index 000000000..bdf97001e --- /dev/null +++ b/node_modules/@octokit/types/dist-types/Signal.d.ts @@ -0,0 +1,6 @@ +/** + * Abort signal + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal + */ +export type Signal = any; diff --git a/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts b/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts new file mode 100644 index 000000000..6b213abac --- /dev/null +++ b/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts @@ -0,0 +1,4 @@ +import type { AuthInterface } from "./AuthInterface"; +export interface StrategyInterface { + (...args: StrategyOptions): AuthInterface; +} diff --git a/node_modules/@octokit/types/dist-types/Url.d.ts b/node_modules/@octokit/types/dist-types/Url.d.ts new file mode 100644 index 000000000..521f5ad9b --- /dev/null +++ b/node_modules/@octokit/types/dist-types/Url.d.ts @@ -0,0 +1,4 @@ +/** + * Relative or absolute URL. Examples: `'/orgs/{org}'`, `https://example.com/foo/bar` + */ +export type Url = string; diff --git a/node_modules/@octokit/types/dist-types/VERSION.d.ts b/node_modules/@octokit/types/dist-types/VERSION.d.ts new file mode 100644 index 000000000..be7c05d5f --- /dev/null +++ b/node_modules/@octokit/types/dist-types/VERSION.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "13.5.0"; diff --git a/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts b/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts new file mode 100644 index 000000000..b948e3216 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts @@ -0,0 +1,3813 @@ +import type { paths } from "@octokit/openapi-types"; +import type { OctokitResponse } from "../OctokitResponse"; +import type { RequestHeaders } from "../RequestHeaders"; +import type { RequestRequestOptions } from "../RequestRequestOptions"; +/** + * @license (MIT OR CC0-1.0) + * @source https://github.com/sindresorhus/type-fest/blob/570e27f8fdaee37ef5d5e0fbf241e0212ff8fc1a/source/simplify.d.ts + */ +export type Simplify = { + [KeyType in keyof T]: T[KeyType]; +} & {}; +type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; +type ExtractParameters = "parameters" extends keyof T ? UnionToIntersection<{ + [K in keyof T["parameters"]]-?: T["parameters"][K]; +}[keyof T["parameters"]]> : {}; +type ExtractRequestBody = "requestBody" extends keyof T ? "content" extends keyof T["requestBody"] ? "application/json" extends keyof T["requestBody"]["content"] ? T["requestBody"]["content"]["application/json"] : { + data: { + [K in keyof T["requestBody"]["content"]]: T["requestBody"]["content"][K]; + }[keyof T["requestBody"]["content"]]; +} : "application/json" extends keyof T["requestBody"] ? T["requestBody"]["application/json"] : { + data: { + [K in keyof T["requestBody"]]: T["requestBody"][K]; + }[keyof T["requestBody"]]; +} : {}; +type ToOctokitParameters = ExtractParameters & ExtractRequestBody>; +type Operation = { + parameters: Simplify>; + request: Method extends ReadOnlyMethods ? { + method: Method extends string ? Uppercase : never; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; + } : { + method: Method extends string ? Uppercase : never; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; + data: ExtractRequestBody; + }; + response: ExtractOctokitResponse; +}; +type ReadOnlyMethods = "get" | "head"; +type SuccessStatuses = 200 | 201 | 202 | 204 | 205; +type RedirectStatuses = 301 | 302; +type EmptyResponseStatuses = 201 | 204 | 205; +type KnownJsonResponseTypes = "application/json" | "application/octocat-stream" | "application/scim+json" | "text/html" | "text/plain"; +type SuccessResponseDataType = { + [K in SuccessStatuses & keyof Responses]: GetContentKeyIfPresent extends never ? never : OctokitResponse, K>; +}[SuccessStatuses & keyof Responses]; +type RedirectResponseDataType = { + [K in RedirectStatuses & keyof Responses]: OctokitResponse; +}[RedirectStatuses & keyof Responses]; +type EmptyResponseDataType = { + [K in EmptyResponseStatuses & keyof Responses]: OctokitResponse; +}[EmptyResponseStatuses & keyof Responses]; +type GetContentKeyIfPresent = "content" extends keyof T ? DataType : DataType; +type DataType = { + [K in KnownJsonResponseTypes & keyof T]: T[K]; +}[KnownJsonResponseTypes & keyof T]; +type ExtractOctokitResponse = "responses" extends keyof R ? SuccessResponseDataType extends never ? RedirectResponseDataType extends never ? EmptyResponseDataType : RedirectResponseDataType : SuccessResponseDataType : unknown; +export interface Endpoints { + /** + * @see https://docs.github.com/rest/apps/apps#delete-an-installation-for-the-authenticated-app + */ + "DELETE /app/installations/{installation_id}": Operation<"/app/installations/{installation_id}", "delete">; + /** + * @see https://docs.github.com/rest/apps/apps#unsuspend-an-app-installation + */ + "DELETE /app/installations/{installation_id}/suspended": Operation<"/app/installations/{installation_id}/suspended", "delete">; + /** + * @see https://docs.github.com/rest/apps/oauth-applications#delete-an-app-authorization + */ + "DELETE /applications/{client_id}/grant": Operation<"/applications/{client_id}/grant", "delete">; + /** + * @see https://docs.github.com/rest/apps/oauth-applications#delete-an-app-token + */ + "DELETE /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "delete">; + /** + * @see https://docs.github.com/rest/gists/gists#delete-a-gist + */ + "DELETE /gists/{gist_id}": Operation<"/gists/{gist_id}", "delete">; + /** + * @see https://docs.github.com/rest/gists/comments#delete-a-gist-comment + */ + "DELETE /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/gists/gists#unstar-a-gist + */ + "DELETE /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "delete">; + /** + * @see https://docs.github.com/rest/apps/installations#revoke-an-installation-access-token + */ + "DELETE /installation/token": Operation<"/installation/token", "delete">; + /** + * @see https://docs.github.com/rest/activity/notifications#mark-a-thread-as-done + */ + "DELETE /notifications/threads/{thread_id}": Operation<"/notifications/threads/{thread_id}", "delete">; + /** + * @see https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription + */ + "DELETE /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "delete">; + /** + * @see https://docs.github.com/rest/orgs/orgs#delete-an-organization + */ + "DELETE /orgs/{org}": Operation<"/orgs/{org}", "delete">; + /** + * @see https://docs.github.com/rest/actions/permissions#disable-a-selected-repository-for-github-actions-in-an-organization + */ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}": Operation<"/orgs/{org}/actions/permissions/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#delete-a-self-hosted-runner-from-an-organization + */ + "DELETE /orgs/{org}/actions/runners/{runner_id}": Operation<"/orgs/{org}/actions/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#remove-all-custom-labels-from-a-self-hosted-runner-for-an-organization + */ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#remove-a-custom-label-from-a-self-hosted-runner-for-an-organization + */ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/secrets#delete-an-organization-secret + */ + "DELETE /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/secrets#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/variables#delete-an-organization-variable + */ + "DELETE /orgs/{org}/actions/variables/{name}": Operation<"/orgs/{org}/actions/variables/{name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/variables#remove-selected-repository-from-an-organization-variable + */ + "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/variables/{name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/blocking#unblock-a-user-from-an-organization + */ + "DELETE /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#remove-users-from-codespaces-access-for-an-organization + */ + "DELETE /orgs/{org}/codespaces/access/selected_users": Operation<"/orgs/{org}/codespaces/access/selected_users", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#delete-an-organization-secret + */ + "DELETE /orgs/{org}/codespaces/secrets/{secret_name}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#remove-teams-from-the-copilot-subscription-for-an-organization + */ + "DELETE /orgs/{org}/copilot/billing/selected_teams": Operation<"/orgs/{org}/copilot/billing/selected_teams", "delete">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#remove-users-from-the-copilot-subscription-for-an-organization + */ + "DELETE /orgs/{org}/copilot/billing/selected_users": Operation<"/orgs/{org}/copilot/billing/selected_users", "delete">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#delete-an-organization-secret + */ + "DELETE /orgs/{org}/dependabot/secrets/{secret_name}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#delete-an-organization-webhook + */ + "DELETE /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "delete">; + /** + * @see https://docs.github.com/rest/interactions/orgs#remove-interaction-restrictions-for-an-organization + */ + "DELETE /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/orgs/members#cancel-an-organization-invitation + */ + "DELETE /orgs/{org}/invitations/{invitation_id}": Operation<"/orgs/{org}/invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/members#remove-an-organization-member + */ + "DELETE /orgs/{org}/members/{username}": Operation<"/orgs/{org}/members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#delete-a-codespace-from-the-organization + */ + "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}": Operation<"/orgs/{org}/members/{username}/codespaces/{codespace_name}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/members#remove-organization-membership-for-a-user + */ + "DELETE /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/rest/migrations/orgs#delete-an-organization-migration-archive + */ + "DELETE /orgs/{org}/migrations/{migration_id}/archive": Operation<"/orgs/{org}/migrations/{migration_id}/archive", "delete">; + /** + * @see https://docs.github.com/rest/migrations/orgs#unlock-an-organization-repository + */ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": Operation<"/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-team + */ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}": Operation<"/orgs/{org}/organization-roles/teams/{team_slug}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-team + */ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}": Operation<"/orgs/{org}/organization-roles/teams/{team_slug}/{role_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-user + */ + "DELETE /orgs/{org}/organization-roles/users/{username}": Operation<"/orgs/{org}/organization-roles/users/{username}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-user + */ + "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}": Operation<"/orgs/{org}/organization-roles/users/{username}/{role_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#delete-a-custom-organization-role + */ + "DELETE /orgs/{org}/organization-roles/{role_id}": Operation<"/orgs/{org}/organization-roles/{role_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization + */ + "DELETE /orgs/{org}/outside_collaborators/{username}": Operation<"/orgs/{org}/outside_collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-a-package-for-an-organization + */ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-package-version-for-an-organization + */ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#remove-a-custom-property-for-an-organization + */ + "DELETE /orgs/{org}/properties/schema/{custom_property_name}": Operation<"/orgs/{org}/properties/schema/{custom_property_name}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/members#remove-public-organization-membership-for-the-authenticated-user + */ + "DELETE /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/rules#delete-an-organization-repository-ruleset + */ + "DELETE /orgs/{org}/rulesets/{ruleset_id}": Operation<"/orgs/{org}/rulesets/{ruleset_id}", "delete">; + /** + * @see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team + */ + "DELETE /orgs/{org}/security-managers/teams/{team_slug}": Operation<"/orgs/{org}/security-managers/teams/{team_slug}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#delete-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "delete">; + /** + * @see https://docs.github.com/rest/teams/discussions#delete-a-discussion + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "delete">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#delete-a-discussion-comment + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-team-discussion-comment-reaction + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-team-discussion-reaction + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user + */ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#remove-a-project-from-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/projects/cards#delete-a-project-card + */ + "DELETE /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "delete">; + /** + * @see https://docs.github.com/rest/projects/columns#delete-a-project-column + */ + "DELETE /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "delete">; + /** + * @see https://docs.github.com/rest/projects/projects#delete-a-project + */ + "DELETE /projects/{project_id}": Operation<"/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/rest/projects/collaborators#remove-user-as-a-collaborator + */ + "DELETE /projects/{project_id}/collaborators/{username}": Operation<"/projects/{project_id}/collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/repos/repos#delete-a-repository + */ + "DELETE /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/actions/artifacts#delete-an-artifact + */ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/cache#delete-a-github-actions-cache-for-a-repository-using-a-cache-id + */ + "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}": Operation<"/repos/{owner}/{repo}/actions/caches/{cache_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/cache#delete-github-actions-caches-for-a-repository-using-a-cache-key + */ + "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}": Operation<"/repos/{owner}/{repo}/actions/caches", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#delete-a-self-hosted-runner-from-a-repository + */ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#remove-all-custom-labels-from-a-self-hosted-runner-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "delete">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#remove-a-custom-label-from-a-self-hosted-runner-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#delete-a-workflow-run + */ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#delete-workflow-run-logs + */ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/logs", "delete">; + /** + * @see https://docs.github.com/rest/actions/secrets#delete-a-repository-secret + */ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/variables#delete-a-repository-variable + */ + "DELETE /repos/{owner}/{repo}/actions/variables/{name}": Operation<"/repos/{owner}/{repo}/actions/variables/{name}", "delete">; + /** + * @see https://docs.github.com/rest/repos/autolinks#delete-an-autolink-reference-from-a-repository + */ + "DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}": Operation<"/repos/{owner}/{repo}/autolinks/{autolink_id}", "delete">; + /** + * @see https://docs.github.com/rest/repos/repos#disable-automated-security-fixes + */ + "DELETE /repos/{owner}/{repo}/automated-security-fixes": Operation<"/repos/{owner}/{repo}/automated-security-fixes", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-branch-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-admin-branch-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-pull-request-review-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-commit-signature-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-status-check-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-status-check-contexts + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#delete-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-app-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-team-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "delete">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#remove-user-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "delete">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#delete-a-code-scanning-analysis-from-a-repository + */ + "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}": Operation<"/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#delete-a-repository-secret + */ + "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/codespaces/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#remove-a-repository-collaborator + */ + "DELETE /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/commits/comments#delete-a-commit-comment + */ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-a-commit-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/repos/contents#delete-a-file + */ + "DELETE /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "delete">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#delete-a-repository-secret + */ + "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/deployments/deployments#delete-a-deployment + */ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}", "delete">; + /** + * @see https://docs.github.com/rest/deployments/environments#delete-an-environment + */ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}", "delete">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#delete-a-deployment-branch-policy + */ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}", "delete">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#disable-a-custom-protection-rule-for-an-environment + */ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/secrets#delete-an-environment-secret + */ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/actions/variables#delete-an-environment-variable + */ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/variables/{name}", "delete">; + /** + * @see https://docs.github.com/rest/git/refs#delete-a-reference + */ + "DELETE /repos/{owner}/{repo}/git/refs/{ref}": Operation<"/repos/{owner}/{repo}/git/refs/{ref}", "delete">; + /** + * @see https://docs.github.com/rest/repos/webhooks#delete-a-repository-webhook + */ + "DELETE /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "delete">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#cancel-an-import + */ + "DELETE /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "delete">; + /** + * @see https://docs.github.com/rest/interactions/repos#remove-interaction-restrictions-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#delete-a-repository-invitation + */ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}": Operation<"/repos/{owner}/{repo}/invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/issues/comments#delete-an-issue-comment + */ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-an-issue-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#remove-assignees-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/assignees", "delete">; + /** + * @see https://docs.github.com/rest/issues/labels#remove-all-labels-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "delete">; + /** + * @see https://docs.github.com/rest/issues/labels#remove-a-label-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/issues/issues#unlock-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/lock", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-an-issue-reaction + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/deploy-keys/deploy-keys#delete-a-deploy-key + */ + "DELETE /repos/{owner}/{repo}/keys/{key_id}": Operation<"/repos/{owner}/{repo}/keys/{key_id}", "delete">; + /** + * @see https://docs.github.com/rest/issues/labels#delete-a-label + */ + "DELETE /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/issues/milestones#delete-a-milestone + */ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "delete">; + /** + * @see https://docs.github.com/rest/pages/pages#delete-a-apiname-pages-site + */ + "DELETE /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "delete">; + /** + * @see https://docs.github.com/rest/repos/repos#disable-private-vulnerability-reporting-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting": Operation<"/repos/{owner}/{repo}/private-vulnerability-reporting", "delete">; + /** + * @see https://docs.github.com/rest/pulls/comments#delete-a-review-comment-for-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-a-pull-request-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/pulls/review-requests#remove-requested-reviewers-from-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "delete">; + /** + * @see https://docs.github.com/rest/pulls/reviews#delete-a-pending-review-for-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "delete">; + /** + * @see https://docs.github.com/rest/releases/assets#delete-a-release-asset + */ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "delete">; + /** + * @see https://docs.github.com/rest/releases/releases#delete-a-release + */ + "DELETE /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "delete">; + /** + * @see https://docs.github.com/rest/reactions/reactions#delete-a-release-reaction + */ + "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/repos/rules#delete-a-repository-ruleset + */ + "DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}": Operation<"/repos/{owner}/{repo}/rulesets/{ruleset_id}", "delete">; + /** + * @see https://docs.github.com/rest/activity/watching#delete-a-repository-subscription + */ + "DELETE /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "delete">; + /** + * @see https://docs.github.com/rest/repos/tags#delete-a-tag-protection-state-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}": Operation<"/repos/{owner}/{repo}/tags/protection/{tag_protection_id}", "delete">; + /** + * @see https://docs.github.com/rest/repos/repos#disable-vulnerability-alerts + */ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#delete-a-team-legacy + */ + "DELETE /teams/{team_id}": Operation<"/teams/{team_id}", "delete">; + /** + * @see https://docs.github.com/rest/teams/discussions#delete-a-discussion-legacy + */ + "DELETE /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "delete">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#delete-a-discussion-comment-legacy + */ + "DELETE /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "delete">; + /** + * @see https://docs.github.com/rest/teams/members#remove-team-member-legacy + */ + "DELETE /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user-legacy + */ + "DELETE /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#remove-a-project-from-a-team-legacy + */ + "DELETE /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team-legacy + */ + "DELETE /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/users/blocking#unblock-a-user + */ + "DELETE /user/blocks/{username}": Operation<"/user/blocks/{username}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#delete-a-secret-for-the-authenticated-user + */ + "DELETE /user/codespaces/secrets/{secret_name}": Operation<"/user/codespaces/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret + */ + "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/user/codespaces/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#delete-a-codespace-for-the-authenticated-user + */ + "DELETE /user/codespaces/{codespace_name}": Operation<"/user/codespaces/{codespace_name}", "delete">; + /** + * @see https://docs.github.com/rest/users/emails#delete-an-email-address-for-the-authenticated-user + */ + "DELETE /user/emails": Operation<"/user/emails", "delete">; + /** + * @see https://docs.github.com/rest/users/followers#unfollow-a-user + */ + "DELETE /user/following/{username}": Operation<"/user/following/{username}", "delete">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#delete-a-gpg-key-for-the-authenticated-user + */ + "DELETE /user/gpg_keys/{gpg_key_id}": Operation<"/user/gpg_keys/{gpg_key_id}", "delete">; + /** + * @see https://docs.github.com/rest/apps/installations#remove-a-repository-from-an-app-installation + */ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}": Operation<"/user/installations/{installation_id}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/interactions/user#remove-interaction-restrictions-from-your-public-repositories + */ + "DELETE /user/interaction-limits": Operation<"/user/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/users/keys#delete-a-public-ssh-key-for-the-authenticated-user + */ + "DELETE /user/keys/{key_id}": Operation<"/user/keys/{key_id}", "delete">; + /** + * @see https://docs.github.com/rest/migrations/users#delete-a-user-migration-archive + */ + "DELETE /user/migrations/{migration_id}/archive": Operation<"/user/migrations/{migration_id}/archive", "delete">; + /** + * @see https://docs.github.com/rest/migrations/users#unlock-a-user-repository + */ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock": Operation<"/user/migrations/{migration_id}/repos/{repo_name}/lock", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-a-package-for-the-authenticated-user + */ + "DELETE /user/packages/{package_type}/{package_name}": Operation<"/user/packages/{package_type}/{package_name}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-a-package-version-for-the-authenticated-user + */ + "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/user/packages/{package_type}/{package_name}/versions/{package_version_id}", "delete">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#decline-a-repository-invitation + */ + "DELETE /user/repository_invitations/{invitation_id}": Operation<"/user/repository_invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/users/social-accounts#delete-social-accounts-for-the-authenticated-user + */ + "DELETE /user/social_accounts": Operation<"/user/social_accounts", "delete">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#delete-an-ssh-signing-key-for-the-authenticated-user + */ + "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}": Operation<"/user/ssh_signing_keys/{ssh_signing_key_id}", "delete">; + /** + * @see https://docs.github.com/rest/activity/starring#unstar-a-repository-for-the-authenticated-user + */ + "DELETE /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-a-package-for-a-user + */ + "DELETE /users/{username}/packages/{package_type}/{package_name}": Operation<"/users/{username}/packages/{package_type}/{package_name}", "delete">; + /** + * @see https://docs.github.com/rest/packages/packages#delete-package-version-for-a-user + */ + "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}", "delete">; + /** + * @see https://docs.github.com/rest/meta/meta#github-api-root + */ + "GET /": Operation<"/", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/global-advisories#list-global-security-advisories + */ + "GET /advisories": Operation<"/advisories", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/global-advisories#get-a-global-security-advisory + */ + "GET /advisories/{ghsa_id}": Operation<"/advisories/{ghsa_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-the-authenticated-app + */ + "GET /app": Operation<"/app", "get">; + /** + * @see https://docs.github.com/rest/apps/webhooks#get-a-webhook-configuration-for-an-app + */ + "GET /app/hook/config": Operation<"/app/hook/config", "get">; + /** + * @see https://docs.github.com/rest/apps/webhooks#list-deliveries-for-an-app-webhook + */ + "GET /app/hook/deliveries": Operation<"/app/hook/deliveries", "get">; + /** + * @see https://docs.github.com/rest/apps/webhooks#get-a-delivery-for-an-app-webhook + */ + "GET /app/hook/deliveries/{delivery_id}": Operation<"/app/hook/deliveries/{delivery_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#list-installation-requests-for-the-authenticated-app + */ + "GET /app/installation-requests": Operation<"/app/installation-requests", "get">; + /** + * @see https://docs.github.com/enterprise-server@3.9/rest/apps/apps#list-installations-for-the-authenticated-app + */ + "GET /app/installations": Operation<"/app/installations", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-an-installation-for-the-authenticated-app + */ + "GET /app/installations/{installation_id}": Operation<"/app/installations/{installation_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-an-app + */ + "GET /apps/{app_slug}": Operation<"/apps/{app_slug}", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#get-an-assignment + */ + "GET /assignments/{assignment_id}": Operation<"/assignments/{assignment_id}", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#list-accepted-assignments-for-an-assignment + */ + "GET /assignments/{assignment_id}/accepted_assignments": Operation<"/assignments/{assignment_id}/accepted_assignments", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#get-assignment-grades + */ + "GET /assignments/{assignment_id}/grades": Operation<"/assignments/{assignment_id}/grades", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#list-classrooms + */ + "GET /classrooms": Operation<"/classrooms", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#get-a-classroom + */ + "GET /classrooms/{classroom_id}": Operation<"/classrooms/{classroom_id}", "get">; + /** + * @see https://docs.github.com/rest/classroom/classroom#list-assignments-for-a-classroom + */ + "GET /classrooms/{classroom_id}/assignments": Operation<"/classrooms/{classroom_id}/assignments", "get">; + /** + * @see https://docs.github.com/rest/codes-of-conduct/codes-of-conduct#get-all-codes-of-conduct + */ + "GET /codes_of_conduct": Operation<"/codes_of_conduct", "get">; + /** + * @see https://docs.github.com/rest/codes-of-conduct/codes-of-conduct#get-a-code-of-conduct + */ + "GET /codes_of_conduct/{key}": Operation<"/codes_of_conduct/{key}", "get">; + /** + * @see https://docs.github.com/rest/emojis/emojis#get-emojis + */ + "GET /emojis": Operation<"/emojis", "get">; + /** + * @see https://docs.github.com/rest/copilot/copilot-usage#get-a-summary-of-copilot-usage-for-enterprise-members + */ + "GET /enterprises/{enterprise}/copilot/usage": Operation<"/enterprises/{enterprise}/copilot/usage", "get">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-enterprise + */ + "GET /enterprises/{enterprise}/dependabot/alerts": Operation<"/enterprises/{enterprise}/dependabot/alerts", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-an-enterprise + */ + "GET /enterprises/{enterprise}/secret-scanning/alerts": Operation<"/enterprises/{enterprise}/secret-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events + */ + "GET /events": Operation<"/events", "get">; + /** + * @see https://docs.github.com/rest/activity/feeds#get-feeds + */ + "GET /feeds": Operation<"/feeds", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-gists-for-the-authenticated-user + */ + "GET /gists": Operation<"/gists", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-public-gists + */ + "GET /gists/public": Operation<"/gists/public", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-starred-gists + */ + "GET /gists/starred": Operation<"/gists/starred", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#get-a-gist + */ + "GET /gists/{gist_id}": Operation<"/gists/{gist_id}", "get">; + /** + * @see https://docs.github.com/rest/gists/comments#list-gist-comments + */ + "GET /gists/{gist_id}/comments": Operation<"/gists/{gist_id}/comments", "get">; + /** + * @see https://docs.github.com/rest/gists/comments#get-a-gist-comment + */ + "GET /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-gist-commits + */ + "GET /gists/{gist_id}/commits": Operation<"/gists/{gist_id}/commits", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-gist-forks + */ + "GET /gists/{gist_id}/forks": Operation<"/gists/{gist_id}/forks", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#check-if-a-gist-is-starred + */ + "GET /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#get-a-gist-revision + */ + "GET /gists/{gist_id}/{sha}": Operation<"/gists/{gist_id}/{sha}", "get">; + /** + * @see https://docs.github.com/rest/gitignore/gitignore#get-all-gitignore-templates + */ + "GET /gitignore/templates": Operation<"/gitignore/templates", "get">; + /** + * @see https://docs.github.com/rest/gitignore/gitignore#get-a-gitignore-template + */ + "GET /gitignore/templates/{name}": Operation<"/gitignore/templates/{name}", "get">; + /** + * @see https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-app-installation + */ + "GET /installation/repositories": Operation<"/installation/repositories", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#list-issues-assigned-to-the-authenticated-user + */ + "GET /issues": Operation<"/issues", "get">; + /** + * @see https://docs.github.com/rest/licenses/licenses#get-all-commonly-used-licenses + */ + "GET /licenses": Operation<"/licenses", "get">; + /** + * @see https://docs.github.com/rest/licenses/licenses#get-a-license + */ + "GET /licenses/{license}": Operation<"/licenses/{license}", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#get-a-subscription-plan-for-an-account + */ + "GET /marketplace_listing/accounts/{account_id}": Operation<"/marketplace_listing/accounts/{account_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-plans + */ + "GET /marketplace_listing/plans": Operation<"/marketplace_listing/plans", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan + */ + "GET /marketplace_listing/plans/{plan_id}/accounts": Operation<"/marketplace_listing/plans/{plan_id}/accounts", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#get-a-subscription-plan-for-an-account-stubbed + */ + "GET /marketplace_listing/stubbed/accounts/{account_id}": Operation<"/marketplace_listing/stubbed/accounts/{account_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-plans-stubbed + */ + "GET /marketplace_listing/stubbed/plans": Operation<"/marketplace_listing/stubbed/plans", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan-stubbed + */ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts": Operation<"/marketplace_listing/stubbed/plans/{plan_id}/accounts", "get">; + /** + * @see https://docs.github.com/rest/meta/meta#get-apiname-meta-information + */ + "GET /meta": Operation<"/meta", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events-for-a-network-of-repositories + */ + "GET /networks/{owner}/{repo}/events": Operation<"/networks/{owner}/{repo}/events", "get">; + /** + * @see https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user + */ + "GET /notifications": Operation<"/notifications", "get">; + /** + * @see https://docs.github.com/rest/activity/notifications#get-a-thread + */ + "GET /notifications/threads/{thread_id}": Operation<"/notifications/threads/{thread_id}", "get">; + /** + * @see https://docs.github.com/rest/activity/notifications#get-a-thread-subscription-for-the-authenticated-user + */ + "GET /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "get">; + /** + * @see https://docs.github.com/rest/meta/meta#get-octocat + */ + "GET /octocat": Operation<"/octocat", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-organizations + */ + "GET /organizations": Operation<"/organizations", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-the-organization + * @deprecated "org_id" is now "org" + */ + "GET /orgs/{org_id}/codespaces": Operation<"/orgs/{org}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#get-an-organization + */ + "GET /orgs/{org}": Operation<"/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/actions/cache#get-github-actions-cache-usage-for-an-organization + */ + "GET /orgs/{org}/actions/cache/usage": Operation<"/orgs/{org}/actions/cache/usage", "get">; + /** + * @see https://docs.github.com/rest/actions/cache#list-repositories-with-github-actions-cache-usage-for-an-organization + */ + "GET /orgs/{org}/actions/cache/usage-by-repository": Operation<"/orgs/{org}/actions/cache/usage-by-repository", "get">; + /** + * @see https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-an-organization + */ + "GET /orgs/{org}/actions/oidc/customization/sub": Operation<"/orgs/{org}/actions/oidc/customization/sub", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-github-actions-permissions-for-an-organization + */ + "GET /orgs/{org}/actions/permissions": Operation<"/orgs/{org}/actions/permissions", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#list-selected-repositories-enabled-for-github-actions-in-an-organization + */ + "GET /orgs/{org}/actions/permissions/repositories": Operation<"/orgs/{org}/actions/permissions/repositories", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-an-organization + */ + "GET /orgs/{org}/actions/permissions/selected-actions": Operation<"/orgs/{org}/actions/permissions/selected-actions", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-default-workflow-permissions-for-an-organization + */ + "GET /orgs/{org}/actions/permissions/workflow": Operation<"/orgs/{org}/actions/permissions/workflow", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-self-hosted-runners-for-an-organization + */ + "GET /orgs/{org}/actions/runners": Operation<"/orgs/{org}/actions/runners", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-runner-applications-for-an-organization + */ + "GET /orgs/{org}/actions/runners/downloads": Operation<"/orgs/{org}/actions/runners/downloads", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#get-a-self-hosted-runner-for-an-organization + */ + "GET /orgs/{org}/actions/runners/{runner_id}": Operation<"/orgs/{org}/actions/runners/{runner_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-labels-for-a-self-hosted-runner-for-an-organization + */ + "GET /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-organization-secrets + */ + "GET /orgs/{org}/actions/secrets": Operation<"/orgs/{org}/actions/secrets", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-an-organization-public-key + */ + "GET /orgs/{org}/actions/secrets/public-key": Operation<"/orgs/{org}/actions/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-an-organization-secret + */ + "GET /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-organization-variables + */ + "GET /orgs/{org}/actions/variables": Operation<"/orgs/{org}/actions/variables", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#get-an-organization-variable + */ + "GET /orgs/{org}/actions/variables/{name}": Operation<"/orgs/{org}/actions/variables/{name}", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-selected-repositories-for-an-organization-variable + */ + "GET /orgs/{org}/actions/variables/{name}/repositories": Operation<"/orgs/{org}/actions/variables/{name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/orgs/blocking#list-users-blocked-by-an-organization + */ + "GET /orgs/{org}/blocks": Operation<"/orgs/{org}/blocks", "get">; + /** + * @see https://docs.github.com/rest/orgs/blocking#check-if-a-user-is-blocked-by-an-organization + */ + "GET /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-an-organization + */ + "GET /orgs/{org}/code-scanning/alerts": Operation<"/orgs/{org}/code-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-the-organization + */ + "GET /orgs/{org}/codespaces": Operation<"/orgs/{org}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#list-organization-secrets + */ + "GET /orgs/{org}/codespaces/secrets": Operation<"/orgs/{org}/codespaces/secrets", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-public-key + */ + "GET /orgs/{org}/codespaces/secrets/public-key": Operation<"/orgs/{org}/codespaces/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-secret + */ + "GET /orgs/{org}/codespaces/secrets/{secret_name}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-information-and-settings-for-an-organization + */ + "GET /orgs/{org}/copilot/billing": Operation<"/orgs/{org}/copilot/billing", "get">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization + */ + "GET /orgs/{org}/copilot/billing/seats": Operation<"/orgs/{org}/copilot/billing/seats", "get">; + /** + * @see https://docs.github.com/rest/copilot/copilot-usage#get-a-summary-of-copilot-usage-for-organization-members + */ + "GET /orgs/{org}/copilot/usage": Operation<"/orgs/{org}/copilot/usage", "get">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-organization + */ + "GET /orgs/{org}/dependabot/alerts": Operation<"/orgs/{org}/dependabot/alerts", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#list-organization-secrets + */ + "GET /orgs/{org}/dependabot/secrets": Operation<"/orgs/{org}/dependabot/secrets", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#get-an-organization-public-key + */ + "GET /orgs/{org}/dependabot/secrets/public-key": Operation<"/orgs/{org}/dependabot/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#get-an-organization-secret + */ + "GET /orgs/{org}/dependabot/secrets/{secret_name}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-organization + */ + "GET /orgs/{org}/docker/conflicts": Operation<"/orgs/{org}/docker/conflicts", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-organization-events + */ + "GET /orgs/{org}/events": Operation<"/orgs/{org}/events", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-failed-organization-invitations + */ + "GET /orgs/{org}/failed_invitations": Operation<"/orgs/{org}/failed_invitations", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#list-organization-webhooks + */ + "GET /orgs/{org}/hooks": Operation<"/orgs/{org}/hooks", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#get-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization + */ + "GET /orgs/{org}/hooks/{hook_id}/config": Operation<"/orgs/{org}/hooks/{hook_id}/config", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#list-deliveries-for-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}/deliveries": Operation<"/orgs/{org}/hooks/{hook_id}/deliveries", "get">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#get-a-webhook-delivery-for-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}": Operation<"/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-an-organization-installation-for-the-authenticated-app + */ + "GET /orgs/{org}/installation": Operation<"/orgs/{org}/installation", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-app-installations-for-an-organization + */ + "GET /orgs/{org}/installations": Operation<"/orgs/{org}/installations", "get">; + /** + * @see https://docs.github.com/rest/interactions/orgs#get-interaction-restrictions-for-an-organization + */ + "GET /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-pending-organization-invitations + */ + "GET /orgs/{org}/invitations": Operation<"/orgs/{org}/invitations", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-organization-invitation-teams + */ + "GET /orgs/{org}/invitations/{invitation_id}/teams": Operation<"/orgs/{org}/invitations/{invitation_id}/teams", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#list-organization-issues-assigned-to-the-authenticated-user + */ + "GET /orgs/{org}/issues": Operation<"/orgs/{org}/issues", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-organization-members + */ + "GET /orgs/{org}/members": Operation<"/orgs/{org}/members", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user + */ + "GET /orgs/{org}/members/{username}": Operation<"/orgs/{org}/members/{username}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-a-user-in-organization + */ + "GET /orgs/{org}/members/{username}/codespaces": Operation<"/orgs/{org}/members/{username}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-assignment-details-for-a-user + */ + "GET /orgs/{org}/members/{username}/copilot": Operation<"/orgs/{org}/members/{username}/copilot", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user + */ + "GET /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/rest/migrations/orgs#list-organization-migrations + */ + "GET /orgs/{org}/migrations": Operation<"/orgs/{org}/migrations", "get">; + /** + * @see https://docs.github.com/rest/migrations/orgs#get-an-organization-migration-status + */ + "GET /orgs/{org}/migrations/{migration_id}": Operation<"/orgs/{org}/migrations/{migration_id}", "get">; + /** + * @see https://docs.github.com/rest/migrations/orgs#download-an-organization-migration-archive + */ + "GET /orgs/{org}/migrations/{migration_id}/archive": Operation<"/orgs/{org}/migrations/{migration_id}/archive", "get">; + /** + * @see https://docs.github.com/rest/migrations/orgs#list-repositories-in-an-organization-migration + */ + "GET /orgs/{org}/migrations/{migration_id}/repositories": Operation<"/orgs/{org}/migrations/{migration_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#list-organization-fine-grained-permissions-for-an-organization + */ + "GET /orgs/{org}/organization-fine-grained-permissions": Operation<"/orgs/{org}/organization-fine-grained-permissions", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#get-all-organization-roles-for-an-organization + */ + "GET /orgs/{org}/organization-roles": Operation<"/orgs/{org}/organization-roles", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#get-an-organization-role + */ + "GET /orgs/{org}/organization-roles/{role_id}": Operation<"/orgs/{org}/organization-roles/{role_id}", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#list-teams-that-are-assigned-to-an-organization-role + */ + "GET /orgs/{org}/organization-roles/{role_id}/teams": Operation<"/orgs/{org}/organization-roles/{role_id}/teams", "get">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#list-users-that-are-assigned-to-an-organization-role + */ + "GET /orgs/{org}/organization-roles/{role_id}/users": Operation<"/orgs/{org}/organization-roles/{role_id}/users", "get">; + /** + * @see https://docs.github.com/rest/orgs/outside-collaborators#list-outside-collaborators-for-an-organization + */ + "GET /orgs/{org}/outside_collaborators": Operation<"/orgs/{org}/outside_collaborators", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-packages-for-an-organization + */ + "GET /orgs/{org}/packages": Operation<"/orgs/{org}/packages", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-for-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-version-for-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", "get">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens + */ + "GET /orgs/{org}/personal-access-token-requests": Operation<"/orgs/{org}/personal-access-token-requests", "get">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-requested-to-be-accessed-by-a-fine-grained-personal-access-token + */ + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories": Operation<"/orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-fine-grained-personal-access-tokens-with-access-to-organization-resources + */ + "GET /orgs/{org}/personal-access-tokens": Operation<"/orgs/{org}/personal-access-tokens", "get">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-a-fine-grained-personal-access-token-has-access-to + */ + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories": Operation<"/orgs/{org}/personal-access-tokens/{pat_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/projects/projects#list-organization-projects + */ + "GET /orgs/{org}/projects": Operation<"/orgs/{org}/projects", "get">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#get-all-custom-properties-for-an-organization + */ + "GET /orgs/{org}/properties/schema": Operation<"/orgs/{org}/properties/schema", "get">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#get-a-custom-property-for-an-organization + */ + "GET /orgs/{org}/properties/schema/{custom_property_name}": Operation<"/orgs/{org}/properties/schema/{custom_property_name}", "get">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#list-custom-property-values-for-organization-repositories + */ + "GET /orgs/{org}/properties/values": Operation<"/orgs/{org}/properties/values", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-public-organization-members + */ + "GET /orgs/{org}/public_members": Operation<"/orgs/{org}/public_members", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#check-public-organization-membership-for-a-user + */ + "GET /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-organization-repositories + */ + "GET /orgs/{org}/repos": Operation<"/orgs/{org}/repos", "get">; + /** + * @see https://docs.github.com/rest/orgs/rules#get-all-organization-repository-rulesets + */ + "GET /orgs/{org}/rulesets": Operation<"/orgs/{org}/rulesets", "get">; + /** + * @see https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites + */ + "GET /orgs/{org}/rulesets/rule-suites": Operation<"/orgs/{org}/rulesets/rule-suites", "get">; + /** + * @see https://docs.github.com/rest/orgs/rule-suites#get-an-organization-rule-suite + */ + "GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}": Operation<"/orgs/{org}/rulesets/rule-suites/{rule_suite_id}", "get">; + /** + * @see https://docs.github.com/rest/orgs/rules#get-an-organization-repository-ruleset + */ + "GET /orgs/{org}/rulesets/{ruleset_id}": Operation<"/orgs/{org}/rulesets/{ruleset_id}", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-an-organization + */ + "GET /orgs/{org}/secret-scanning/alerts": Operation<"/orgs/{org}/secret-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories-for-an-organization + */ + "GET /orgs/{org}/security-advisories": Operation<"/orgs/{org}/security-advisories", "get">; + /** + * @see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams + */ + "GET /orgs/{org}/security-managers": Operation<"/orgs/{org}/security-managers", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-github-actions-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/actions": Operation<"/orgs/{org}/settings/billing/actions", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-github-packages-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/packages": Operation<"/orgs/{org}/settings/billing/packages", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-shared-storage-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/shared-storage": Operation<"/orgs/{org}/settings/billing/shared-storage", "get">; + /** + * @see https://docs.github.com/rest/copilot/copilot-usage#get-a-summary-of-copilot-usage-for-a-team + */ + "GET /orgs/{org}/team/{team_slug}/copilot/usage": Operation<"/orgs/{org}/team/{team_slug}/copilot/usage", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-teams + */ + "GET /orgs/{org}/teams": Operation<"/orgs/{org}/teams", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#get-a-team-by-name + */ + "GET /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "get">; + /** + * @see https://docs.github.com/rest/teams/discussions#list-discussions + */ + "GET /orgs/{org}/teams/{team_slug}/discussions": Operation<"/orgs/{org}/teams/{team_slug}/discussions", "get">; + /** + * @see https://docs.github.com/rest/teams/discussions#get-a-discussion + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "get">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/teams/members#list-pending-team-invitations + */ + "GET /orgs/{org}/teams/{team_slug}/invitations": Operation<"/orgs/{org}/teams/{team_slug}/invitations", "get">; + /** + * @see https://docs.github.com/rest/teams/members#list-team-members + */ + "GET /orgs/{org}/teams/{team_slug}/members": Operation<"/orgs/{org}/teams/{team_slug}/members", "get">; + /** + * @see https://docs.github.com/rest/teams/members#get-team-membership-for-a-user + */ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-projects + */ + "GET /orgs/{org}/teams/{team_slug}/projects": Operation<"/orgs/{org}/teams/{team_slug}/projects", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-project + */ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-repositories + */ + "GET /orgs/{org}/teams/{team_slug}/repos": Operation<"/orgs/{org}/teams/{team_slug}/repos", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository + */ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-child-teams + */ + "GET /orgs/{org}/teams/{team_slug}/teams": Operation<"/orgs/{org}/teams/{team_slug}/teams", "get">; + /** + * @see https://docs.github.com/rest/projects/cards#get-a-project-card + */ + "GET /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "get">; + /** + * @see https://docs.github.com/rest/projects/columns#get-a-project-column + */ + "GET /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "get">; + /** + * @see https://docs.github.com/rest/projects/cards#list-project-cards + */ + "GET /projects/columns/{column_id}/cards": Operation<"/projects/columns/{column_id}/cards", "get">; + /** + * @see https://docs.github.com/rest/projects/projects#get-a-project + */ + "GET /projects/{project_id}": Operation<"/projects/{project_id}", "get">; + /** + * @see https://docs.github.com/rest/projects/collaborators#list-project-collaborators + */ + "GET /projects/{project_id}/collaborators": Operation<"/projects/{project_id}/collaborators", "get">; + /** + * @see https://docs.github.com/rest/projects/collaborators#get-project-permission-for-a-user + */ + "GET /projects/{project_id}/collaborators/{username}/permission": Operation<"/projects/{project_id}/collaborators/{username}/permission", "get">; + /** + * @see https://docs.github.com/rest/projects/columns#list-project-columns + */ + "GET /projects/{project_id}/columns": Operation<"/projects/{project_id}/columns", "get">; + /** + * @see https://docs.github.com/rest/rate-limit/rate-limit#get-rate-limit-status-for-the-authenticated-user + */ + "GET /rate_limit": Operation<"/rate_limit", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#get-a-repository + */ + "GET /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/actions/artifacts#list-artifacts-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/artifacts": Operation<"/repos/{owner}/{repo}/actions/artifacts", "get">; + /** + * @see https://docs.github.com/rest/actions/artifacts#get-an-artifact + */ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/artifacts#download-an-artifact + */ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}", "get">; + /** + * @see https://docs.github.com/rest/actions/cache#get-github-actions-cache-usage-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/cache/usage": Operation<"/repos/{owner}/{repo}/actions/cache/usage", "get">; + /** + * @see https://docs.github.com/rest/actions/cache#list-github-actions-caches-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/caches": Operation<"/repos/{owner}/{repo}/actions/caches", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#get-a-job-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#download-job-logs-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}/logs", "get">; + /** + * @see https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/oidc/customization/sub": Operation<"/repos/{owner}/{repo}/actions/oidc/customization/sub", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-repository-organization-secrets + */ + "GET /repos/{owner}/{repo}/actions/organization-secrets": Operation<"/repos/{owner}/{repo}/actions/organization-secrets", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-repository-organization-variables + */ + "GET /repos/{owner}/{repo}/actions/organization-variables": Operation<"/repos/{owner}/{repo}/actions/organization-variables", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-github-actions-permissions-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions": Operation<"/repos/{owner}/{repo}/actions/permissions", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-the-level-of-access-for-workflows-outside-of-the-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions/access": Operation<"/repos/{owner}/{repo}/actions/permissions/access", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions": Operation<"/repos/{owner}/{repo}/actions/permissions/selected-actions", "get">; + /** + * @see https://docs.github.com/rest/actions/permissions#get-default-workflow-permissions-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions/workflow": Operation<"/repos/{owner}/{repo}/actions/permissions/workflow", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-self-hosted-runners-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners": Operation<"/repos/{owner}/{repo}/actions/runners", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-runner-applications-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/downloads": Operation<"/repos/{owner}/{repo}/actions/runners/downloads", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#get-a-self-hosted-runner-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#list-labels-for-a-self-hosted-runner-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runs": Operation<"/repos/{owner}/{repo}/actions/runs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-the-review-history-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/approvals", "get">; + /** + * @see https://docs.github.com/rest/actions/artifacts#list-workflow-run-artifacts + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run-attempt + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run-attempt + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-attempt-logs + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-logs + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/logs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-pending-deployments-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#get-workflow-run-usage + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/timing", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/actions/secrets": Operation<"/repos/{owner}/{repo}/actions/secrets", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-a-repository-public-key + */ + "GET /repos/{owner}/{repo}/actions/secrets/public-key": Operation<"/repos/{owner}/{repo}/actions/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-a-repository-secret + */ + "GET /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-repository-variables + */ + "GET /repos/{owner}/{repo}/actions/variables": Operation<"/repos/{owner}/{repo}/actions/variables", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#get-a-repository-variable + */ + "GET /repos/{owner}/{repo}/actions/variables/{name}": Operation<"/repos/{owner}/{repo}/actions/variables/{name}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflows#list-repository-workflows + */ + "GET /repos/{owner}/{repo}/actions/workflows": Operation<"/repos/{owner}/{repo}/actions/workflows", "get">; + /** + * @see https://docs.github.com/rest/actions/workflows#get-a-workflow + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-workflow + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "get">; + /** + * @see https://docs.github.com/rest/actions/workflows#get-workflow-usage + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-activities + */ + "GET /repos/{owner}/{repo}/activity": Operation<"/repos/{owner}/{repo}/activity", "get">; + /** + * @see https://docs.github.com/rest/issues/assignees#list-assignees + */ + "GET /repos/{owner}/{repo}/assignees": Operation<"/repos/{owner}/{repo}/assignees", "get">; + /** + * @see https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned + */ + "GET /repos/{owner}/{repo}/assignees/{assignee}": Operation<"/repos/{owner}/{repo}/assignees/{assignee}", "get">; + /** + * @see https://docs.github.com/rest/repos/autolinks#get-all-autolinks-of-a-repository + */ + "GET /repos/{owner}/{repo}/autolinks": Operation<"/repos/{owner}/{repo}/autolinks", "get">; + /** + * @see https://docs.github.com/rest/repos/autolinks#get-an-autolink-reference-of-a-repository + */ + "GET /repos/{owner}/{repo}/autolinks/{autolink_id}": Operation<"/repos/{owner}/{repo}/autolinks/{autolink_id}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#check-if-automated-security-fixes-are-enabled-for-a-repository + */ + "GET /repos/{owner}/{repo}/automated-security-fixes": Operation<"/repos/{owner}/{repo}/automated-security-fixes", "get">; + /** + * @see https://docs.github.com/rest/branches/branches#list-branches + */ + "GET /repos/{owner}/{repo}/branches": Operation<"/repos/{owner}/{repo}/branches", "get">; + /** + * @see https://docs.github.com/rest/branches/branches#get-a-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}": Operation<"/repos/{owner}/{repo}/branches/{branch}", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-branch-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-admin-branch-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-pull-request-review-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-commit-signature-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-status-checks-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-all-status-check-contexts + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-access-restrictions + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-apps-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-teams-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "get">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#get-users-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "get">; + /** + * @see https://docs.github.com/rest/checks/runs#get-a-check-run + */ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}", "get">; + /** + * @see https://docs.github.com/rest/checks/runs#list-check-run-annotations + */ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "get">; + /** + * @see https://docs.github.com/rest/checks/suites#get-a-check-suite + */ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}", "get">; + /** + * @see https://docs.github.com/rest/checks/runs#list-check-runs-in-a-check-suite + */ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "get">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-code-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts": Operation<"/repos/{owner}/{repo}/code-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-alert + * @deprecated "alert_id" is now "alert_number" + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_id}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-alert + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-instances-of-a-code-scanning-alert + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-analyses-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/analyses": Operation<"/repos/{owner}/{repo}/code-scanning/analyses", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}": Operation<"/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#list-codeql-databases-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases": Operation<"/repos/{owner}/{repo}/code-scanning/codeql/databases", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-codeql-database-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}": Operation<"/repos/{owner}/{repo}/code-scanning/codeql/databases/{language}", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-default-setup-configuration + */ + "GET /repos/{owner}/{repo}/code-scanning/default-setup": Operation<"/repos/{owner}/{repo}/code-scanning/default-setup", "get">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload + */ + "GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}": Operation<"/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-codeowners-errors + */ + "GET /repos/{owner}/{repo}/codeowners/errors": Operation<"/repos/{owner}/{repo}/codeowners/errors", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#list-codespaces-in-a-repository-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces": Operation<"/repos/{owner}/{repo}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#list-devcontainer-configurations-in-a-repository-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces/devcontainers": Operation<"/repos/{owner}/{repo}/codespaces/devcontainers", "get">; + /** + * @see https://docs.github.com/rest/codespaces/machines#list-available-machine-types-for-a-repository + */ + "GET /repos/{owner}/{repo}/codespaces/machines": Operation<"/repos/{owner}/{repo}/codespaces/machines", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#get-default-attributes-for-a-codespace + */ + "GET /repos/{owner}/{repo}/codespaces/new": Operation<"/repos/{owner}/{repo}/codespaces/new", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#check-if-permissions-defined-by-a-devcontainer-have-been-accepted-by-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces/permissions_check": Operation<"/repos/{owner}/{repo}/codespaces/permissions_check", "get">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/codespaces/secrets": Operation<"/repos/{owner}/{repo}/codespaces/secrets", "get">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-public-key + */ + "GET /repos/{owner}/{repo}/codespaces/secrets/public-key": Operation<"/repos/{owner}/{repo}/codespaces/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-secret + */ + "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/codespaces/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#list-repository-collaborators + */ + "GET /repos/{owner}/{repo}/collaborators": Operation<"/repos/{owner}/{repo}/collaborators", "get">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#check-if-a-user-is-a-repository-collaborator + */ + "GET /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "get">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#get-repository-permissions-for-a-user + */ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission": Operation<"/repos/{owner}/{repo}/collaborators/{username}/permission", "get">; + /** + * @see https://docs.github.com/rest/commits/comments#list-commit-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/comments": Operation<"/repos/{owner}/{repo}/comments", "get">; + /** + * @see https://docs.github.com/rest/commits/comments#get-a-commit-comment + */ + "GET /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-commit-comment + */ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#list-commits + */ + "GET /repos/{owner}/{repo}/commits": Operation<"/repos/{owner}/{repo}/commits", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#list-branches-for-head-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "get">; + /** + * @see https://docs.github.com/rest/commits/comments#list-commit-comments + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/comments", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#list-pull-requests-associated-with-a-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/pulls", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#get-a-commit + */ + "GET /repos/{owner}/{repo}/commits/{ref}": Operation<"/repos/{owner}/{repo}/commits/{ref}", "get">; + /** + * @see https://docs.github.com/rest/checks/runs#list-check-runs-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs": Operation<"/repos/{owner}/{repo}/commits/{ref}/check-runs", "get">; + /** + * @see https://docs.github.com/rest/checks/suites#list-check-suites-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites": Operation<"/repos/{owner}/{repo}/commits/{ref}/check-suites", "get">; + /** + * @see https://docs.github.com/rest/commits/statuses#get-the-combined-status-for-a-specific-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/status": Operation<"/repos/{owner}/{repo}/commits/{ref}/status", "get">; + /** + * @see https://docs.github.com/rest/commits/statuses#list-commit-statuses-for-a-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses": Operation<"/repos/{owner}/{repo}/commits/{ref}/statuses", "get">; + /** + * @see https://docs.github.com/rest/metrics/community#get-community-profile-metrics + */ + "GET /repos/{owner}/{repo}/community/profile": Operation<"/repos/{owner}/{repo}/community/profile", "get">; + /** + * @see https://docs.github.com/rest/commits/commits#compare-two-commits + */ + "GET /repos/{owner}/{repo}/compare/{basehead}": Operation<"/repos/{owner}/{repo}/compare/{basehead}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#compare-two-commits + */ + "GET /repos/{owner}/{repo}/compare/{base}...{head}": Operation<"/repos/{owner}/{repo}/compare/{base}...{head}", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#get-repository-content + */ + "GET /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-contributors + */ + "GET /repos/{owner}/{repo}/contributors": Operation<"/repos/{owner}/{repo}/contributors", "get">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/dependabot/alerts": Operation<"/repos/{owner}/{repo}/dependabot/alerts", "get">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#get-a-dependabot-alert + */ + "GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/dependabot/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/dependabot/secrets": Operation<"/repos/{owner}/{repo}/dependabot/secrets", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#get-a-repository-public-key + */ + "GET /repos/{owner}/{repo}/dependabot/secrets/public-key": Operation<"/repos/{owner}/{repo}/dependabot/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#get-a-repository-secret + */ + "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/dependency-graph/dependency-review#get-a-diff-of-the-dependencies-between-commits + */ + "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}": Operation<"/repos/{owner}/{repo}/dependency-graph/compare/{basehead}", "get">; + /** + * @see https://docs.github.com/rest/dependency-graph/sboms#export-a-software-bill-of-materials-sbom-for-a-repository + */ + "GET /repos/{owner}/{repo}/dependency-graph/sbom": Operation<"/repos/{owner}/{repo}/dependency-graph/sbom", "get">; + /** + * @see https://docs.github.com/rest/deployments/deployments#list-deployments + */ + "GET /repos/{owner}/{repo}/deployments": Operation<"/repos/{owner}/{repo}/deployments", "get">; + /** + * @see https://docs.github.com/rest/deployments/deployments#get-a-deployment + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}", "get">; + /** + * @see https://docs.github.com/rest/deployments/statuses#list-deployment-statuses + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "get">; + /** + * @see https://docs.github.com/rest/deployments/statuses#get-a-deployment-status + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}", "get">; + /** + * @see https://docs.github.com/rest/deployments/environments#list-environments + */ + "GET /repos/{owner}/{repo}/environments": Operation<"/repos/{owner}/{repo}/environments", "get">; + /** + * @see https://docs.github.com/rest/deployments/environments#get-an-environment + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}", "get">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#list-deployment-branch-policies + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies", "get">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#get-a-deployment-branch-policy + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}", "get">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#get-all-deployment-protection-rules-for-an-environment + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules", "get">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#list-custom-deployment-rule-integrations-available-for-an-environment + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps", "get">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#get-a-custom-deployment-protection-rule + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#list-environment-secrets + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/secrets", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-an-environment-public-key + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/actions/secrets#get-an-environment-secret + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#list-environment-variables + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/variables": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/variables", "get">; + /** + * @see https://docs.github.com/rest/actions/variables#get-an-environment-variable + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/variables/{name}", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-repository-events + */ + "GET /repos/{owner}/{repo}/events": Operation<"/repos/{owner}/{repo}/events", "get">; + /** + * @see https://docs.github.com/rest/repos/forks#list-forks + */ + "GET /repos/{owner}/{repo}/forks": Operation<"/repos/{owner}/{repo}/forks", "get">; + /** + * @see https://docs.github.com/rest/git/blobs#get-a-blob + */ + "GET /repos/{owner}/{repo}/git/blobs/{file_sha}": Operation<"/repos/{owner}/{repo}/git/blobs/{file_sha}", "get">; + /** + * @see https://docs.github.com/rest/git/commits#get-a-commit-object + */ + "GET /repos/{owner}/{repo}/git/commits/{commit_sha}": Operation<"/repos/{owner}/{repo}/git/commits/{commit_sha}", "get">; + /** + * @see https://docs.github.com/rest/git/refs#list-matching-references + */ + "GET /repos/{owner}/{repo}/git/matching-refs/{ref}": Operation<"/repos/{owner}/{repo}/git/matching-refs/{ref}", "get">; + /** + * @see https://docs.github.com/rest/git/refs#get-a-reference + */ + "GET /repos/{owner}/{repo}/git/ref/{ref}": Operation<"/repos/{owner}/{repo}/git/ref/{ref}", "get">; + /** + * @see https://docs.github.com/rest/git/tags#get-a-tag + */ + "GET /repos/{owner}/{repo}/git/tags/{tag_sha}": Operation<"/repos/{owner}/{repo}/git/tags/{tag_sha}", "get">; + /** + * @see https://docs.github.com/rest/git/trees#get-a-tree + */ + "GET /repos/{owner}/{repo}/git/trees/{tree_sha}": Operation<"/repos/{owner}/{repo}/git/trees/{tree_sha}", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#list-repository-webhooks + */ + "GET /repos/{owner}/{repo}/hooks": Operation<"/repos/{owner}/{repo}/hooks", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#get-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#get-a-webhook-configuration-for-a-repository + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/config", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#list-deliveries-for-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "get">; + /** + * @see https://docs.github.com/rest/repos/webhooks#get-a-delivery-for-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}", "get">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#get-an-import-status + */ + "GET /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "get">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#get-commit-authors + */ + "GET /repos/{owner}/{repo}/import/authors": Operation<"/repos/{owner}/{repo}/import/authors", "get">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#get-large-files + */ + "GET /repos/{owner}/{repo}/import/large_files": Operation<"/repos/{owner}/{repo}/import/large_files", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-a-repository-installation-for-the-authenticated-app + */ + "GET /repos/{owner}/{repo}/installation": Operation<"/repos/{owner}/{repo}/installation", "get">; + /** + * @see https://docs.github.com/rest/interactions/repos#get-interaction-restrictions-for-a-repository + */ + "GET /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#list-repository-invitations + */ + "GET /repos/{owner}/{repo}/invitations": Operation<"/repos/{owner}/{repo}/invitations", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#list-repository-issues + */ + "GET /repos/{owner}/{repo}/issues": Operation<"/repos/{owner}/{repo}/issues", "get">; + /** + * @see https://docs.github.com/rest/issues/comments#list-issue-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/comments": Operation<"/repos/{owner}/{repo}/issues/comments", "get">; + /** + * @see https://docs.github.com/rest/issues/comments#get-an-issue-comment + */ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue-comment + */ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/issues/events#list-issue-events-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/events": Operation<"/repos/{owner}/{repo}/issues/events", "get">; + /** + * @see https://docs.github.com/rest/issues/events#get-an-issue-event + */ + "GET /repos/{owner}/{repo}/issues/events/{event_id}": Operation<"/repos/{owner}/{repo}/issues/events/{event_id}", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#get-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}", "get">; + /** + * @see https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned-to-a-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}", "get">; + /** + * @see https://docs.github.com/rest/issues/comments#list-issue-comments + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/issues/events#list-issue-events + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/events": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/events", "get">; + /** + * @see https://docs.github.com/rest/issues/labels#list-labels-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/issues/timeline#list-timeline-events-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/timeline", "get">; + /** + * @see https://docs.github.com/rest/deploy-keys/deploy-keys#list-deploy-keys + */ + "GET /repos/{owner}/{repo}/keys": Operation<"/repos/{owner}/{repo}/keys", "get">; + /** + * @see https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key + */ + "GET /repos/{owner}/{repo}/keys/{key_id}": Operation<"/repos/{owner}/{repo}/keys/{key_id}", "get">; + /** + * @see https://docs.github.com/rest/issues/labels#list-labels-for-a-repository + */ + "GET /repos/{owner}/{repo}/labels": Operation<"/repos/{owner}/{repo}/labels", "get">; + /** + * @see https://docs.github.com/rest/issues/labels#get-a-label + */ + "GET /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-languages + */ + "GET /repos/{owner}/{repo}/languages": Operation<"/repos/{owner}/{repo}/languages", "get">; + /** + * @see https://docs.github.com/rest/licenses/licenses#get-the-license-for-a-repository + */ + "GET /repos/{owner}/{repo}/license": Operation<"/repos/{owner}/{repo}/license", "get">; + /** + * @see https://docs.github.com/rest/issues/milestones#list-milestones + */ + "GET /repos/{owner}/{repo}/milestones": Operation<"/repos/{owner}/{repo}/milestones", "get">; + /** + * @see https://docs.github.com/rest/issues/milestones#get-a-milestone + */ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "get">; + /** + * @see https://docs.github.com/rest/issues/labels#list-labels-for-issues-in-a-milestone + */ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}/labels", "get">; + /** + * @see https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/notifications": Operation<"/repos/{owner}/{repo}/notifications", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-a-apiname-pages-site + */ + "GET /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#list-apiname-pages-builds + */ + "GET /repos/{owner}/{repo}/pages/builds": Operation<"/repos/{owner}/{repo}/pages/builds", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-latest-pages-build + */ + "GET /repos/{owner}/{repo}/pages/builds/latest": Operation<"/repos/{owner}/{repo}/pages/builds/latest", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-apiname-pages-build + */ + "GET /repos/{owner}/{repo}/pages/builds/{build_id}": Operation<"/repos/{owner}/{repo}/pages/builds/{build_id}", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-the-status-of-a-github-pages-deployment + */ + "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}": Operation<"/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}", "get">; + /** + * @see https://docs.github.com/rest/pages/pages#get-a-dns-health-check-for-github-pages + */ + "GET /repos/{owner}/{repo}/pages/health": Operation<"/repos/{owner}/{repo}/pages/health", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#check-if-private-vulnerability-reporting-is-enabled-for-a-repository + */ + "GET /repos/{owner}/{repo}/private-vulnerability-reporting": Operation<"/repos/{owner}/{repo}/private-vulnerability-reporting", "get">; + /** + * @see https://docs.github.com/rest/projects/projects#list-repository-projects + */ + "GET /repos/{owner}/{repo}/projects": Operation<"/repos/{owner}/{repo}/projects", "get">; + /** + * @see https://docs.github.com/rest/repos/custom-properties#get-all-custom-property-values-for-a-repository + */ + "GET /repos/{owner}/{repo}/properties/values": Operation<"/repos/{owner}/{repo}/properties/values", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#list-pull-requests + */ + "GET /repos/{owner}/{repo}/pulls": Operation<"/repos/{owner}/{repo}/pulls", "get">; + /** + * @see https://docs.github.com/rest/pulls/comments#list-review-comments-in-a-repository + */ + "GET /repos/{owner}/{repo}/pulls/comments": Operation<"/repos/{owner}/{repo}/pulls/comments", "get">; + /** + * @see https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-pull-request-review-comment + */ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#get-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}", "get">; + /** + * @see https://docs.github.com/rest/pulls/comments#list-review-comments-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#list-commits-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/commits", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#list-pull-requests-files + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/files", "get">; + /** + * @see https://docs.github.com/rest/pulls/pulls#check-if-a-pull-request-has-been-merged + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/merge": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/merge", "get">; + /** + * @see https://docs.github.com/rest/pulls/review-requests#get-all-requested-reviewers-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "get">; + /** + * @see https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews", "get">; + /** + * @see https://docs.github.com/rest/pulls/reviews#get-a-review-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "get">; + /** + * @see https://docs.github.com/rest/pulls/reviews#list-comments-for-a-pull-request-review + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#get-a-repository-readme + */ + "GET /repos/{owner}/{repo}/readme": Operation<"/repos/{owner}/{repo}/readme", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#get-a-repository-readme-for-a-directory + */ + "GET /repos/{owner}/{repo}/readme/{dir}": Operation<"/repos/{owner}/{repo}/readme/{dir}", "get">; + /** + * @see https://docs.github.com/rest/releases/releases#list-releases + */ + "GET /repos/{owner}/{repo}/releases": Operation<"/repos/{owner}/{repo}/releases", "get">; + /** + * @see https://docs.github.com/rest/releases/assets#get-a-release-asset + */ + "GET /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "get">; + /** + * @see https://docs.github.com/rest/releases/releases#get-the-latest-release + */ + "GET /repos/{owner}/{repo}/releases/latest": Operation<"/repos/{owner}/{repo}/releases/latest", "get">; + /** + * @see https://docs.github.com/rest/releases/releases#get-a-release-by-tag-name + */ + "GET /repos/{owner}/{repo}/releases/tags/{tag}": Operation<"/repos/{owner}/{repo}/releases/tags/{tag}", "get">; + /** + * @see https://docs.github.com/rest/releases/releases#get-a-release + */ + "GET /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "get">; + /** + * @see https://docs.github.com/rest/releases/assets#list-release-assets + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets": Operation<"/repos/{owner}/{repo}/releases/{release_id}/assets", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-release + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions": Operation<"/repos/{owner}/{repo}/releases/{release_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/repos/rules#get-rules-for-a-branch + */ + "GET /repos/{owner}/{repo}/rules/branches/{branch}": Operation<"/repos/{owner}/{repo}/rules/branches/{branch}", "get">; + /** + * @see https://docs.github.com/rest/repos/rules#get-all-repository-rulesets + */ + "GET /repos/{owner}/{repo}/rulesets": Operation<"/repos/{owner}/{repo}/rulesets", "get">; + /** + * @see https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites + */ + "GET /repos/{owner}/{repo}/rulesets/rule-suites": Operation<"/repos/{owner}/{repo}/rulesets/rule-suites", "get">; + /** + * @see https://docs.github.com/rest/repos/rule-suites#get-a-repository-rule-suite + */ + "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}": Operation<"/repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}", "get">; + /** + * @see https://docs.github.com/rest/repos/rules#get-a-repository-ruleset + */ + "GET /repos/{owner}/{repo}/rulesets/{ruleset_id}": Operation<"/repos/{owner}/{repo}/rulesets/{ruleset_id}", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#get-a-secret-scanning-alert + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#list-locations-for-a-secret-scanning-alert + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories + */ + "GET /repos/{owner}/{repo}/security-advisories": Operation<"/repos/{owner}/{repo}/security-advisories", "get">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#get-a-repository-security-advisory + */ + "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}": Operation<"/repos/{owner}/{repo}/security-advisories/{ghsa_id}", "get">; + /** + * @see https://docs.github.com/rest/activity/starring#list-stargazers + */ + "GET /repos/{owner}/{repo}/stargazers": Operation<"/repos/{owner}/{repo}/stargazers", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/code_frequency": Operation<"/repos/{owner}/{repo}/stats/code_frequency", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-the-last-year-of-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/commit_activity": Operation<"/repos/{owner}/{repo}/stats/commit_activity", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-all-contributor-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/contributors": Operation<"/repos/{owner}/{repo}/stats/contributors", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-count + */ + "GET /repos/{owner}/{repo}/stats/participation": Operation<"/repos/{owner}/{repo}/stats/participation", "get">; + /** + * @see https://docs.github.com/rest/metrics/statistics#get-the-hourly-commit-count-for-each-day + */ + "GET /repos/{owner}/{repo}/stats/punch_card": Operation<"/repos/{owner}/{repo}/stats/punch_card", "get">; + /** + * @see https://docs.github.com/rest/activity/watching#list-watchers + */ + "GET /repos/{owner}/{repo}/subscribers": Operation<"/repos/{owner}/{repo}/subscribers", "get">; + /** + * @see https://docs.github.com/rest/activity/watching#get-a-repository-subscription + */ + "GET /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-tags + */ + "GET /repos/{owner}/{repo}/tags": Operation<"/repos/{owner}/{repo}/tags", "get">; + /** + * @see https://docs.github.com/rest/repos/tags#list-tag-protection-states-for-a-repository + */ + "GET /repos/{owner}/{repo}/tags/protection": Operation<"/repos/{owner}/{repo}/tags/protection", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#download-a-repository-archive-tar + */ + "GET /repos/{owner}/{repo}/tarball/{ref}": Operation<"/repos/{owner}/{repo}/tarball/{ref}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repository-teams + */ + "GET /repos/{owner}/{repo}/teams": Operation<"/repos/{owner}/{repo}/teams", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#get-all-repository-topics + */ + "GET /repos/{owner}/{repo}/topics": Operation<"/repos/{owner}/{repo}/topics", "get">; + /** + * @see https://docs.github.com/rest/metrics/traffic#get-repository-clones + */ + "GET /repos/{owner}/{repo}/traffic/clones": Operation<"/repos/{owner}/{repo}/traffic/clones", "get">; + /** + * @see https://docs.github.com/rest/metrics/traffic#get-top-referral-paths + */ + "GET /repos/{owner}/{repo}/traffic/popular/paths": Operation<"/repos/{owner}/{repo}/traffic/popular/paths", "get">; + /** + * @see https://docs.github.com/rest/metrics/traffic#get-top-referral-sources + */ + "GET /repos/{owner}/{repo}/traffic/popular/referrers": Operation<"/repos/{owner}/{repo}/traffic/popular/referrers", "get">; + /** + * @see https://docs.github.com/rest/metrics/traffic#get-page-views + */ + "GET /repos/{owner}/{repo}/traffic/views": Operation<"/repos/{owner}/{repo}/traffic/views", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#check-if-vulnerability-alerts-are-enabled-for-a-repository + */ + "GET /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "get">; + /** + * @see https://docs.github.com/rest/repos/contents#download-a-repository-archive-zip + */ + "GET /repos/{owner}/{repo}/zipball/{ref}": Operation<"/repos/{owner}/{repo}/zipball/{ref}", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-public-repositories + */ + "GET /repositories": Operation<"/repositories", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-code + */ + "GET /search/code": Operation<"/search/code", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-commits + */ + "GET /search/commits": Operation<"/search/commits", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-issues-and-pull-requests + */ + "GET /search/issues": Operation<"/search/issues", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-labels + */ + "GET /search/labels": Operation<"/search/labels", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-repositories + */ + "GET /search/repositories": Operation<"/search/repositories", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-topics + */ + "GET /search/topics": Operation<"/search/topics", "get">; + /** + * @see https://docs.github.com/rest/search/search#search-users + */ + "GET /search/users": Operation<"/search/users", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#get-a-team-legacy + */ + "GET /teams/{team_id}": Operation<"/teams/{team_id}", "get">; + /** + * @see https://docs.github.com/rest/teams/discussions#list-discussions-legacy + */ + "GET /teams/{team_id}/discussions": Operation<"/teams/{team_id}/discussions", "get">; + /** + * @see https://docs.github.com/rest/teams/discussions#get-a-discussion-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "get">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#list-discussion-comments-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/teams/members#list-pending-team-invitations-legacy + */ + "GET /teams/{team_id}/invitations": Operation<"/teams/{team_id}/invitations", "get">; + /** + * @see https://docs.github.com/rest/teams/members#list-team-members-legacy + */ + "GET /teams/{team_id}/members": Operation<"/teams/{team_id}/members", "get">; + /** + * @see https://docs.github.com/rest/teams/members#get-team-member-legacy + */ + "GET /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "get">; + /** + * @see https://docs.github.com/rest/teams/members#get-team-membership-for-a-user-legacy + */ + "GET /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-projects-legacy + */ + "GET /teams/{team_id}/projects": Operation<"/teams/{team_id}/projects", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-project-legacy + */ + "GET /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-team-repositories-legacy + */ + "GET /teams/{team_id}/repos": Operation<"/teams/{team_id}/repos", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository-legacy + */ + "GET /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-child-teams-legacy + */ + "GET /teams/{team_id}/teams": Operation<"/teams/{team_id}/teams", "get">; + /** + * @see https://docs.github.com/rest/users/users#get-the-authenticated-user + */ + "GET /user": Operation<"/user", "get">; + /** + * @see https://docs.github.com/rest/users/blocking#list-users-blocked-by-the-authenticated-user + */ + "GET /user/blocks": Operation<"/user/blocks", "get">; + /** + * @see https://docs.github.com/rest/users/blocking#check-if-a-user-is-blocked-by-the-authenticated-user + */ + "GET /user/blocks/{username}": Operation<"/user/blocks/{username}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#list-codespaces-for-the-authenticated-user + */ + "GET /user/codespaces": Operation<"/user/codespaces", "get">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#list-secrets-for-the-authenticated-user + */ + "GET /user/codespaces/secrets": Operation<"/user/codespaces/secrets", "get">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#get-public-key-for-the-authenticated-user + */ + "GET /user/codespaces/secrets/public-key": Operation<"/user/codespaces/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#get-a-secret-for-the-authenticated-user + */ + "GET /user/codespaces/secrets/{secret_name}": Operation<"/user/codespaces/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret + */ + "GET /user/codespaces/secrets/{secret_name}/repositories": Operation<"/user/codespaces/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#get-a-codespace-for-the-authenticated-user + */ + "GET /user/codespaces/{codespace_name}": Operation<"/user/codespaces/{codespace_name}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#get-details-about-a-codespace-export + */ + "GET /user/codespaces/{codespace_name}/exports/{export_id}": Operation<"/user/codespaces/{codespace_name}/exports/{export_id}", "get">; + /** + * @see https://docs.github.com/rest/codespaces/machines#list-machine-types-for-a-codespace + */ + "GET /user/codespaces/{codespace_name}/machines": Operation<"/user/codespaces/{codespace_name}/machines", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-authenticated-user + */ + "GET /user/docker/conflicts": Operation<"/user/docker/conflicts", "get">; + /** + * @see https://docs.github.com/rest/users/emails#list-email-addresses-for-the-authenticated-user + */ + "GET /user/emails": Operation<"/user/emails", "get">; + /** + * @see https://docs.github.com/rest/users/followers#list-followers-of-the-authenticated-user + */ + "GET /user/followers": Operation<"/user/followers", "get">; + /** + * @see https://docs.github.com/rest/users/followers#list-the-people-the-authenticated-user-follows + */ + "GET /user/following": Operation<"/user/following", "get">; + /** + * @see https://docs.github.com/rest/users/followers#check-if-a-person-is-followed-by-the-authenticated-user + */ + "GET /user/following/{username}": Operation<"/user/following/{username}", "get">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-the-authenticated-user + */ + "GET /user/gpg_keys": Operation<"/user/gpg_keys", "get">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#get-a-gpg-key-for-the-authenticated-user + */ + "GET /user/gpg_keys/{gpg_key_id}": Operation<"/user/gpg_keys/{gpg_key_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/installations#list-app-installations-accessible-to-the-user-access-token + */ + "GET /user/installations": Operation<"/user/installations", "get">; + /** + * @see https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-user-access-token + */ + "GET /user/installations/{installation_id}/repositories": Operation<"/user/installations/{installation_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/interactions/user#get-interaction-restrictions-for-your-public-repositories + */ + "GET /user/interaction-limits": Operation<"/user/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/issues/issues#list-user-account-issues-assigned-to-the-authenticated-user + */ + "GET /user/issues": Operation<"/user/issues", "get">; + /** + * @see https://docs.github.com/rest/users/keys#list-public-ssh-keys-for-the-authenticated-user + */ + "GET /user/keys": Operation<"/user/keys", "get">; + /** + * @see https://docs.github.com/rest/users/keys#get-a-public-ssh-key-for-the-authenticated-user + */ + "GET /user/keys/{key_id}": Operation<"/user/keys/{key_id}", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user + */ + "GET /user/marketplace_purchases": Operation<"/user/marketplace_purchases", "get">; + /** + * @see https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user-stubbed + */ + "GET /user/marketplace_purchases/stubbed": Operation<"/user/marketplace_purchases/stubbed", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#list-organization-memberships-for-the-authenticated-user + */ + "GET /user/memberships/orgs": Operation<"/user/memberships/orgs", "get">; + /** + * @see https://docs.github.com/rest/orgs/members#get-an-organization-membership-for-the-authenticated-user + */ + "GET /user/memberships/orgs/{org}": Operation<"/user/memberships/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/migrations/users#list-user-migrations + */ + "GET /user/migrations": Operation<"/user/migrations", "get">; + /** + * @see https://docs.github.com/rest/migrations/users#get-a-user-migration-status + */ + "GET /user/migrations/{migration_id}": Operation<"/user/migrations/{migration_id}", "get">; + /** + * @see https://docs.github.com/rest/migrations/users#download-a-user-migration-archive + */ + "GET /user/migrations/{migration_id}/archive": Operation<"/user/migrations/{migration_id}/archive", "get">; + /** + * @see https://docs.github.com/rest/migrations/users#list-repositories-for-a-user-migration + */ + "GET /user/migrations/{migration_id}/repositories": Operation<"/user/migrations/{migration_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user + */ + "GET /user/orgs": Operation<"/user/orgs", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-packages-for-the-authenticated-users-namespace + */ + "GET /user/packages": Operation<"/user/packages", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-for-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}": Operation<"/user/packages/{package_type}/{package_name}", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}/versions": Operation<"/user/packages/{package_type}/{package_name}/versions", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-version-for-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/user/packages/{package_type}/{package_name}/versions/{package_version_id}", "get">; + /** + * @see https://docs.github.com/rest/users/emails#list-public-email-addresses-for-the-authenticated-user + */ + "GET /user/public_emails": Operation<"/user/public_emails", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repositories-for-the-authenticated-user + */ + "GET /user/repos": Operation<"/user/repos", "get">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#list-repository-invitations-for-the-authenticated-user + */ + "GET /user/repository_invitations": Operation<"/user/repository_invitations", "get">; + /** + * @see https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-the-authenticated-user + */ + "GET /user/social_accounts": Operation<"/user/social_accounts", "get">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-the-authenticated-user + */ + "GET /user/ssh_signing_keys": Operation<"/user/ssh_signing_keys", "get">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#get-an-ssh-signing-key-for-the-authenticated-user + */ + "GET /user/ssh_signing_keys/{ssh_signing_key_id}": Operation<"/user/ssh_signing_keys/{ssh_signing_key_id}", "get">; + /** + * @see https://docs.github.com/rest/activity/starring#list-repositories-starred-by-the-authenticated-user + */ + "GET /user/starred": Operation<"/user/starred", "get">; + /** + * @see https://docs.github.com/rest/activity/starring#check-if-a-repository-is-starred-by-the-authenticated-user + */ + "GET /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/activity/watching#list-repositories-watched-by-the-authenticated-user + */ + "GET /user/subscriptions": Operation<"/user/subscriptions", "get">; + /** + * @see https://docs.github.com/rest/teams/teams#list-teams-for-the-authenticated-user + */ + "GET /user/teams": Operation<"/user/teams", "get">; + /** + * @see https://docs.github.com/rest/users/users#list-users + */ + "GET /users": Operation<"/users", "get">; + /** + * @see https://docs.github.com/rest/users/users#get-a-user + */ + "GET /users/{username}": Operation<"/users/{username}", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-user + */ + "GET /users/{username}/docker/conflicts": Operation<"/users/{username}/docker/conflicts", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-events-for-the-authenticated-user + */ + "GET /users/{username}/events": Operation<"/users/{username}/events", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-organization-events-for-the-authenticated-user + */ + "GET /users/{username}/events/orgs/{org}": Operation<"/users/{username}/events/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events-for-a-user + */ + "GET /users/{username}/events/public": Operation<"/users/{username}/events/public", "get">; + /** + * @see https://docs.github.com/rest/users/followers#list-followers-of-a-user + */ + "GET /users/{username}/followers": Operation<"/users/{username}/followers", "get">; + /** + * @see https://docs.github.com/rest/users/followers#list-the-people-a-user-follows + */ + "GET /users/{username}/following": Operation<"/users/{username}/following", "get">; + /** + * @see https://docs.github.com/rest/users/followers#check-if-a-user-follows-another-user + */ + "GET /users/{username}/following/{target_user}": Operation<"/users/{username}/following/{target_user}", "get">; + /** + * @see https://docs.github.com/rest/gists/gists#list-gists-for-a-user + */ + "GET /users/{username}/gists": Operation<"/users/{username}/gists", "get">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-a-user + */ + "GET /users/{username}/gpg_keys": Operation<"/users/{username}/gpg_keys", "get">; + /** + * @see https://docs.github.com/rest/users/users#get-contextual-information-for-a-user + */ + "GET /users/{username}/hovercard": Operation<"/users/{username}/hovercard", "get">; + /** + * @see https://docs.github.com/rest/apps/apps#get-a-user-installation-for-the-authenticated-app + */ + "GET /users/{username}/installation": Operation<"/users/{username}/installation", "get">; + /** + * @see https://docs.github.com/rest/users/keys#list-public-keys-for-a-user + */ + "GET /users/{username}/keys": Operation<"/users/{username}/keys", "get">; + /** + * @see https://docs.github.com/rest/orgs/orgs#list-organizations-for-a-user + */ + "GET /users/{username}/orgs": Operation<"/users/{username}/orgs", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-packages-for-a-user + */ + "GET /users/{username}/packages": Operation<"/users/{username}/packages", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-for-a-user + */ + "GET /users/{username}/packages/{package_type}/{package_name}": Operation<"/users/{username}/packages/{package_type}/{package_name}", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-a-user + */ + "GET /users/{username}/packages/{package_type}/{package_name}/versions": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions", "get">; + /** + * @see https://docs.github.com/rest/packages/packages#get-a-package-version-for-a-user + */ + "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}", "get">; + /** + * @see https://docs.github.com/rest/projects/projects#list-user-projects + */ + "GET /users/{username}/projects": Operation<"/users/{username}/projects", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-events-received-by-the-authenticated-user + */ + "GET /users/{username}/received_events": Operation<"/users/{username}/received_events", "get">; + /** + * @see https://docs.github.com/rest/activity/events#list-public-events-received-by-a-user + */ + "GET /users/{username}/received_events/public": Operation<"/users/{username}/received_events/public", "get">; + /** + * @see https://docs.github.com/rest/repos/repos#list-repositories-for-a-user + */ + "GET /users/{username}/repos": Operation<"/users/{username}/repos", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-github-actions-billing-for-a-user + */ + "GET /users/{username}/settings/billing/actions": Operation<"/users/{username}/settings/billing/actions", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-github-packages-billing-for-a-user + */ + "GET /users/{username}/settings/billing/packages": Operation<"/users/{username}/settings/billing/packages", "get">; + /** + * @see https://docs.github.com/rest/billing/billing#get-shared-storage-billing-for-a-user + */ + "GET /users/{username}/settings/billing/shared-storage": Operation<"/users/{username}/settings/billing/shared-storage", "get">; + /** + * @see https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-a-user + */ + "GET /users/{username}/social_accounts": Operation<"/users/{username}/social_accounts", "get">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-a-user + */ + "GET /users/{username}/ssh_signing_keys": Operation<"/users/{username}/ssh_signing_keys", "get">; + /** + * @see https://docs.github.com/rest/activity/starring#list-repositories-starred-by-a-user + */ + "GET /users/{username}/starred": Operation<"/users/{username}/starred", "get">; + /** + * @see https://docs.github.com/rest/activity/watching#list-repositories-watched-by-a-user + */ + "GET /users/{username}/subscriptions": Operation<"/users/{username}/subscriptions", "get">; + /** + * @see https://docs.github.com/rest/meta/meta#get-all-api-versions + */ + "GET /versions": Operation<"/versions", "get">; + /** + * @see https://docs.github.com/rest/meta/meta#get-the-zen-of-github + */ + "GET /zen": Operation<"/zen", "get">; + /** + * @see https://docs.github.com/rest/apps/webhooks#update-a-webhook-configuration-for-an-app + */ + "PATCH /app/hook/config": Operation<"/app/hook/config", "patch">; + /** + * @see https://docs.github.com/rest/apps/oauth-applications#reset-a-token + */ + "PATCH /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "patch">; + /** + * @see https://docs.github.com/rest/reference/gists/#update-a-gist + */ + "PATCH /gists/{gist_id}": Operation<"/gists/{gist_id}", "patch">; + /** + * @see https://docs.github.com/rest/gists/comments#update-a-gist-comment + */ + "PATCH /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/activity/notifications#mark-a-thread-as-read + */ + "PATCH /notifications/threads/{thread_id}": Operation<"/notifications/threads/{thread_id}", "patch">; + /** + * @see https://docs.github.com/rest/orgs/orgs#update-an-organization + */ + "PATCH /orgs/{org}": Operation<"/orgs/{org}", "patch">; + /** + * @see https://docs.github.com/rest/actions/variables#update-an-organization-variable + */ + "PATCH /orgs/{org}/actions/variables/{name}": Operation<"/orgs/{org}/actions/variables/{name}", "patch">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#update-an-organization-webhook + */ + "PATCH /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "patch">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization + */ + "PATCH /orgs/{org}/hooks/{hook_id}/config": Operation<"/orgs/{org}/hooks/{hook_id}/config", "patch">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#update-a-custom-organization-role + */ + "PATCH /orgs/{org}/organization-roles/{role_id}": Operation<"/orgs/{org}/organization-roles/{role_id}", "patch">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-properties-for-an-organization + */ + "PATCH /orgs/{org}/properties/schema": Operation<"/orgs/{org}/properties/schema", "patch">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-property-values-for-organization-repositories + */ + "PATCH /orgs/{org}/properties/values": Operation<"/orgs/{org}/properties/values", "patch">; + /** + * @see https://docs.github.com/rest/teams/teams#update-a-team + */ + "PATCH /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "patch">; + /** + * @see https://docs.github.com/rest/teams/discussions#update-a-discussion + */ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "patch">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#update-a-discussion-comment + */ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "patch">; + /** + * @see https://docs.github.com/rest/projects/cards#update-an-existing-project-card + */ + "PATCH /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "patch">; + /** + * @see https://docs.github.com/rest/projects/columns#update-an-existing-project-column + */ + "PATCH /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "patch">; + /** + * @see https://docs.github.com/rest/projects/projects#update-a-project + */ + "PATCH /projects/{project_id}": Operation<"/projects/{project_id}", "patch">; + /** + * @see https://docs.github.com/rest/repos/repos#update-a-repository + */ + "PATCH /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "patch">; + /** + * @see https://docs.github.com/rest/actions/variables#update-a-repository-variable + */ + "PATCH /repos/{owner}/{repo}/actions/variables/{name}": Operation<"/repos/{owner}/{repo}/actions/variables/{name}", "patch">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#update-pull-request-review-protection + */ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "patch">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#update-status-check-protection + */ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "patch">; + /** + * @see https://docs.github.com/rest/checks/runs#update-a-check-run + */ + "PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}", "patch">; + /** + * @see https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites + */ + "PATCH /repos/{owner}/{repo}/check-suites/preferences": Operation<"/repos/{owner}/{repo}/check-suites/preferences", "patch">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-alert + */ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "patch">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-default-setup-configuration + */ + "PATCH /repos/{owner}/{repo}/code-scanning/default-setup": Operation<"/repos/{owner}/{repo}/code-scanning/default-setup", "patch">; + /** + * @see https://docs.github.com/rest/commits/comments#update-a-commit-comment + */ + "PATCH /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/dependabot/alerts#update-a-dependabot-alert + */ + "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/dependabot/alerts/{alert_number}", "patch">; + /** + * @see https://docs.github.com/rest/actions/variables#update-an-environment-variable + */ + "PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/variables/{name}", "patch">; + /** + * @see https://docs.github.com/rest/git/refs#update-a-reference + */ + "PATCH /repos/{owner}/{repo}/git/refs/{ref}": Operation<"/repos/{owner}/{repo}/git/refs/{ref}", "patch">; + /** + * @see https://docs.github.com/rest/repos/webhooks#update-a-repository-webhook + */ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "patch">; + /** + * @see https://docs.github.com/rest/repos/webhooks#update-a-webhook-configuration-for-a-repository + */ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/config", "patch">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#update-an-import + */ + "PATCH /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "patch">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author + */ + "PATCH /repos/{owner}/{repo}/import/authors/{author_id}": Operation<"/repos/{owner}/{repo}/import/authors/{author_id}", "patch">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference + */ + "PATCH /repos/{owner}/{repo}/import/lfs": Operation<"/repos/{owner}/{repo}/import/lfs", "patch">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#update-a-repository-invitation + */ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}": Operation<"/repos/{owner}/{repo}/invitations/{invitation_id}", "patch">; + /** + * @see https://docs.github.com/rest/issues/comments#update-an-issue-comment + */ + "PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/issues/issues#update-an-issue + */ + "PATCH /repos/{owner}/{repo}/issues/{issue_number}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}", "patch">; + /** + * @see https://docs.github.com/rest/issues/labels#update-a-label + */ + "PATCH /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "patch">; + /** + * @see https://docs.github.com/rest/issues/milestones#update-a-milestone + */ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "patch">; + /** + * @see https://docs.github.com/rest/repos/custom-properties#create-or-update-custom-property-values-for-a-repository + */ + "PATCH /repos/{owner}/{repo}/properties/values": Operation<"/repos/{owner}/{repo}/properties/values", "patch">; + /** + * @see https://docs.github.com/rest/pulls/comments#update-a-review-comment-for-a-pull-request + */ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/pulls/pulls#update-a-pull-request + */ + "PATCH /repos/{owner}/{repo}/pulls/{pull_number}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}", "patch">; + /** + * @see https://docs.github.com/rest/releases/assets#update-a-release-asset + */ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "patch">; + /** + * @see https://docs.github.com/rest/releases/releases#update-a-release + */ + "PATCH /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "patch">; + /** + * @see https://docs.github.com/rest/secret-scanning/secret-scanning#update-a-secret-scanning-alert + */ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", "patch">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#update-a-repository-security-advisory + */ + "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}": Operation<"/repos/{owner}/{repo}/security-advisories/{ghsa_id}", "patch">; + /** + * @see https://docs.github.com/rest/teams/teams#update-a-team-legacy + */ + "PATCH /teams/{team_id}": Operation<"/teams/{team_id}", "patch">; + /** + * @see https://docs.github.com/rest/teams/discussions#update-a-discussion-legacy + */ + "PATCH /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "patch">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#update-a-discussion-comment-legacy + */ + "PATCH /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "patch">; + /** + * @see https://docs.github.com/rest/users/users#update-the-authenticated-user + */ + "PATCH /user": Operation<"/user", "patch">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#update-a-codespace-for-the-authenticated-user + */ + "PATCH /user/codespaces/{codespace_name}": Operation<"/user/codespaces/{codespace_name}", "patch">; + /** + * @see https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user + */ + "PATCH /user/email/visibility": Operation<"/user/email/visibility", "patch">; + /** + * @see https://docs.github.com/rest/orgs/members#update-an-organization-membership-for-the-authenticated-user + */ + "PATCH /user/memberships/orgs/{org}": Operation<"/user/memberships/orgs/{org}", "patch">; + /** + * @see https://docs.github.com/rest/collaborators/invitations#accept-a-repository-invitation + */ + "PATCH /user/repository_invitations/{invitation_id}": Operation<"/user/repository_invitations/{invitation_id}", "patch">; + /** + * @see https://docs.github.com/rest/apps/apps#create-a-github-app-from-a-manifest + */ + "POST /app-manifests/{code}/conversions": Operation<"/app-manifests/{code}/conversions", "post">; + /** + * @see https://docs.github.com/rest/apps/webhooks#redeliver-a-delivery-for-an-app-webhook + */ + "POST /app/hook/deliveries/{delivery_id}/attempts": Operation<"/app/hook/deliveries/{delivery_id}/attempts", "post">; + /** + * @see https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app + */ + "POST /app/installations/{installation_id}/access_tokens": Operation<"/app/installations/{installation_id}/access_tokens", "post">; + /** + * @see https://docs.github.com/rest/apps/oauth-applications#check-a-token + */ + "POST /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "post">; + /** + * @see https://docs.github.com/rest/apps/apps#create-a-scoped-access-token + */ + "POST /applications/{client_id}/token/scoped": Operation<"/applications/{client_id}/token/scoped", "post">; + /** + * @see https://docs.github.com/rest/gists/gists#create-a-gist + */ + "POST /gists": Operation<"/gists", "post">; + /** + * @see https://docs.github.com/rest/gists/comments#create-a-gist-comment + */ + "POST /gists/{gist_id}/comments": Operation<"/gists/{gist_id}/comments", "post">; + /** + * @see https://docs.github.com/rest/gists/gists#fork-a-gist + */ + "POST /gists/{gist_id}/forks": Operation<"/gists/{gist_id}/forks", "post">; + /** + * @see https://docs.github.com/rest/markdown/markdown#render-a-markdown-document + */ + "POST /markdown": Operation<"/markdown", "post">; + /** + * @see https://docs.github.com/rest/markdown/markdown#render-a-markdown-document-in-raw-mode + */ + "POST /markdown/raw": Operation<"/markdown/raw", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-configuration-for-a-just-in-time-runner-for-an-organization + */ + "POST /orgs/{org}/actions/runners/generate-jitconfig": Operation<"/orgs/{org}/actions/runners/generate-jitconfig", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-a-registration-token-for-an-organization + */ + "POST /orgs/{org}/actions/runners/registration-token": Operation<"/orgs/{org}/actions/runners/registration-token", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-a-remove-token-for-an-organization + */ + "POST /orgs/{org}/actions/runners/remove-token": Operation<"/orgs/{org}/actions/runners/remove-token", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#add-custom-labels-to-a-self-hosted-runner-for-an-organization + */ + "POST /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "post">; + /** + * @see https://docs.github.com/rest/actions/variables#create-an-organization-variable + */ + "POST /orgs/{org}/actions/variables": Operation<"/orgs/{org}/actions/variables", "post">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#add-users-to-codespaces-access-for-an-organization + */ + "POST /orgs/{org}/codespaces/access/selected_users": Operation<"/orgs/{org}/codespaces/access/selected_users", "post">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#add-teams-to-the-copilot-subscription-for-an-organization + */ + "POST /orgs/{org}/copilot/billing/selected_teams": Operation<"/orgs/{org}/copilot/billing/selected_teams", "post">; + /** + * @see https://docs.github.com/rest/copilot/copilot-user-management#add-users-to-the-copilot-subscription-for-an-organization + */ + "POST /orgs/{org}/copilot/billing/selected_users": Operation<"/orgs/{org}/copilot/billing/selected_users", "post">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#create-an-organization-webhook + */ + "POST /orgs/{org}/hooks": Operation<"/orgs/{org}/hooks", "post">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#redeliver-a-delivery-for-an-organization-webhook + */ + "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": Operation<"/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts", "post">; + /** + * @see https://docs.github.com/rest/orgs/webhooks#ping-an-organization-webhook + */ + "POST /orgs/{org}/hooks/{hook_id}/pings": Operation<"/orgs/{org}/hooks/{hook_id}/pings", "post">; + /** + * @see https://docs.github.com/rest/orgs/members#create-an-organization-invitation + */ + "POST /orgs/{org}/invitations": Operation<"/orgs/{org}/invitations", "post">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#stop-a-codespace-for-an-organization-user + */ + "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop": Operation<"/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop", "post">; + /** + * @see https://docs.github.com/rest/migrations/orgs#start-an-organization-migration + */ + "POST /orgs/{org}/migrations": Operation<"/orgs/{org}/migrations", "post">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#create-a-custom-organization-role + */ + "POST /orgs/{org}/organization-roles": Operation<"/orgs/{org}/organization-roles", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-a-package-for-an-organization + */ + "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/restore", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-package-version-for-an-organization + */ + "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", "post">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#review-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens + */ + "POST /orgs/{org}/personal-access-token-requests": Operation<"/orgs/{org}/personal-access-token-requests", "post">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#review-a-request-to-access-organization-resources-with-a-fine-grained-personal-access-token + */ + "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}": Operation<"/orgs/{org}/personal-access-token-requests/{pat_request_id}", "post">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-to-organization-resources-via-fine-grained-personal-access-tokens + */ + "POST /orgs/{org}/personal-access-tokens": Operation<"/orgs/{org}/personal-access-tokens", "post">; + /** + * @see https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-a-fine-grained-personal-access-token-has-to-organization-resources + */ + "POST /orgs/{org}/personal-access-tokens/{pat_id}": Operation<"/orgs/{org}/personal-access-tokens/{pat_id}", "post">; + /** + * @see https://docs.github.com/rest/projects/projects#create-an-organization-project + */ + "POST /orgs/{org}/projects": Operation<"/orgs/{org}/projects", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#create-an-organization-repository + */ + "POST /orgs/{org}/repos": Operation<"/orgs/{org}/repos", "post">; + /** + * @see https://docs.github.com/rest/orgs/rules#create-an-organization-repository-ruleset + */ + "POST /orgs/{org}/rulesets": Operation<"/orgs/{org}/rulesets", "post">; + /** + * @see https://docs.github.com/rest/teams/teams#create-a-team + */ + "POST /orgs/{org}/teams": Operation<"/orgs/{org}/teams", "post">; + /** + * @see https://docs.github.com/rest/teams/discussions#create-a-discussion + */ + "POST /orgs/{org}/teams/{team_slug}/discussions": Operation<"/orgs/{org}/teams/{team_slug}/discussions", "post">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#create-a-discussion-comment + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/orgs/orgs#enable-or-disable-a-security-feature-for-an-organization + */ + "POST /orgs/{org}/{security_product}/{enablement}": Operation<"/orgs/{org}/{security_product}/{enablement}", "post">; + /** + * @see https://docs.github.com/rest/projects/cards#move-a-project-card + */ + "POST /projects/columns/cards/{card_id}/moves": Operation<"/projects/columns/cards/{card_id}/moves", "post">; + /** + * @see https://docs.github.com/rest/projects/cards#create-a-project-card + */ + "POST /projects/columns/{column_id}/cards": Operation<"/projects/columns/{column_id}/cards", "post">; + /** + * @see https://docs.github.com/rest/projects/columns#move-a-project-column + */ + "POST /projects/columns/{column_id}/moves": Operation<"/projects/columns/{column_id}/moves", "post">; + /** + * @see https://docs.github.com/rest/projects/columns#create-a-project-column + */ + "POST /projects/{project_id}/columns": Operation<"/projects/{project_id}/columns", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-configuration-for-a-just-in-time-runner-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig": Operation<"/repos/{owner}/{repo}/actions/runners/generate-jitconfig", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-a-registration-token-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/registration-token": Operation<"/repos/{owner}/{repo}/actions/runners/registration-token", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#create-a-remove-token-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/remove-token": Operation<"/repos/{owner}/{repo}/actions/runners/remove-token", "post">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#add-custom-labels-to-a-self-hosted-runner-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#approve-a-workflow-run-for-a-fork-pull-request + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/approve", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#cancel-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/cancel", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#review-custom-deployment-protection-rules-for-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#force-cancel-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#re-run-a-workflow + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/rerun", "post">; + /** + * @see https://docs.github.com/rest/actions/workflow-runs#re-run-failed-jobs-from-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs", "post">; + /** + * @see https://docs.github.com/rest/actions/variables#create-a-repository-variable + */ + "POST /repos/{owner}/{repo}/actions/variables": Operation<"/repos/{owner}/{repo}/actions/variables", "post">; + /** + * @see https://docs.github.com/rest/actions/workflows#create-a-workflow-dispatch-event + */ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches", "post">; + /** + * @see https://docs.github.com/rest/repos/autolinks#create-an-autolink-reference-for-a-repository + */ + "POST /repos/{owner}/{repo}/autolinks": Operation<"/repos/{owner}/{repo}/autolinks", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-admin-branch-protection + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#create-commit-signature-protection + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#add-status-check-contexts + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#add-app-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#add-team-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "post">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#add-user-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "post">; + /** + * @see https://docs.github.com/rest/branches/branches#rename-a-branch + */ + "POST /repos/{owner}/{repo}/branches/{branch}/rename": Operation<"/repos/{owner}/{repo}/branches/{branch}/rename", "post">; + /** + * @see https://docs.github.com/rest/reference/checks#create-a-check-run + */ + "POST /repos/{owner}/{repo}/check-runs": Operation<"/repos/{owner}/{repo}/check-runs", "post">; + /** + * @see https://docs.github.com/rest/checks/runs#rerequest-a-check-run + */ + "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest", "post">; + /** + * @see https://docs.github.com/rest/checks/suites#create-a-check-suite + */ + "POST /repos/{owner}/{repo}/check-suites": Operation<"/repos/{owner}/{repo}/check-suites", "post">; + /** + * @see https://docs.github.com/rest/checks/suites#rerequest-a-check-suite + */ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest", "post">; + /** + * @see https://docs.github.com/rest/code-scanning/code-scanning#upload-an-analysis-as-sarif-data + */ + "POST /repos/{owner}/{repo}/code-scanning/sarifs": Operation<"/repos/{owner}/{repo}/code-scanning/sarifs", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-in-a-repository + */ + "POST /repos/{owner}/{repo}/codespaces": Operation<"/repos/{owner}/{repo}/codespaces", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-commit-comment + */ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/commits/comments#create-a-commit-comment + */ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/comments", "post">; + /** + * @see https://docs.github.com/rest/dependency-graph/dependency-submission#create-a-snapshot-of-dependencies-for-a-repository + */ + "POST /repos/{owner}/{repo}/dependency-graph/snapshots": Operation<"/repos/{owner}/{repo}/dependency-graph/snapshots", "post">; + /** + * @see https://docs.github.com/rest/deployments/deployments#create-a-deployment + */ + "POST /repos/{owner}/{repo}/deployments": Operation<"/repos/{owner}/{repo}/deployments", "post">; + /** + * @see https://docs.github.com/rest/deployments/statuses#create-a-deployment-status + */ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#create-a-repository-dispatch-event + */ + "POST /repos/{owner}/{repo}/dispatches": Operation<"/repos/{owner}/{repo}/dispatches", "post">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#create-a-deployment-branch-policy + */ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies", "post">; + /** + * @see https://docs.github.com/rest/deployments/protection-rules#create-a-custom-deployment-protection-rule-on-an-environment + */ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules", "post">; + /** + * @see https://docs.github.com/rest/actions/variables#create-an-environment-variable + */ + "POST /repos/{owner}/{repo}/environments/{environment_name}/variables": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/variables", "post">; + /** + * @see https://docs.github.com/rest/repos/forks#create-a-fork + */ + "POST /repos/{owner}/{repo}/forks": Operation<"/repos/{owner}/{repo}/forks", "post">; + /** + * @see https://docs.github.com/rest/git/blobs#create-a-blob + */ + "POST /repos/{owner}/{repo}/git/blobs": Operation<"/repos/{owner}/{repo}/git/blobs", "post">; + /** + * @see https://docs.github.com/rest/git/commits#create-a-commit + */ + "POST /repos/{owner}/{repo}/git/commits": Operation<"/repos/{owner}/{repo}/git/commits", "post">; + /** + * @see https://docs.github.com/rest/git/refs#create-a-reference + */ + "POST /repos/{owner}/{repo}/git/refs": Operation<"/repos/{owner}/{repo}/git/refs", "post">; + /** + * @see https://docs.github.com/rest/git/tags#create-a-tag-object + */ + "POST /repos/{owner}/{repo}/git/tags": Operation<"/repos/{owner}/{repo}/git/tags", "post">; + /** + * @see https://docs.github.com/rest/git/trees#create-a-tree + */ + "POST /repos/{owner}/{repo}/git/trees": Operation<"/repos/{owner}/{repo}/git/trees", "post">; + /** + * @see https://docs.github.com/rest/repos/webhooks#create-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks": Operation<"/repos/{owner}/{repo}/hooks", "post">; + /** + * @see https://docs.github.com/rest/repos/webhooks#redeliver-a-delivery-for-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts", "post">; + /** + * @see https://docs.github.com/rest/repos/webhooks#ping-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/pings": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/pings", "post">; + /** + * @see https://docs.github.com/rest/repos/webhooks#test-the-push-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/tests": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/tests", "post">; + /** + * @see https://docs.github.com/rest/issues/issues#create-an-issue + */ + "POST /repos/{owner}/{repo}/issues": Operation<"/repos/{owner}/{repo}/issues", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue-comment + */ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/issues/assignees#add-assignees-to-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/assignees", "post">; + /** + * @see https://docs.github.com/rest/issues/comments#create-an-issue-comment + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/issues/labels#add-labels-to-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/deploy-keys/deploy-keys#create-a-deploy-key + */ + "POST /repos/{owner}/{repo}/keys": Operation<"/repos/{owner}/{repo}/keys", "post">; + /** + * @see https://docs.github.com/rest/issues/labels#create-a-label + */ + "POST /repos/{owner}/{repo}/labels": Operation<"/repos/{owner}/{repo}/labels", "post">; + /** + * @see https://docs.github.com/rest/branches/branches#sync-a-fork-branch-with-the-upstream-repository + */ + "POST /repos/{owner}/{repo}/merge-upstream": Operation<"/repos/{owner}/{repo}/merge-upstream", "post">; + /** + * @see https://docs.github.com/rest/branches/branches#merge-a-branch + */ + "POST /repos/{owner}/{repo}/merges": Operation<"/repos/{owner}/{repo}/merges", "post">; + /** + * @see https://docs.github.com/rest/issues/milestones#create-a-milestone + */ + "POST /repos/{owner}/{repo}/milestones": Operation<"/repos/{owner}/{repo}/milestones", "post">; + /** + * @see https://docs.github.com/rest/pages/pages#create-a-apiname-pages-site + */ + "POST /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "post">; + /** + * @see https://docs.github.com/rest/pages/pages#request-a-apiname-pages-build + */ + "POST /repos/{owner}/{repo}/pages/builds": Operation<"/repos/{owner}/{repo}/pages/builds", "post">; + /** + * @see https://docs.github.com/rest/pages/pages#create-a-github-pages-deployment + */ + "POST /repos/{owner}/{repo}/pages/deployments": Operation<"/repos/{owner}/{repo}/pages/deployments", "post">; + /** + * @see https://docs.github.com/rest/pages/pages#cancel-a-github-pages-deployment + */ + "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel": Operation<"/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel", "post">; + /** + * @see https://docs.github.com/rest/projects/projects#create-a-repository-project + */ + "POST /repos/{owner}/{repo}/projects": Operation<"/repos/{owner}/{repo}/projects", "post">; + /** + * @see https://docs.github.com/rest/pulls/pulls#create-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls": Operation<"/repos/{owner}/{repo}/pulls", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-pull-request-review-comment + */ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-from-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/codespaces", "post">; + /** + * @see https://docs.github.com/rest/pulls/comments#create-a-review-comment-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/pulls/comments#create-a-reply-for-a-review-comment + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies", "post">; + /** + * @see https://docs.github.com/rest/reference/pulls#request-reviewers-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "post">; + /** + * @see https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews", "post">; + /** + * @see https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events", "post">; + /** + * @see https://docs.github.com/rest/releases/releases#create-a-release + */ + "POST /repos/{owner}/{repo}/releases": Operation<"/repos/{owner}/{repo}/releases", "post">; + /** + * @see https://docs.github.com/rest/releases/releases#generate-release-notes-content-for-a-release + */ + "POST /repos/{owner}/{repo}/releases/generate-notes": Operation<"/repos/{owner}/{repo}/releases/generate-notes", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-release + */ + "POST /repos/{owner}/{repo}/releases/{release_id}/reactions": Operation<"/repos/{owner}/{repo}/releases/{release_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/repos/rules#create-a-repository-ruleset + */ + "POST /repos/{owner}/{repo}/rulesets": Operation<"/repos/{owner}/{repo}/rulesets", "post">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#create-a-repository-security-advisory + */ + "POST /repos/{owner}/{repo}/security-advisories": Operation<"/repos/{owner}/{repo}/security-advisories", "post">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#privately-report-a-security-vulnerability + */ + "POST /repos/{owner}/{repo}/security-advisories/reports": Operation<"/repos/{owner}/{repo}/security-advisories/reports", "post">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#request-a-cve-for-a-repository-security-advisory + */ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve": Operation<"/repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve", "post">; + /** + * @see https://docs.github.com/rest/security-advisories/repository-advisories#create-a-temporary-private-fork + */ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks": Operation<"/repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks", "post">; + /** + * @see https://docs.github.com/rest/commits/statuses#create-a-commit-status + */ + "POST /repos/{owner}/{repo}/statuses/{sha}": Operation<"/repos/{owner}/{repo}/statuses/{sha}", "post">; + /** + * @see https://docs.github.com/rest/repos/tags#create-a-tag-protection-state-for-a-repository + */ + "POST /repos/{owner}/{repo}/tags/protection": Operation<"/repos/{owner}/{repo}/tags/protection", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#transfer-a-repository + */ + "POST /repos/{owner}/{repo}/transfer": Operation<"/repos/{owner}/{repo}/transfer", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#create-a-repository-using-a-template + */ + "POST /repos/{template_owner}/{template_repo}/generate": Operation<"/repos/{template_owner}/{template_repo}/generate", "post">; + /** + * @see https://docs.github.com/rest/teams/discussions#create-a-discussion-legacy + */ + "POST /teams/{team_id}/discussions": Operation<"/teams/{team_id}/discussions", "post">; + /** + * @see https://docs.github.com/rest/teams/discussion-comments#create-a-discussion-comment-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/comments": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces": Operation<"/user/codespaces", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#export-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces/{codespace_name}/exports": Operation<"/user/codespaces/{codespace_name}/exports", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#create-a-repository-from-an-unpublished-codespace + */ + "POST /user/codespaces/{codespace_name}/publish": Operation<"/user/codespaces/{codespace_name}/publish", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#start-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces/{codespace_name}/start": Operation<"/user/codespaces/{codespace_name}/start", "post">; + /** + * @see https://docs.github.com/rest/codespaces/codespaces#stop-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces/{codespace_name}/stop": Operation<"/user/codespaces/{codespace_name}/stop", "post">; + /** + * @see https://docs.github.com/rest/users/emails#add-an-email-address-for-the-authenticated-user + */ + "POST /user/emails": Operation<"/user/emails", "post">; + /** + * @see https://docs.github.com/rest/users/gpg-keys#create-a-gpg-key-for-the-authenticated-user + */ + "POST /user/gpg_keys": Operation<"/user/gpg_keys", "post">; + /** + * @see https://docs.github.com/rest/users/keys#create-a-public-ssh-key-for-the-authenticated-user + */ + "POST /user/keys": Operation<"/user/keys", "post">; + /** + * @see https://docs.github.com/rest/migrations/users#start-a-user-migration + */ + "POST /user/migrations": Operation<"/user/migrations", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-a-package-for-the-authenticated-user + */ + "POST /user/packages/{package_type}/{package_name}/restore{?token}": Operation<"/user/packages/{package_type}/{package_name}/restore", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-a-package-version-for-the-authenticated-user + */ + "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": Operation<"/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", "post">; + /** + * @see https://docs.github.com/rest/projects/projects#create-a-user-project + */ + "POST /user/projects": Operation<"/user/projects", "post">; + /** + * @see https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user + */ + "POST /user/repos": Operation<"/user/repos", "post">; + /** + * @see https://docs.github.com/rest/users/social-accounts#add-social-accounts-for-the-authenticated-user + */ + "POST /user/social_accounts": Operation<"/user/social_accounts", "post">; + /** + * @see https://docs.github.com/rest/users/ssh-signing-keys#create-a-ssh-signing-key-for-the-authenticated-user + */ + "POST /user/ssh_signing_keys": Operation<"/user/ssh_signing_keys", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-a-package-for-a-user + */ + "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}": Operation<"/users/{username}/packages/{package_type}/{package_name}/restore", "post">; + /** + * @see https://docs.github.com/rest/packages/packages#restore-package-version-for-a-user + */ + "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", "post">; + /** + * @see https://docs.github.com/rest/releases/assets#upload-a-release-asset + */ + "POST {origin}/repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}": Operation<"/repos/{owner}/{repo}/releases/{release_id}/assets", "post">; + /** + * @see https://docs.github.com/rest/apps/apps#suspend-an-app-installation + */ + "PUT /app/installations/{installation_id}/suspended": Operation<"/app/installations/{installation_id}/suspended", "put">; + /** + * @see https://docs.github.com/rest/gists/gists#star-a-gist + */ + "PUT /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "put">; + /** + * @see https://docs.github.com/rest/activity/notifications#mark-notifications-as-read + */ + "PUT /notifications": Operation<"/notifications", "put">; + /** + * @see https://docs.github.com/rest/activity/notifications#set-a-thread-subscription + */ + "PUT /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "put">; + /** + * @see https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-an-organization + */ + "PUT /orgs/{org}/actions/oidc/customization/sub": Operation<"/orgs/{org}/actions/oidc/customization/sub", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-github-actions-permissions-for-an-organization + */ + "PUT /orgs/{org}/actions/permissions": Operation<"/orgs/{org}/actions/permissions", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-selected-repositories-enabled-for-github-actions-in-an-organization + */ + "PUT /orgs/{org}/actions/permissions/repositories": Operation<"/orgs/{org}/actions/permissions/repositories", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#enable-a-selected-repository-for-github-actions-in-an-organization + */ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}": Operation<"/orgs/{org}/actions/permissions/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-allowed-actions-and-reusable-workflows-for-an-organization + */ + "PUT /orgs/{org}/actions/permissions/selected-actions": Operation<"/orgs/{org}/actions/permissions/selected-actions", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-default-workflow-permissions-for-an-organization + */ + "PUT /orgs/{org}/actions/permissions/workflow": Operation<"/orgs/{org}/actions/permissions/workflow", "put">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#set-custom-labels-for-a-self-hosted-runner-for-an-organization + */ + "PUT /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/actions/secrets#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/actions/secrets#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/actions/variables#set-selected-repositories-for-an-organization-variable + */ + "PUT /orgs/{org}/actions/variables/{name}/repositories": Operation<"/orgs/{org}/actions/variables/{name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/actions/variables#add-selected-repository-to-an-organization-variable + */ + "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/variables/{name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/orgs/blocking#block-a-user-from-an-organization + */ + "PUT /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "put">; + /** + * @see https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces + */ + "PUT /orgs/{org}/codespaces/access": Operation<"/orgs/{org}/codespaces/access", "put">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret + */ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/codespaces/organization-secrets#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret + */ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/interactions/orgs#set-interaction-restrictions-for-an-organization + */ + "PUT /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/orgs/members#set-organization-membership-for-a-user + */ + "PUT /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-team + */ + "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}": Operation<"/orgs/{org}/organization-roles/teams/{team_slug}/{role_id}", "put">; + /** + * @see https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-user + */ + "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}": Operation<"/orgs/{org}/organization-roles/users/{username}/{role_id}", "put">; + /** + * @see https://docs.github.com/rest/orgs/outside-collaborators#convert-an-organization-member-to-outside-collaborator + */ + "PUT /orgs/{org}/outside_collaborators/{username}": Operation<"/orgs/{org}/outside_collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/orgs/custom-properties#create-or-update-a-custom-property-for-an-organization + */ + "PUT /orgs/{org}/properties/schema/{custom_property_name}": Operation<"/orgs/{org}/properties/schema/{custom_property_name}", "put">; + /** + * @see https://docs.github.com/rest/orgs/members#set-public-organization-membership-for-the-authenticated-user + */ + "PUT /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "put">; + /** + * @see https://docs.github.com/rest/orgs/rules#update-an-organization-repository-ruleset + */ + "PUT /orgs/{org}/rulesets/{ruleset_id}": Operation<"/orgs/{org}/rulesets/{ruleset_id}", "put">; + /** + * @see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team + */ + "PUT /orgs/{org}/security-managers/teams/{team_slug}": Operation<"/orgs/{org}/security-managers/teams/{team_slug}", "put">; + /** + * @see https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user + */ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/rest/teams/teams#add-or-update-team-project-permissions + */ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "put">; + /** + * @see https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions + */ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "put">; + /** + * @see https://docs.github.com/rest/projects/collaborators#add-project-collaborator + */ + "PUT /projects/{project_id}/collaborators/{username}": Operation<"/projects/{project_id}/collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub": Operation<"/repos/{owner}/{repo}/actions/oidc/customization/sub", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-github-actions-permissions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions": Operation<"/repos/{owner}/{repo}/actions/permissions", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-the-level-of-access-for-workflows-outside-of-the-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions/access": Operation<"/repos/{owner}/{repo}/actions/permissions/access", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-allowed-actions-and-reusable-workflows-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions": Operation<"/repos/{owner}/{repo}/actions/permissions/selected-actions", "put">; + /** + * @see https://docs.github.com/rest/actions/permissions#set-default-workflow-permissions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions/workflow": Operation<"/repos/{owner}/{repo}/actions/permissions/workflow", "put">; + /** + * @see https://docs.github.com/rest/actions/self-hosted-runners#set-custom-labels-for-a-self-hosted-runner-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "put">; + /** + * @see https://docs.github.com/rest/actions/secrets#create-or-update-a-repository-secret + */ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/actions/workflows#disable-a-workflow + */ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable", "put">; + /** + * @see https://docs.github.com/rest/actions/workflows#enable-a-workflow + */ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable", "put">; + /** + * @see https://docs.github.com/rest/repos/repos#enable-automated-security-fixes + */ + "PUT /repos/{owner}/{repo}/automated-security-fixes": Operation<"/repos/{owner}/{repo}/automated-security-fixes", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#update-branch-protection + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-status-check-contexts + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-app-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-team-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "put">; + /** + * @see https://docs.github.com/rest/branches/branch-protection#set-user-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "put">; + /** + * @see https://docs.github.com/rest/codespaces/repository-secrets#create-or-update-a-repository-secret + */ + "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/codespaces/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/collaborators/collaborators#add-a-repository-collaborator + */ + "PUT /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/repos/contents#create-or-update-file-contents + */ + "PUT /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "put">; + /** + * @see https://docs.github.com/rest/dependabot/secrets#create-or-update-a-repository-secret + */ + "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/deployments/environments#create-or-update-an-environment + */ + "PUT /repos/{owner}/{repo}/environments/{environment_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}", "put">; + /** + * @see https://docs.github.com/rest/deployments/branch-policies#update-a-deployment-branch-policy + */ + "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}", "put">; + /** + * @see https://docs.github.com/rest/actions/secrets#create-or-update-an-environment-secret + */ + "PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/migrations/source-imports#start-an-import + */ + "PUT /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "put">; + /** + * @see https://docs.github.com/rest/interactions/repos#set-interaction-restrictions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/issues/labels#set-labels-for-an-issue + */ + "PUT /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "put">; + /** + * @see https://docs.github.com/rest/issues/issues#lock-an-issue + */ + "PUT /repos/{owner}/{repo}/issues/{issue_number}/lock": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/lock", "put">; + /** + * @see https://docs.github.com/rest/activity/notifications#mark-repository-notifications-as-read + */ + "PUT /repos/{owner}/{repo}/notifications": Operation<"/repos/{owner}/{repo}/notifications", "put">; + /** + * @see https://docs.github.com/rest/pages/pages#update-information-about-a-apiname-pages-site + */ + "PUT /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "put">; + /** + * @see https://docs.github.com/rest/repos/repos#enable-private-vulnerability-reporting-for-a-repository + */ + "PUT /repos/{owner}/{repo}/private-vulnerability-reporting": Operation<"/repos/{owner}/{repo}/private-vulnerability-reporting", "put">; + /** + * @see https://docs.github.com/rest/pulls/pulls#merge-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/merge", "put">; + /** + * @see https://docs.github.com/rest/pulls/reviews#update-a-review-for-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "put">; + /** + * @see https://docs.github.com/rest/pulls/reviews#dismiss-a-review-for-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals", "put">; + /** + * @see https://docs.github.com/rest/pulls/pulls#update-a-pull-request-branch + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/update-branch", "put">; + /** + * @see https://docs.github.com/rest/repos/rules#update-a-repository-ruleset + */ + "PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}": Operation<"/repos/{owner}/{repo}/rulesets/{ruleset_id}", "put">; + /** + * @see https://docs.github.com/rest/activity/watching#set-a-repository-subscription + */ + "PUT /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "put">; + /** + * @see https://docs.github.com/rest/repos/repos#replace-all-repository-topics + */ + "PUT /repos/{owner}/{repo}/topics": Operation<"/repos/{owner}/{repo}/topics", "put">; + /** + * @see https://docs.github.com/rest/repos/repos#enable-vulnerability-alerts + */ + "PUT /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "put">; + /** + * @see https://docs.github.com/rest/teams/members#add-team-member-legacy + */ + "PUT /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "put">; + /** + * @see https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user-legacy + */ + "PUT /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/rest/teams/teams#add-or-update-team-project-permissions-legacy + */ + "PUT /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "put">; + /** + * @see https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions-legacy + */ + "PUT /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "put">; + /** + * @see https://docs.github.com/rest/users/blocking#block-a-user + */ + "PUT /user/blocks/{username}": Operation<"/user/blocks/{username}", "put">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#create-or-update-a-secret-for-the-authenticated-user + */ + "PUT /user/codespaces/secrets/{secret_name}": Operation<"/user/codespaces/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#set-selected-repositories-for-a-user-secret + */ + "PUT /user/codespaces/secrets/{secret_name}/repositories": Operation<"/user/codespaces/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/codespaces/secrets#add-a-selected-repository-to-a-user-secret + */ + "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/user/codespaces/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/users/followers#follow-a-user + */ + "PUT /user/following/{username}": Operation<"/user/following/{username}", "put">; + /** + * @see https://docs.github.com/rest/apps/installations#add-a-repository-to-an-app-installation + */ + "PUT /user/installations/{installation_id}/repositories/{repository_id}": Operation<"/user/installations/{installation_id}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/interactions/user#set-interaction-restrictions-for-your-public-repositories + */ + "PUT /user/interaction-limits": Operation<"/user/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/activity/starring#star-a-repository-for-the-authenticated-user + */ + "PUT /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "put">; +} +export {}; diff --git a/node_modules/@octokit/types/dist-types/index.d.ts b/node_modules/@octokit/types/dist-types/index.d.ts new file mode 100644 index 000000000..004ae9b22 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/index.d.ts @@ -0,0 +1,21 @@ +export * from "./AuthInterface"; +export * from "./EndpointDefaults"; +export * from "./EndpointInterface"; +export * from "./EndpointOptions"; +export * from "./Fetch"; +export * from "./OctokitResponse"; +export * from "./RequestError"; +export * from "./RequestHeaders"; +export * from "./RequestInterface"; +export * from "./RequestMethod"; +export * from "./RequestOptions"; +export * from "./RequestParameters"; +export * from "./RequestRequestOptions"; +export * from "./ResponseHeaders"; +export * from "./Route"; +export * from "./Signal"; +export * from "./StrategyInterface"; +export * from "./Url"; +export * from "./VERSION"; +export * from "./GetResponseTypeFromEndpointMethod"; +export * from "./generated/Endpoints"; diff --git a/node_modules/@octokit/types/package.json b/node_modules/@octokit/types/package.json new file mode 100644 index 000000000..7ee12d257 --- /dev/null +++ b/node_modules/@octokit/types/package.json @@ -0,0 +1,47 @@ +{ + "name": "@octokit/types", + "version": "13.5.0", + "publishConfig": { + "access": "public", + "provenance": true + }, + "description": "Shared TypeScript definitions for Octokit projects", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + }, + "repository": "github:octokit/types.ts", + "keywords": [ + "github", + "api", + "sdk", + "toolkit", + "typescript" + ], + "author": "Gregor Martynus (https://twitter.com/gr2m)", + "license": "MIT", + "devDependencies": { + "@octokit/tsconfig": "^2.0.0", + "@types/node": ">= 8", + "github-openapi-graphql-query": "^4.0.0", + "handlebars": "^4.7.6", + "json-schema-to-typescript": "^14.0.0", + "lodash.set": "^4.3.2", + "npm-run-all2": "^6.0.0", + "pascal-case": "^4.0.0", + "prettier": "^3.0.0", + "semantic-release": "^23.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "sort-keys": "^5.0.0", + "string-to-jsdoc-comment": "^1.0.0", + "typedoc": "^0.25.0", + "typescript": "^5.0.0" + }, + "octokit": { + "openapi-version": "16.5.0" + }, + "files": [ + "dist-types/**" + ], + "types": "dist-types/index.d.ts", + "sideEffects": false +} diff --git a/node_modules/before-after-hook/LICENSE b/node_modules/before-after-hook/LICENSE new file mode 100644 index 000000000..225063c34 --- /dev/null +++ b/node_modules/before-after-hook/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018 Gregor Martynus and other contributors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/node_modules/before-after-hook/README.md b/node_modules/before-after-hook/README.md new file mode 100644 index 000000000..07d7756ba --- /dev/null +++ b/node_modules/before-after-hook/README.md @@ -0,0 +1,653 @@ +# before-after-hook + +> asynchronous hooks for internal functionality + +[![npm downloads](https://img.shields.io/npm/dw/before-after-hook.svg)](https://www.npmjs.com/package/before-after-hook) +[![Test](https://github.com/gr2m/before-after-hook/actions/workflows/test.yml/badge.svg)](https://github.com/gr2m/before-after-hook/actions/workflows/test.yml) + +## Usage + +### Singular hook + +```js +// instantiate singular hook API +const hook = new Hook.Singular(); + +// Create a hook +function getData(options) { + return hook(fetchFromDatabase, options) + .then(handleData) + .catch(handleGetError); +} + +// register before/error/after hooks. +// The methods can be async or return a promise +hook.before(beforeHook); +hook.error(errorHook); +hook.after(afterHook); + +getData({ id: 123 }); +``` + +### Hook collection + +```js +// instantiate hook collection API +const hookCollection = new Hook.Collection(); + +// Create a hook +function getData(options) { + return hookCollection("get", fetchFromDatabase, options) + .then(handleData) + .catch(handleGetError); +} + +// register before/error/after hooks. +// The methods can be async or return a promise +hookCollection.before("get", beforeHook); +hookCollection.error("get", errorHook); +hookCollection.after("get", afterHook); + +getData({ id: 123 }); +``` + +### Hook.Singular vs Hook.Collection + +There's no fundamental difference between the `Hook.Singular` and `Hook.Collection` hooks except for the fact that a hook from a collection requires you to pass along the name. Therefore the following explanation applies to both code snippets as described above. + +The methods are executed in the following order + +1. `beforeHook` +2. `fetchFromDatabase` +3. `afterHook` +4. `handleData` + +`beforeHook` can mutate `options` before it’s passed to `fetchFromDatabase`. + +If an error is thrown in `beforeHook` or `fetchFromDatabase` then `errorHook` is +called next. + +If `afterHook` throws an error then `handleGetError` is called instead +of `handleData`. + +If `errorHook` throws an error then `handleGetError` is called next, otherwise +`afterHook` and `handleData`. + +You can also use `hook.wrap` to achieve the same thing as shown above (collection example): + +```js +hookCollection.wrap("get", async (getData, options) => { + await beforeHook(options); + + try { + const result = getData(options); + } catch (error) { + await errorHook(error, options); + } + + await afterHook(result, options); +}); +``` + +## Install + +``` +npm install before-after-hook +``` + +Or download [the latest `before-after-hook.min.js`](https://github.com/gr2m/before-after-hook/releases/latest). + +## API + +- [Singular Hook Constructor](#singular-hook-api) +- [Hook Collection Constructor](#hook-collection-api) + +## Singular hook API + +- [Singular constructor](#singular-constructor) +- [hook.api](#singular-api) +- [hook()](#singular-api) +- [hook.before()](#singular-api) +- [hook.error()](#singular-api) +- [hook.after()](#singular-api) +- [hook.wrap()](#singular-api) +- [hook.remove()](#singular-api) + +### Singular constructor + +The `Hook.Singular` constructor has no options and returns a `hook` instance with the +methods below: + +```js +const hook = new Hook.Singular(); +``` + +Using the singular hook is recommended for [TypeScript](#typescript) + +### Singular API + +The singular hook is a reference to a single hook. This means that there's no need to pass along any identifier (such as a `name` as can be seen in the [Hook.Collection API](#hookcollectionapi)). + +The API of a singular hook is exactly the same as a collection hook and we therefore suggest you read the [Hook.Collection API](#hookcollectionapi) and leave out any use of the `name` argument. Just skip it like described in this example: + +```js +const hook = new Hook.Singular(); + +// good +hook.before(beforeHook); +hook.after(afterHook); +hook(fetchFromDatabase, options); + +// bad +hook.before("get", beforeHook); +hook.after("get", afterHook); +hook("get", fetchFromDatabase, options); +``` + +## Hook collection API + +- [Collection constructor](#collection-constructor) +- [hookCollection.api](#hookcollectionapi) +- [hookCollection()](#hookcollection) +- [hookCollection.before()](#hookcollectionbefore) +- [hookCollection.error()](#hookcollectionerror) +- [hookCollection.after()](#hookcollectionafter) +- [hookCollection.wrap()](#hookcollectionwrap) +- [hookCollection.remove()](#hookcollectionremove) + +### Collection constructor + +The `Hook.Collection` constructor has no options and returns a `hookCollection` instance with the +methods below + +```js +const hookCollection = new Hook.Collection(); +``` + +### hookCollection.api + +Use the `api` property to return the public API: + +- [hookCollection.before()](#hookcollectionbefore) +- [hookCollection.after()](#hookcollectionafter) +- [hookCollection.error()](#hookcollectionerror) +- [hookCollection.wrap()](#hookcollectionwrap) +- [hookCollection.remove()](#hookcollectionremove) + +That way you don’t need to expose the [hookCollection()](#hookcollection) method to consumers of your library + +### hookCollection() + +Invoke before and after hooks. Returns a promise. + +```js +hookCollection(nameOrNames, method /*, options */); +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameString or Array of StringsHook name, for example 'save'. Or an array of names, see example below.Yes
methodFunctionCallback to be executed after all before hooks finished execution successfully. options is passed as first argumentYes
optionsObjectWill be passed to all before hooks as reference, so they can mutate itNo, defaults to empty object ({})
+ +Resolves with whatever `method` returns or resolves with. +Rejects with error that is thrown or rejected with by + +1. Any of the before hooks, whichever rejects / throws first +2. `method` +3. Any of the after hooks, whichever rejects / throws first + +Simple Example + +```js +hookCollection( + "save", + function (record) { + return store.save(record); + }, + record +); +// shorter: hookCollection('save', store.save, record) + +hookCollection.before("save", function addTimestamps(record) { + const now = new Date().toISOString(); + if (record.createdAt) { + record.updatedAt = now; + } else { + record.createdAt = now; + } +}); +``` + +Example defining multiple hooks at once. + +```js +hookCollection( + ["add", "save"], + function (record) { + return store.save(record); + }, + record +); + +hookCollection.before("add", function addTimestamps(record) { + if (!record.type) { + throw new Error("type property is required"); + } +}); + +hookCollection.before("save", function addTimestamps(record) { + if (!record.type) { + throw new Error("type property is required"); + } +}); +``` + +Defining multiple hooks is helpful if you have similar methods for which you want to define separate hooks, but also an additional hook that gets called for all at once. The example above is equal to this: + +```js +hookCollection( + "add", + function (record) { + return hookCollection( + "save", + function (record) { + return store.save(record); + }, + record + ); + }, + record +); +``` + +### hookCollection.before() + +Add before hook for given name. + +```js +hookCollection.before(name, method); +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
methodFunction + Executed before the wrapped method. Called with the hook’s + options argument. Before hooks can mutate the passed options + before they are passed to the wrapped method. + Yes
+ +Example + +```js +hookCollection.before("save", function validate(record) { + if (!record.name) { + throw new Error("name property is required"); + } +}); +``` + +### hookCollection.error() + +Add error hook for given name. + +```js +hookCollection.error(name, method); +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
methodFunction + Executed when an error occurred in either the wrapped method or a + before hook. Called with the thrown error + and the hook’s options argument. The first method + which does not throw an error will set the result that the after hook + methods will receive. + Yes
+ +Example + +```js +hookCollection.error("save", function (error, options) { + if (error.ignore) return; + throw error; +}); +``` + +### hookCollection.after() + +Add after hook for given name. + +```js +hookCollection.after(name, method); +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
methodFunction + Executed after wrapped method. Called with what the wrapped method + resolves with the hook’s options argument. + Yes
+ +Example + +```js +hookCollection.after("save", function (result, options) { + if (result.updatedAt) { + app.emit("update", result); + } else { + app.emit("create", result); + } +}); +``` + +### hookCollection.wrap() + +Add wrap hook for given name. + +```js +hookCollection.wrap(name, method); +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
methodFunction + Receives both the wrapped method and the passed options as arguments so it can add logic before and after the wrapped method, it can handle errors and even replace the wrapped method altogether + Yes
+ +Example + +```js +hookCollection.wrap("save", async function (saveInDatabase, options) { + if (!record.name) { + throw new Error("name property is required"); + } + + try { + const result = await saveInDatabase(options); + + if (result.updatedAt) { + app.emit("update", result); + } else { + app.emit("create", result); + } + + return result; + } catch (error) { + if (error.ignore) return; + throw error; + } +}); +``` + +See also: [Test mock example](examples/test-mock-example.md) + +### hookCollection.remove() + +Removes hook for given name. + +```js +hookCollection.remove(name, hookMethod); +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
beforeHookMethodFunction + Same function that was previously passed to hookCollection.before(), hookCollection.error(), hookCollection.after() or hookCollection.wrap() + Yes
+ +Example + +```js +hookCollection.remove("save", validateRecord); +``` + +## TypeScript + +This library contains type definitions for TypeScript. + +### Type support for `Singular`: + +```ts +import { Hook } from "before-after-hook"; + +type TOptions = { foo: string }; // type for options +type TResult = { bar: number }; // type for result +type TError = Error; // type for error + +const hook = new Hook.Singular(); + +hook.before((options) => { + // `options.foo` has `string` type + + // not allowed + options.foo = 42; + + // allowed + options.foo = "Forty-Two"; +}); + +const hookedMethod = hook( + (options) => { + // `options.foo` has `string` type + + // not allowed, because it does not satisfy the `R` type + return { foo: 42 }; + + // allowed + return { bar: 42 }; + }, + { foo: "Forty-Two" } +); +``` + +You can choose not to pass the types for options, result or error. So, these are completely valid: + +```ts +const hook = new Hook.Singular(); +const hook = new Hook.Singular(); +const hook = new Hook.Singular(); +``` + +In these cases, the omitted types will implicitly be `any`. + +### Type support for `Collection`: + +`Collection` also has strict type support. You can use it like this: + +```ts +import { Hook } from "before-after-hook"; + +type HooksType = { + add: { + Options: { type: string }; + Result: { id: number }; + Error: Error; + }; + save: { + Options: { type: string }; + Result: { id: number }; + }; + read: { + Options: { id: number; foo: number }; + }; + destroy: { + Options: { id: number; foo: string }; + }; +}; + +const hooks = new Hook.Collection(); + +hooks.before("destroy", (options) => { + // `options.id` has `number` type +}); + +hooks.error("add", (err, options) => { + // `options.type` has `string` type + // `err` is `instanceof Error` +}); + +hooks.error("save", (err, options) => { + // `options.type` has `string` type + // `err` has type `any` +}); + +hooks.after("save", (result, options) => { + // `options.type` has `string` type + // `result.id` has `number` type +}); +``` + +You can choose not to pass the types altogether. In that case, everything will implicitly be `any`: + +```ts +const hook = new Hook.Collection(); +``` + +Alternative imports: + +```ts +import { Singular, Collection } from "before-after-hook"; + +const hook = new Singular(); +const hooks = new Collection(); +``` + +## Upgrading to 1.4 + +Since version 1.4 the `Hook` constructor has been deprecated in favor of returning `Hook.Singular` in an upcoming breaking release. + +Version 1.4 is still 100% backwards-compatible, but if you want to continue using hook collections, we recommend using the `Hook.Collection` constructor instead before the next release. + +For even more details, check out [the PR](https://github.com/gr2m/before-after-hook/pull/52). + +## See also + +If `before-after-hook` is not for you, have a look at one of these alternatives: + +- https://github.com/keystonejs/grappling-hook +- https://github.com/sebelga/promised-hooks +- https://github.com/bnoguchi/hooks-js +- https://github.com/cb1kenobi/hook-emitter + +## License + +[Apache 2.0](LICENSE) diff --git a/node_modules/before-after-hook/index.d.ts b/node_modules/before-after-hook/index.d.ts new file mode 100644 index 000000000..817bf93f3 --- /dev/null +++ b/node_modules/before-after-hook/index.d.ts @@ -0,0 +1,186 @@ +type HookMethod = ( + options: Options +) => Result | Promise; + +type BeforeHook = (options: Options) => void | Promise; +type ErrorHook = ( + error: Error, + options: Options +) => unknown | Promise; +type AfterHook = ( + result: Result, + options: Options +) => void | Promise; +type WrapHook = ( + hookMethod: HookMethod, + options: Options +) => Result | Promise; + +type AnyHook = + | BeforeHook + | ErrorHook + | AfterHook + | WrapHook; + +type TypeStoreKeyLong = "Options" | "Result" | "Error"; +type TypeStoreKeyShort = "O" | "R" | "E"; +type TypeStore = + | ({ [key in TypeStoreKeyLong]?: any } & + { [key in TypeStoreKeyShort]?: never }) + | ({ [key in TypeStoreKeyLong]?: never } & + { [key in TypeStoreKeyShort]?: any }); +type GetType< + Store extends TypeStore, + LongKey extends TypeStoreKeyLong, + ShortKey extends TypeStoreKeyShort +> = LongKey extends keyof Store + ? Store[LongKey] + : ShortKey extends keyof Store + ? Store[ShortKey] + : any; + +export interface HookCollection< + HooksType extends Record = Record< + string, + { Options: any; Result: any; Error: any } + >, + HookName extends keyof HooksType = keyof HooksType +> { + /** + * Invoke before and after hooks + */ + ( + name: Name | Name[], + hookMethod: HookMethod< + GetType, + GetType + >, + options?: GetType + ): Promise>; + /** + * Add `before` hook for given `name` + */ + before( + name: Name, + beforeHook: BeforeHook> + ): void; + /** + * Add `error` hook for given `name` + */ + error( + name: Name, + errorHook: ErrorHook< + GetType, + GetType + > + ): void; + /** + * Add `after` hook for given `name` + */ + after( + name: Name, + afterHook: AfterHook< + GetType, + GetType + > + ): void; + /** + * Add `wrap` hook for given `name` + */ + wrap( + name: Name, + wrapHook: WrapHook< + GetType, + GetType + > + ): void; + /** + * Remove added hook for given `name` + */ + remove( + name: Name, + hook: AnyHook< + GetType, + GetType, + GetType + > + ): void; + /** + * Public API + */ + api: Pick< + HookCollection, + "before" | "error" | "after" | "wrap" | "remove" + >; +} + +export interface HookSingular { + /** + * Invoke before and after hooks + */ + (hookMethod: HookMethod, options?: Options): Promise; + /** + * Add `before` hook + */ + before(beforeHook: BeforeHook): void; + /** + * Add `error` hook + */ + error(errorHook: ErrorHook): void; + /** + * Add `after` hook + */ + after(afterHook: AfterHook): void; + /** + * Add `wrap` hook + */ + wrap(wrapHook: WrapHook): void; + /** + * Remove added hook + */ + remove(hook: AnyHook): void; + /** + * Public API + */ + api: Pick< + HookSingular, + "before" | "error" | "after" | "wrap" | "remove" + >; +} + +type Collection = new < + HooksType extends Record = Record< + string, + { Options: any; Result: any; Error: any } + > +>() => HookCollection; +type Singular = new < + Options = any, + Result = any, + Error = any +>() => HookSingular; + +interface Hook { + new < + HooksType extends Record = Record< + string, + { Options: any; Result: any; Error: any } + > + >(): HookCollection; + + /** + * Creates a collection of hooks + */ + Collection: Collection; + + /** + * Creates a nameless hook that supports strict typings + */ + Singular: Singular; +} + +export const Hook: Hook; +export const Collection: Collection; +export const Singular: Singular; + +export default Hook; diff --git a/node_modules/before-after-hook/index.js b/node_modules/before-after-hook/index.js new file mode 100644 index 000000000..6b60d3cff --- /dev/null +++ b/node_modules/before-after-hook/index.js @@ -0,0 +1,61 @@ +var register = require("./lib/register"); +var addHook = require("./lib/add"); +var removeHook = require("./lib/remove"); + +// bind with array of arguments: https://stackoverflow.com/a/21792913 +var bind = Function.bind; +var bindable = bind.bind(bind); + +function bindApi(hook, state, name) { + var removeHookRef = bindable(removeHook, null).apply( + null, + name ? [state, name] : [state] + ); + hook.api = { remove: removeHookRef }; + hook.remove = removeHookRef; + ["before", "error", "after", "wrap"].forEach(function (kind) { + var args = name ? [state, kind, name] : [state, kind]; + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args); + }); +} + +function HookSingular() { + var singularHookName = "h"; + var singularHookState = { + registry: {}, + }; + var singularHook = register.bind(null, singularHookState, singularHookName); + bindApi(singularHook, singularHookState, singularHookName); + return singularHook; +} + +function HookCollection() { + var state = { + registry: {}, + }; + + var hook = register.bind(null, state); + bindApi(hook, state); + + return hook; +} + +var collectionHookDeprecationMessageDisplayed = false; +function Hook() { + if (!collectionHookDeprecationMessageDisplayed) { + console.warn( + '[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4' + ); + collectionHookDeprecationMessageDisplayed = true; + } + return HookCollection(); +} + +Hook.Singular = HookSingular.bind(); +Hook.Collection = HookCollection.bind(); + +module.exports = Hook; +// expose constructors as a named property for TypeScript +module.exports.Hook = Hook; +module.exports.Singular = Hook.Singular; +module.exports.Collection = Hook.Collection; diff --git a/node_modules/before-after-hook/lib/add.js b/node_modules/before-after-hook/lib/add.js new file mode 100644 index 000000000..f379eab06 --- /dev/null +++ b/node_modules/before-after-hook/lib/add.js @@ -0,0 +1,46 @@ +module.exports = addHook; + +function addHook(state, kind, name, hook) { + var orig = hook; + if (!state.registry[name]) { + state.registry[name] = []; + } + + if (kind === "before") { + hook = function (method, options) { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)); + }; + } + + if (kind === "after") { + hook = function (method, options) { + var result; + return Promise.resolve() + .then(method.bind(null, options)) + .then(function (result_) { + result = result_; + return orig(result, options); + }) + .then(function () { + return result; + }); + }; + } + + if (kind === "error") { + hook = function (method, options) { + return Promise.resolve() + .then(method.bind(null, options)) + .catch(function (error) { + return orig(error, options); + }); + }; + } + + state.registry[name].push({ + hook: hook, + orig: orig, + }); +} diff --git a/node_modules/before-after-hook/lib/register.js b/node_modules/before-after-hook/lib/register.js new file mode 100644 index 000000000..f0d3d4e83 --- /dev/null +++ b/node_modules/before-after-hook/lib/register.js @@ -0,0 +1,27 @@ +module.exports = register; + +function register(state, name, method, options) { + if (typeof method !== "function") { + throw new Error("method for before hook must be a function"); + } + + if (!options) { + options = {}; + } + + if (Array.isArray(name)) { + return name.reverse().reduce(function (callback, name) { + return register.bind(null, state, name, callback, options); + }, method)(); + } + + return Promise.resolve().then(function () { + if (!state.registry[name]) { + return method(options); + } + + return state.registry[name].reduce(function (method, registered) { + return registered.hook.bind(null, method, options); + }, method)(); + }); +} diff --git a/node_modules/before-after-hook/lib/remove.js b/node_modules/before-after-hook/lib/remove.js new file mode 100644 index 000000000..590b96355 --- /dev/null +++ b/node_modules/before-after-hook/lib/remove.js @@ -0,0 +1,19 @@ +module.exports = removeHook; + +function removeHook(state, name, method) { + if (!state.registry[name]) { + return; + } + + var index = state.registry[name] + .map(function (registered) { + return registered.orig; + }) + .indexOf(method); + + if (index === -1) { + return; + } + + state.registry[name].splice(index, 1); +} diff --git a/node_modules/before-after-hook/package.json b/node_modules/before-after-hook/package.json new file mode 100644 index 000000000..533a3ebee --- /dev/null +++ b/node_modules/before-after-hook/package.json @@ -0,0 +1,71 @@ +{ + "name": "before-after-hook", + "version": "2.2.3", + "description": "asynchronous before/error/after hooks for internal functionality", + "main": "index.js", + "files": [ + "index.js", + "index.d.ts", + "lib" + ], + "types": "./index.d.ts", + "scripts": { + "prebuild": "rimraf dist && mkdirp dist", + "build": "browserify index.js --standalone=Hook > dist/before-after-hook.js", + "postbuild": "uglifyjs dist/before-after-hook.js -mc > dist/before-after-hook.min.js", + "lint": "prettier --check '{lib,test,examples}/**/*' 'index.*' README.md package.json", + "lint:fix": "prettier --write '{lib,test,examples}/**/*' 'index.*' README.md package.json", + "pretest": "npm run -s lint", + "test": "npm run -s test:node | tap-spec", + "posttest": "npm run validate:ts", + "test:node": "node test", + "test:watch": "gaze 'clear && node test | tap-min' 'test/**/*.js' 'index.js' 'lib/**/*.js'", + "test:coverage": "istanbul cover test", + "test:coverage:upload": "istanbul-coveralls", + "validate:ts": "tsc --strict --target es6 index.d.ts", + "postvalidate:ts": "tsc --noEmit --strict --target es6 test/typescript-validate.ts", + "presemantic-release": "npm run build", + "semantic-release": "semantic-release" + }, + "repository": "github:gr2m/before-after-hook", + "keywords": [ + "hook", + "hooks", + "api" + ], + "author": "Gregor Martynus", + "license": "Apache-2.0", + "dependencies": {}, + "devDependencies": { + "browserify": "^16.0.0", + "gaze-cli": "^0.2.0", + "istanbul": "^0.4.0", + "istanbul-coveralls": "^1.0.3", + "mkdirp": "^1.0.3", + "prettier": "^2.0.0", + "rimraf": "^3.0.0", + "semantic-release": "^19.0.3", + "simple-mock": "^0.8.0", + "tap-min": "^2.0.0", + "tap-spec": "^5.0.0", + "tape": "^5.0.0", + "typescript": "^3.5.3", + "uglify-js": "^3.9.0" + }, + "release": { + "branches": [ + "+([0-9]).x", + "main", + "next", + { + "name": "beta", + "prerelease": true + } + ] + }, + "renovate": { + "extends": [ + "github>gr2m/.github" + ] + } +} diff --git a/node_modules/deprecation/LICENSE b/node_modules/deprecation/LICENSE new file mode 100644 index 000000000..1683b5838 --- /dev/null +++ b/node_modules/deprecation/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Gregor Martynus and contributors + +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. + +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. diff --git a/node_modules/deprecation/README.md b/node_modules/deprecation/README.md new file mode 100644 index 000000000..648809d5d --- /dev/null +++ b/node_modules/deprecation/README.md @@ -0,0 +1,77 @@ +# deprecation + +> Log a deprecation message with stack + +![build](https://action-badges.now.sh/gr2m/deprecation) + +## Usage + + + + + + +
+Browsers + + +Load `deprecation` directly from [cdn.pika.dev](https://cdn.pika.dev) + +```html + +``` + +
+Node + + +Install with `npm install deprecation` + +```js +const { Deprecation } = require("deprecation"); +// or: import { Deprecation } from "deprecation"; +``` + +
+ +```js +function foo() { + bar(); +} + +function bar() { + baz(); +} + +function baz() { + console.warn(new Deprecation("[my-lib] foo() is deprecated, use bar()")); +} + +foo(); +// { Deprecation: [my-lib] foo() is deprecated, use bar() +// at baz (/path/to/file.js:12:15) +// at bar (/path/to/file.js:8:3) +// at foo (/path/to/file.js:4:3) +``` + +To log a deprecation message only once, you can use the [once](https://www.npmjs.com/package/once) module. + +```js +const Deprecation = require("deprecation"); +const once = require("once"); + +const deprecateFoo = once(console.warn); + +function foo() { + deprecateFoo(new Deprecation("[my-lib] foo() is deprecated, use bar()")); +} + +foo(); +foo(); // logs nothing +``` + +## License + +[ISC](LICENSE) diff --git a/node_modules/deprecation/dist-node/index.js b/node_modules/deprecation/dist-node/index.js new file mode 100644 index 000000000..9da177570 --- /dev/null +++ b/node_modules/deprecation/dist-node/index.js @@ -0,0 +1,20 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = 'Deprecation'; + } + +} + +exports.Deprecation = Deprecation; diff --git a/node_modules/deprecation/dist-src/index.js b/node_modules/deprecation/dist-src/index.js new file mode 100644 index 000000000..7950fdc06 --- /dev/null +++ b/node_modules/deprecation/dist-src/index.js @@ -0,0 +1,14 @@ +export class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = 'Deprecation'; + } + +} \ No newline at end of file diff --git a/node_modules/deprecation/dist-types/index.d.ts b/node_modules/deprecation/dist-types/index.d.ts new file mode 100644 index 000000000..e3ae7ad42 --- /dev/null +++ b/node_modules/deprecation/dist-types/index.d.ts @@ -0,0 +1,3 @@ +export class Deprecation extends Error { + name: "Deprecation"; +} diff --git a/node_modules/deprecation/dist-web/index.js b/node_modules/deprecation/dist-web/index.js new file mode 100644 index 000000000..c6bbda759 --- /dev/null +++ b/node_modules/deprecation/dist-web/index.js @@ -0,0 +1,16 @@ +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = 'Deprecation'; + } + +} + +export { Deprecation }; diff --git a/node_modules/deprecation/package.json b/node_modules/deprecation/package.json new file mode 100644 index 000000000..a45fd513b --- /dev/null +++ b/node_modules/deprecation/package.json @@ -0,0 +1,34 @@ +{ + "name": "deprecation", + "description": "Log a deprecation message with stack", + "version": "2.3.1", + "license": "ISC", + "files": [ + "dist-*/", + "bin/" + ], + "esnext": "dist-src/index.js", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "types": "dist-types/index.d.ts", + "pika": true, + "sideEffects": false, + "keywords": [ + "deprecate", + "deprecated", + "deprecation" + ], + "repository": { + "type": "git", + "url": "https://github.com/gr2m/deprecation.git" + }, + "dependencies": {}, + "devDependencies": { + "@pika/pack": "^0.3.7", + "@pika/plugin-build-node": "^0.4.0", + "@pika/plugin-build-types": "^0.4.0", + "@pika/plugin-build-web": "^0.4.0", + "@pika/plugin-standard-pkg": "^0.4.0", + "semantic-release": "^15.13.3" + } +} diff --git a/node_modules/once/LICENSE b/node_modules/once/LICENSE new file mode 100644 index 000000000..19129e315 --- /dev/null +++ b/node_modules/once/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +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. + +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. diff --git a/node_modules/once/README.md b/node_modules/once/README.md new file mode 100644 index 000000000..1f1ffca93 --- /dev/null +++ b/node_modules/once/README.md @@ -0,0 +1,79 @@ +# once + +Only call a function once. + +## usage + +```javascript +var once = require('once') + +function load (file, cb) { + cb = once(cb) + loader.load('file') + loader.once('load', cb) + loader.once('error', cb) +} +``` + +Or add to the Function.prototype in a responsible way: + +```javascript +// only has to be done once +require('once').proto() + +function load (file, cb) { + cb = cb.once() + loader.load('file') + loader.once('load', cb) + loader.once('error', cb) +} +``` + +Ironically, the prototype feature makes this module twice as +complicated as necessary. + +To check whether you function has been called, use `fn.called`. Once the +function is called for the first time the return value of the original +function is saved in `fn.value` and subsequent calls will continue to +return this value. + +```javascript +var once = require('once') + +function load (cb) { + cb = once(cb) + var stream = createStream() + stream.once('data', cb) + stream.once('end', function () { + if (!cb.called) cb(new Error('not found')) + }) +} +``` + +## `once.strict(func)` + +Throw an error if the function is called twice. + +Some functions are expected to be called only once. Using `once` for them would +potentially hide logical errors. + +In the example below, the `greet` function has to call the callback only once: + +```javascript +function greet (name, cb) { + // return is missing from the if statement + // when no name is passed, the callback is called twice + if (!name) cb('Hello anonymous') + cb('Hello ' + name) +} + +function log (msg) { + console.log(msg) +} + +// this will print 'Hello anonymous' but the logical error will be missed +greet(null, once(msg)) + +// once.strict will print 'Hello anonymous' and throw an error when the callback will be called the second time +greet(null, once.strict(msg)) +``` diff --git a/node_modules/once/once.js b/node_modules/once/once.js new file mode 100644 index 000000000..235406736 --- /dev/null +++ b/node_modules/once/once.js @@ -0,0 +1,42 @@ +var wrappy = require('wrappy') +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) + +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) + + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) + +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) + } + f.called = false + return f +} + +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f +} diff --git a/node_modules/once/package.json b/node_modules/once/package.json new file mode 100644 index 000000000..16815b2fa --- /dev/null +++ b/node_modules/once/package.json @@ -0,0 +1,33 @@ +{ + "name": "once", + "version": "1.4.0", + "description": "Run a function exactly one time", + "main": "once.js", + "directories": { + "test": "test" + }, + "dependencies": { + "wrappy": "1" + }, + "devDependencies": { + "tap": "^7.0.1" + }, + "scripts": { + "test": "tap test/*.js" + }, + "files": [ + "once.js" + ], + "repository": { + "type": "git", + "url": "git://github.com/isaacs/once" + }, + "keywords": [ + "once", + "function", + "one", + "single" + ], + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "ISC" +} diff --git a/node_modules/universal-user-agent/LICENSE.md b/node_modules/universal-user-agent/LICENSE.md new file mode 100644 index 000000000..f105ab0c0 --- /dev/null +++ b/node_modules/universal-user-agent/LICENSE.md @@ -0,0 +1,7 @@ +# [ISC License](https://spdx.org/licenses/ISC) + +Copyright (c) 2018, Gregor Martynus (https://github.com/gr2m) + +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. + +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. diff --git a/node_modules/universal-user-agent/README.md b/node_modules/universal-user-agent/README.md new file mode 100644 index 000000000..170ae0c90 --- /dev/null +++ b/node_modules/universal-user-agent/README.md @@ -0,0 +1,25 @@ +# universal-user-agent + +> Get a user agent string in both browser and node + +[![@latest](https://img.shields.io/npm/v/universal-user-agent.svg)](https://www.npmjs.com/package/universal-user-agent) +[![Build Status](https://github.com/gr2m/universal-user-agent/workflows/Test/badge.svg)](https://github.com/gr2m/universal-user-agent/actions?query=workflow%3ATest+branch%3Amaster) +[![Greenkeeper](https://badges.greenkeeper.io/gr2m/universal-user-agent.svg)](https://greenkeeper.io/) + +```js +const { getUserAgent } = require("universal-user-agent"); +// or import { getUserAgent } from "universal-user-agent"; + +const userAgent = getUserAgent(); +// userAgent will look like this +// in browser: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0) Gecko/20100101 Firefox/61.0" +// in node: Node.js/v8.9.4 (macOS High Sierra; x64) +``` + +## Credits + +The Node implementation was originally inspired by [default-user-agent](https://www.npmjs.com/package/default-user-agent). + +## License + +[ISC](LICENSE.md) diff --git a/node_modules/universal-user-agent/dist-node/index.js b/node_modules/universal-user-agent/dist-node/index.js new file mode 100644 index 000000000..8865c7c42 --- /dev/null +++ b/node_modules/universal-user-agent/dist-node/index.js @@ -0,0 +1,18 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } + + if (typeof process === "object" && process.version !== undefined) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; + } + + return ""; +} + +exports.getUserAgent = getUserAgent; +//# sourceMappingURL=index.js.map diff --git a/node_modules/universal-user-agent/dist-node/index.js.map b/node_modules/universal-user-agent/dist-node/index.js.map new file mode 100644 index 000000000..0a2cead33 --- /dev/null +++ b/node_modules/universal-user-agent/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/index.js"],"sourcesContent":["export function getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n if (typeof process === \"object\" && process.version !== undefined) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n return \"\";\n}\n"],"names":["getUserAgent","navigator","userAgent","process","version","undefined","substr","platform","arch"],"mappings":";;;;AAAO,SAASA,YAAT,GAAwB;AAC3B,MAAI,OAAOC,SAAP,KAAqB,QAArB,IAAiC,eAAeA,SAApD,EAA+D;AAC3D,WAAOA,SAAS,CAACC,SAAjB;AACH;;AACD,MAAI,OAAOC,OAAP,KAAmB,QAAnB,IAA+BA,OAAO,CAACC,OAAR,KAAoBC,SAAvD,EAAkE;AAC9D,WAAQ,WAAUF,OAAO,CAACC,OAAR,CAAgBE,MAAhB,CAAuB,CAAvB,CAA0B,KAAIH,OAAO,CAACI,QAAS,KAAIJ,OAAO,CAACK,IAAK,GAAlF;AACH;;AACD,SAAO,4BAAP;AACH;;;;"} \ No newline at end of file diff --git a/node_modules/universal-user-agent/dist-src/index.js b/node_modules/universal-user-agent/dist-src/index.js new file mode 100644 index 000000000..3006e37ef --- /dev/null +++ b/node_modules/universal-user-agent/dist-src/index.js @@ -0,0 +1,9 @@ +export function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } + if (typeof process === "object" && process.version !== undefined) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; + } + return ""; +} diff --git a/node_modules/universal-user-agent/dist-types/index.d.ts b/node_modules/universal-user-agent/dist-types/index.d.ts new file mode 100644 index 000000000..a7bb1c440 --- /dev/null +++ b/node_modules/universal-user-agent/dist-types/index.d.ts @@ -0,0 +1 @@ +export declare function getUserAgent(): string; diff --git a/node_modules/universal-user-agent/dist-web/index.js b/node_modules/universal-user-agent/dist-web/index.js new file mode 100644 index 000000000..fc742b945 --- /dev/null +++ b/node_modules/universal-user-agent/dist-web/index.js @@ -0,0 +1,12 @@ +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } + if (typeof process === "object" && process.version !== undefined) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; + } + return ""; +} + +export { getUserAgent }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/universal-user-agent/dist-web/index.js.map b/node_modules/universal-user-agent/dist-web/index.js.map new file mode 100644 index 000000000..2cdf1934d --- /dev/null +++ b/node_modules/universal-user-agent/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/index.js"],"sourcesContent":["export function getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n if (typeof process === \"object\" && process.version !== undefined) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n return \"\";\n}\n"],"names":[],"mappings":"AAAO,SAAS,YAAY,GAAG;AAC/B,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,WAAW,IAAI,SAAS,EAAE;AACnE,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC;AACnC,KAAK;AACL,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;AACtE,QAAQ,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7F,KAAK;AACL,IAAI,OAAO,4BAA4B,CAAC;AACxC;;;;"} \ No newline at end of file diff --git a/node_modules/universal-user-agent/package.json b/node_modules/universal-user-agent/package.json new file mode 100644 index 000000000..c38616397 --- /dev/null +++ b/node_modules/universal-user-agent/package.json @@ -0,0 +1,31 @@ +{ + "name": "universal-user-agent", + "description": "Get a user agent string in both browser and node", + "version": "6.0.1", + "license": "ISC", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [], + "repository": "https://github.com/gr2m/universal-user-agent.git", + "dependencies": {}, + "devDependencies": { + "@gr2m/pika-plugin-build-web": "^0.6.0-issue-84.1", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.1", + "@pika/plugin-ts-standard-pkg": "^0.9.1", + "@types/jest": "^25.1.0", + "jest": "^24.9.0", + "prettier": "^2.0.0", + "semantic-release": "^17.0.5", + "ts-jest": "^26.0.0", + "typescript": "^3.6.2" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "module": "dist-web/index.js" +} diff --git a/node_modules/wrappy/LICENSE b/node_modules/wrappy/LICENSE new file mode 100644 index 000000000..19129e315 --- /dev/null +++ b/node_modules/wrappy/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +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. + +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. diff --git a/node_modules/wrappy/README.md b/node_modules/wrappy/README.md new file mode 100644 index 000000000..98eab2522 --- /dev/null +++ b/node_modules/wrappy/README.md @@ -0,0 +1,36 @@ +# wrappy + +Callback wrapping utility + +## USAGE + +```javascript +var wrappy = require("wrappy") + +// var wrapper = wrappy(wrapperFunction) + +// make sure a cb is called only once +// See also: http://npm.im/once for this specific use case +var once = wrappy(function (cb) { + var called = false + return function () { + if (called) return + called = true + return cb.apply(this, arguments) + } +}) + +function printBoo () { + console.log('boo') +} +// has some rando property +printBoo.iAmBooPrinter = true + +var onlyPrintOnce = once(printBoo) + +onlyPrintOnce() // prints 'boo' +onlyPrintOnce() // does nothing + +// random property is retained! +assert.equal(onlyPrintOnce.iAmBooPrinter, true) +``` diff --git a/node_modules/wrappy/package.json b/node_modules/wrappy/package.json new file mode 100644 index 000000000..130752046 --- /dev/null +++ b/node_modules/wrappy/package.json @@ -0,0 +1,29 @@ +{ + "name": "wrappy", + "version": "1.0.2", + "description": "Callback wrapping utility", + "main": "wrappy.js", + "files": [ + "wrappy.js" + ], + "directories": { + "test": "test" + }, + "dependencies": {}, + "devDependencies": { + "tap": "^2.3.1" + }, + "scripts": { + "test": "tap --coverage test/*.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/npm/wrappy" + }, + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "ISC", + "bugs": { + "url": "https://github.com/npm/wrappy/issues" + }, + "homepage": "https://github.com/npm/wrappy" +} diff --git a/node_modules/wrappy/wrappy.js b/node_modules/wrappy/wrappy.js new file mode 100644 index 000000000..bb7e7d6fc --- /dev/null +++ b/node_modules/wrappy/wrappy.js @@ -0,0 +1,33 @@ +// Returns a wrapper function that returns a wrapped callback +// The wrapper function should do some stuff, and return a +// presumably different callback function. +// This makes sure that own properties are retained, so that +// decorations and such are not lost along the way. +module.exports = wrappy +function wrappy (fn, cb) { + if (fn && cb) return wrappy(fn)(cb) + + if (typeof fn !== 'function') + throw new TypeError('need wrapper function') + + Object.keys(fn).forEach(function (k) { + wrapper[k] = fn[k] + }) + + return wrapper + + function wrapper() { + var args = new Array(arguments.length) + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + var ret = fn.apply(this, args) + var cb = args[args.length-1] + if (typeof ret === 'function' && ret !== cb) { + Object.keys(cb).forEach(function (k) { + ret[k] = cb[k] + }) + } + return ret + } +} diff --git a/package-lock.json b/package-lock.json index b7e4facbf..849d4590a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,8 +12,10 @@ "dependencies": { "@actions/core": "~1.10.1", "@actions/exec": "~1.1.1", + "@actions/github": "^6.0.0", "@actions/http-client": "~2.2.1", "@actions/tool-cache": "~2.0.1", + "@octokit/core": "^5.2.0", "semver": "~7.6.3" }, "devDependencies": { @@ -56,6 +58,18 @@ "@actions/io": "^1.0.1" } }, + "node_modules/@actions/github": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.0.tgz", + "integrity": "sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==", + "license": "MIT", + "dependencies": { + "@actions/http-client": "^2.2.0", + "@octokit/core": "^5.0.1", + "@octokit/plugin-paginate-rest": "^9.0.0", + "@octokit/plugin-rest-endpoint-methods": "^10.0.0" + } + }, "node_modules/@actions/http-client": { "version": "2.2.1", "license": "MIT", @@ -1202,6 +1216,164 @@ "node": ">= 8" } }, + "node_modules/@octokit/auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", + "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", + "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", + "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", + "license": "MIT", + "dependencies": { + "@octokit/request": "^8.3.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz", + "integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", + "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", + "license": "MIT" + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, + "node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "dev": true, @@ -1741,6 +1913,12 @@ "dev": true, "license": "MIT" }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "license": "Apache-2.0" + }, "node_modules/brace-expansion": { "version": "2.0.1", "dev": true, @@ -2020,6 +2198,12 @@ "node": ">=0.10.0" } }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "license": "ISC" + }, "node_modules/detect-newline": { "version": "3.1.0", "dev": true, @@ -3611,7 +3795,6 @@ }, "node_modules/once": { "version": "1.4.0", - "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -4398,6 +4581,12 @@ "dev": true, "license": "MIT" }, + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "license": "ISC" + }, "node_modules/update-browserslist-db": { "version": "1.0.16", "dev": true, @@ -4503,7 +4692,6 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "dev": true, "license": "ISC" }, "node_modules/write-file-atomic": { diff --git a/package.json b/package.json index 4c8437d61..eae987e74 100644 --- a/package.json +++ b/package.json @@ -37,8 +37,10 @@ "dependencies": { "@actions/core": "~1.10.1", "@actions/exec": "~1.1.1", + "@actions/github": "^6.0.0", "@actions/http-client": "~2.2.1", "@actions/tool-cache": "~2.0.1", + "@octokit/core": "^5.2.0", "semver": "~7.6.3" }, "devDependencies": { diff --git a/src/cleanup.ts b/src/cleanup.ts index 0f1b86807..a93ee45d9 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -143,6 +143,9 @@ async function generateJobSummary() { core.startGroup('Generating Job Summary'); await Utils.runCli(['generate-summary-markdown']); await Utils.setMarkdownAsJobSummary(); + await Utils.populateCodeScanningTab(); + // Clear files + await Utils.clearCommandSummaryDir(); } catch (error) { core.warning('Failed while attempting to generate job summary: ' + error); } finally { diff --git a/src/utils.ts b/src/utils.ts index 96e68448c..d730857c7 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -8,6 +8,11 @@ import { arch, platform, tmpdir } from 'os'; import * as path from 'path'; import { join } from 'path'; import { gt, lt } from 'semver'; +import { Octokit } from '@octokit/core'; +import { OctokitResponse } from '@octokit/types/dist-types/OctokitResponse'; +import * as github from '@actions/github'; +import { gzip } from 'zlib'; +import { promisify } from 'util'; export class Utils { // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -32,10 +37,16 @@ export class Utils { public static readonly SETUP_JFROG_CLI_SERVER_ID: string = 'setup-jfrog-cli-server'; // Directory name which holds markdown files for the Workflow summary private static readonly JOB_SUMMARY_DIR_NAME: string = 'jfrog-command-summary'; + // Directory name which holds security command summary files + private static readonly SECURITY_DIR_NAME: string = 'security'; + // Directory name which holds sarifs files for the code scanning tab + private static readonly SARIF_REPORTS_DIR_NAME: string = 'sarif-reports'; // JFrog CLI command summary output directory environment variable public static readonly JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR_ENV: string = 'JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR'; // Minimum JFrog CLI version supported for job summary command private static readonly MIN_CLI_VERSION_JOB_SUMMARY: string = '2.66.0'; + // Code scanning sarif expected file extension. + private static readonly CODE_SCANNING_FINAL_SARIF_FILE: string = 'final.sarif'; // Inputs // Version input @@ -379,7 +390,7 @@ export class Utils { Utils.exportVariableIfNotSet('JFROG_CLI_BUILD_PROJECT', projectKey); } - // Enable Job summaries if needed + // Enable job summaries if disable was not requested. if (!core.getBooleanInput(Utils.JOB_SUMMARY_DISABLE)) { Utils.enableJobSummaries(); } @@ -556,13 +567,72 @@ export class Utils { // Write to GitHub's job summary core.summary.addRaw(markdownContent, true); await core.summary.write({ overwrite: true }); - // Clear files - await this.clearJobSummaryDir(); } catch (error) { core.warning(`Failed to generate Workflow summary: ${error}`); } } + /** + * Populates the code scanning SARIF (if generated by scan commands) to the code scanning tab in GitHub. + */ + public static async populateCodeScanningTab() { + try { + const encodedSarif: string = await this.getCodeScanningEncodedSarif(); + if (!encodedSarif) { + return; + } + + const token: string | undefined = process.env.JF_GIT_TOKEN; + if (!token) { + console.info('No token provided for uploading code scanning sarif files.'); + return; + } + + await this.uploadCodeScanningSarif(encodedSarif, token); + } catch (error) { + core.warning(`Failed populating code scanning sarif: ${error}`); + } + } + + /** + * Uploads the code scanning SARIF content to the code-scanning GitHub API. + * @param encodedSarif - The final compressed and encoded sarif content. + * @param token - GitHub token to use for the request. Has to have 'security-events: write' permission. + * @private + */ + private static async uploadCodeScanningSarif(encodedSarif: string, token: string) { + const octokit: Octokit = new Octokit({ auth: token }); + let response: OctokitResponse | undefined; + response = await octokit.request('POST /repos/{owner}/{repo}/code-scanning/sarifs', { + owner: github.context.repo.owner, + repo: github.context.repo.repo, + commit_sha: github.context.sha, + ref: github.context.ref, + sarif: encodedSarif, + }); + + if (response.status < 200 || response.status >= 300) { + throw new Error(`Failed to upload SARIF file: ` + JSON.stringify(response)); + } + + core.info('SARIF file uploaded successfully'); + } + + /** + * Compresses the input sarif content using gzip and encodes it to base64. This is required by the code-scanning/sarif API. + * @param input - The sarif content to compress and encode. + * @returns The compressed and encoded string. + * @private + */ + private static async compressAndEncodeSarif(input: string): Promise { + try { + const compressed: Buffer = await promisify(gzip)(input); + return compressed.toString('base64'); + } catch (error) { + throw new Error('Compression of sarif file failed: ' + error); + } + } + /** * Each section should prepare a file called markdown.md. * This function reads each section file and wraps it with a markdown header @@ -579,6 +649,22 @@ export class Utils { return Utils.wrapContent(markdownContent); } + /** + * Reads the combined SARIF file, compresses and encodes it to match the code-scanning/sarif API requirements. + * @returns the paths of the code scanning sarif files. + */ + private static async getCodeScanningEncodedSarif(): Promise { + const finalSarifFile: string = path.join(Utils.getJobOutputDirectoryPath(), this.SECURITY_DIR_NAME, this.SARIF_REPORTS_DIR_NAME, this.CODE_SCANNING_FINAL_SARIF_FILE); + if (!existsSync(finalSarifFile)) { + console.debug('No code scanning sarif file was found.'); + return ""; + } + + // Read the SARIF file, compress and encode it to match the code-scanning/sarif API requirements. + const sarif: string = await fs.readFile(finalSarifFile, 'utf-8'); + return await this.compressAndEncodeSarif(sarif) + } + private static async readMarkdownContent() { const markdownFilePath: string = path.join(Utils.getJobOutputDirectoryPath(), 'markdown.md'); if (existsSync(markdownFilePath)) { @@ -636,9 +722,9 @@ export class Utils { return path.join(outputDir, Utils.JOB_SUMMARY_DIR_NAME); } - private static async clearJobSummaryDir() { + public static async clearCommandSummaryDir() { const outputDir: string = Utils.getJobOutputDirectoryPath(); - core.debug('Removing Workflow summary directory: ' + outputDir); + core.debug('Removing command summary directory: ' + outputDir); await fs.rm(outputDir, { recursive: true }); } From df9cbe00db70f2d55545c67b469100297d9c38c7 Mon Sep 17 00:00:00 2001 From: Robi Nino Date: Wed, 4 Sep 2024 21:53:16 +0300 Subject: [PATCH 49/56] Fix connection check (#205) --- .github/workflows/auto-build-publish-test.yml | 2 ++ lib/cleanup.js | 2 +- src/cleanup.ts | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/auto-build-publish-test.yml b/.github/workflows/auto-build-publish-test.yml index 2fd6ea549..4b96301d4 100644 --- a/.github/workflows/auto-build-publish-test.yml +++ b/.github/workflows/auto-build-publish-test.yml @@ -24,6 +24,8 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} - name: Setup Go with cache uses: jfrog/.github/actions/install-go-with-cache@main diff --git a/lib/cleanup.js b/lib/cleanup.js index e93090165..0f6c25147 100644 --- a/lib/cleanup.js +++ b/lib/cleanup.js @@ -158,7 +158,7 @@ function checkConnectionToArtifactory() { try { core.startGroup('Checking connection to JFrog Artifactory'); const pingResult = yield utils_1.Utils.runCliAndGetOutput(['rt', 'ping']); - if (pingResult !== 'OK') { + if (pingResult.trim() !== 'OK') { core.debug(`Ping result: ${pingResult}`); core.warning('Could not connect to Artifactory. Skipping Build Info post tasks.'); return false; diff --git a/src/cleanup.ts b/src/cleanup.ts index a93ee45d9..83ca4d918 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -124,7 +124,7 @@ async function checkConnectionToArtifactory(): Promise { try { core.startGroup('Checking connection to JFrog Artifactory'); const pingResult: string = await Utils.runCliAndGetOutput(['rt', 'ping']); - if (pingResult !== 'OK') { + if (pingResult.trim() !== 'OK') { core.debug(`Ping result: ${pingResult}`); core.warning('Could not connect to Artifactory. Skipping Build Info post tasks.'); return false; From 883a85f9e32fd38e284f2d081d3fbd5e4390a10b Mon Sep 17 00:00:00 2001 From: RobiNino Date: Wed, 4 Sep 2024 22:07:16 +0300 Subject: [PATCH 50/56] Update version to 4.4.0 --- node_modules/.package-lock.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 71b453b52..679c49b1f 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.3", + "version": "4.4.0", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package-lock.json b/package-lock.json index 849d4590a..349372f0f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.3", + "version": "4.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.3", + "version": "4.4.0", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index eae987e74..0d4e57a7c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.3.3", + "version": "4.4.0", "private": true, "description": "Setup JFrog CLI in GitHub Actions", "main": "lib/main.js", From 9fe0f98bd45b19e6e931d457f4e98f8f84461fb5 Mon Sep 17 00:00:00 2001 From: Eyal Delarea Date: Thu, 5 Sep 2024 11:25:59 +0300 Subject: [PATCH 51/56] Upgrade Default CLI version (#208) --- README.md | 4 ++++ action.yml | 2 +- lib/cleanup.js | 3 +++ lib/utils.js | 4 ++-- node_modules/.package-lock.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- src/cleanup.ts | 2 ++ src/utils.ts | 15 ++++++++++----- test/main.spec.ts | 33 ++++++++++++++++++++++++++++++++- 10 files changed, 58 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 899a61671..b78b15571 100644 --- a/README.md +++ b/README.md @@ -350,6 +350,10 @@ To read more about the JFrog CLI supported commands, visit the following link: [JFrog CLI Command Summaries Documentation](https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-command-summaries). ## Code Scanning Alerts + +**Note:** To use code scanning alerts, ensure you are using JFrog CLI version `v2.67.0` or above. + + The action also supports the display of code scanning alerts in the GitHub Actions UI. Code scanning alerts are generated following the execution of the `jf docker scan` and `jf scan` commands. diff --git a/action.yml b/action.yml index 8a8d7c409..eab8b4f86 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: "JFrog" inputs: version: description: "JFrog CLI Version" - default: "2.66.0" + default: "2.67.0" required: false download-repository: description: "Remote repository in Artifactory pointing to 'https://releases.jfrog.io/artifactory/jfrog-cli'. Use this parameter in case you don't have an Internet access." diff --git a/lib/cleanup.js b/lib/cleanup.js index 0f6c25147..43f009beb 100644 --- a/lib/cleanup.js +++ b/lib/cleanup.js @@ -141,6 +141,9 @@ function collectAndPublishBuildInfoIfNeeded() { core.startGroup('Publish the build info to JFrog Artifactory'); yield utils_1.Utils.runCli(['rt', 'build-publish'], { cwd: workingDirectory }); } + catch (error) { + core.warning('Failed while attempting to publish the build info to JFrog Artifactory: ' + error); + } finally { core.endGroup(); } diff --git a/lib/utils.js b/lib/utils.js index f2b0bc629..9cecf8908 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -489,7 +489,7 @@ class Utils { } static isJobSummarySupported() { const version = core.getInput(Utils.CLI_VERSION_ARG); - return version === Utils.LATEST_CLI_VERSION || (0, semver_1.gt)(version, Utils.MIN_CLI_VERSION_JOB_SUMMARY); + return version === Utils.LATEST_CLI_VERSION || (0, semver_1.gte)(version, Utils.MIN_CLI_VERSION_JOB_SUMMARY); } /** * Generates GitHub workflow unified Summary report. @@ -603,7 +603,7 @@ class Utils { const finalSarifFile = path.join(Utils.getJobOutputDirectoryPath(), this.SECURITY_DIR_NAME, this.SARIF_REPORTS_DIR_NAME, this.CODE_SCANNING_FINAL_SARIF_FILE); if (!(0, fs_1.existsSync)(finalSarifFile)) { console.debug('No code scanning sarif file was found.'); - return ""; + return ''; } // Read the SARIF file, compress and encode it to match the code-scanning/sarif API requirements. const sarif = yield fs_1.promises.readFile(finalSarifFile, 'utf-8'); diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 679c49b1f..88491b181 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.4.0", + "version": "4.4.1", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package-lock.json b/package-lock.json index 349372f0f..ef41fa397 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.4.0", + "version": "4.4.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@jfrog/setup-jfrog-cli", - "version": "4.4.0", + "version": "4.4.1", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 0d4e57a7c..752772d91 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jfrog/setup-jfrog-cli", - "version": "4.4.0", + "version": "4.4.1", "private": true, "description": "Setup JFrog CLI in GitHub Actions", "main": "lib/main.js", diff --git a/src/cleanup.ts b/src/cleanup.ts index 83ca4d918..5fcfedbbb 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -107,6 +107,8 @@ async function collectAndPublishBuildInfoIfNeeded() { try { core.startGroup('Publish the build info to JFrog Artifactory'); await Utils.runCli(['rt', 'build-publish'], { cwd: workingDirectory }); + } catch (error) { + core.warning('Failed while attempting to publish the build info to JFrog Artifactory: ' + error); } finally { core.endGroup(); } diff --git a/src/utils.ts b/src/utils.ts index d730857c7..a6adbe2e9 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -7,7 +7,7 @@ import { OutgoingHttpHeaders } from 'http'; import { arch, platform, tmpdir } from 'os'; import * as path from 'path'; import { join } from 'path'; -import { gt, lt } from 'semver'; +import { gte, lt } from 'semver'; import { Octokit } from '@octokit/core'; import { OctokitResponse } from '@octokit/types/dist-types/OctokitResponse'; import * as github from '@actions/github'; @@ -547,7 +547,7 @@ export class Utils { public static isJobSummarySupported(): boolean { const version: string = core.getInput(Utils.CLI_VERSION_ARG); - return version === Utils.LATEST_CLI_VERSION || gt(version, Utils.MIN_CLI_VERSION_JOB_SUMMARY); + return version === Utils.LATEST_CLI_VERSION || gte(version, Utils.MIN_CLI_VERSION_JOB_SUMMARY); } /** @@ -654,15 +654,20 @@ export class Utils { * @returns the paths of the code scanning sarif files. */ private static async getCodeScanningEncodedSarif(): Promise { - const finalSarifFile: string = path.join(Utils.getJobOutputDirectoryPath(), this.SECURITY_DIR_NAME, this.SARIF_REPORTS_DIR_NAME, this.CODE_SCANNING_FINAL_SARIF_FILE); + const finalSarifFile: string = path.join( + Utils.getJobOutputDirectoryPath(), + this.SECURITY_DIR_NAME, + this.SARIF_REPORTS_DIR_NAME, + this.CODE_SCANNING_FINAL_SARIF_FILE, + ); if (!existsSync(finalSarifFile)) { console.debug('No code scanning sarif file was found.'); - return ""; + return ''; } // Read the SARIF file, compress and encode it to match the code-scanning/sarif API requirements. const sarif: string = await fs.readFile(finalSarifFile, 'utf-8'); - return await this.compressAndEncodeSarif(sarif) + return await this.compressAndEncodeSarif(sarif); } private static async readMarkdownContent() { diff --git a/test/main.spec.ts b/test/main.spec.ts index 2b4cbdeab..98ae7c634 100644 --- a/test/main.spec.ts +++ b/test/main.spec.ts @@ -2,9 +2,10 @@ import * as os from 'os'; import * as core from '@actions/core'; import { Utils, DownloadDetails, JfrogCredentials, JWTTokenData } from '../src/utils'; -import { tmpdir } from 'os'; +import semver = require('semver/preload'); jest.mock('os'); jest.mock('@actions/core'); +jest.mock('semver'); const DEFAULT_CLI_URL: string = 'https://releases.jfrog.io/artifactory/jfrog-cli/'; const CUSTOM_CLI_URL: string = 'http://127.0.0.1:8081/artifactory/jfrog-cli-remote/'; @@ -365,3 +366,33 @@ describe('Job Summaries', () => { }); }); }); + +describe('isJobSummarySupported', () => { + const MIN_CLI_VERSION_JOB_SUMMARY: string = '2.66.0'; + const LATEST_CLI_VERSION: string = 'latest'; + + beforeEach(() => { + jest.resetAllMocks(); + }); + + it('should return true if the version is the latest', () => { + jest.spyOn(core, 'getInput').mockReturnValue(LATEST_CLI_VERSION); + expect(Utils.isJobSummarySupported()).toBe(true); + }); + + it('should return true if the version is greater than or equal to the minimum supported version', () => { + const version: string = '2.66.0'; + jest.spyOn(core, 'getInput').mockReturnValue(version); + (semver.gte as jest.Mock).mockReturnValue(true); + expect(Utils.isJobSummarySupported()).toBe(true); + expect(semver.gte).toHaveBeenCalledWith(version, MIN_CLI_VERSION_JOB_SUMMARY); + }); + + it('should return false if the version is less than the minimum supported version', () => { + const version: string = '2.65.0'; + jest.spyOn(core, 'getInput').mockReturnValue(version); + (semver.gte as jest.Mock).mockReturnValue(false); + expect(Utils.isJobSummarySupported()).toBe(false); + expect(semver.gte).toHaveBeenCalledWith(version, MIN_CLI_VERSION_JOB_SUMMARY); + }); +}); From b9a85a8dfa67aef7ce92daefbc2736a4e01fb1aa Mon Sep 17 00:00:00 2001 From: Robi Nino Date: Thu, 5 Sep 2024 13:45:41 +0300 Subject: [PATCH 52/56] Avoid throwing on JFrog CLI failures (#210) --- lib/utils.js | 4 ++-- src/utils.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/utils.js b/lib/utils.js index 9cecf8908..3e297d80f 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -408,9 +408,9 @@ class Utils { */ static runCli(args, options) { return __awaiter(this, void 0, void 0, function* () { - let res = yield (0, exec_1.exec)('jf', args, options); + let res = yield (0, exec_1.exec)('jf', args, Object.assign(Object.assign({}, options), { ignoreReturnCode: true })); if (res !== core.ExitCode.Success) { - throw new Error('JFrog CLI exited with exit code ' + res); + throw new Error('JFrog CLI exited with exit code: ' + res); } }); } diff --git a/src/utils.ts b/src/utils.ts index a6adbe2e9..c36c28c52 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -462,9 +462,9 @@ export class Utils { * @param options - Execution options */ public static async runCli(args: string[], options?: ExecOptions) { - let res: number = await exec('jf', args, options); + let res: number = await exec('jf', args, { ...options, ignoreReturnCode: true }); if (res !== core.ExitCode.Success) { - throw new Error('JFrog CLI exited with exit code ' + res); + throw new Error('JFrog CLI exited with exit code: ' + res); } } From eefaaceec691ace0373e1366035041e67e4fb996 Mon Sep 17 00:00:00 2001 From: Michael Sverdlov Date: Sun, 8 Sep 2024 17:22:24 +0300 Subject: [PATCH 53/56] Remove redundant chmod on cached executable (#212) --- lib/utils.js | 4 ---- src/utils.ts | 4 ---- 2 files changed, 8 deletions(-) diff --git a/lib/utils.js b/lib/utils.js index 3e297d80f..1a05f5af5 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -239,10 +239,6 @@ class Utils { if (jfExecDir && jfrogExecDir) { core.addPath(jfExecDir); core.addPath(jfrogExecDir); - if (!Utils.isWindows()) { - (0, fs_1.chmodSync)((0, path_1.join)(jfExecDir, jfFileName), 0o555); - (0, fs_1.chmodSync)((0, path_1.join)(jfrogExecDir, jfrogFileName), 0o555); - } return true; } return false; diff --git a/src/utils.ts b/src/utils.ts index c36c28c52..c92ef1524 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -274,10 +274,6 @@ export class Utils { core.addPath(jfExecDir); core.addPath(jfrogExecDir); - if (!Utils.isWindows()) { - chmodSync(join(jfExecDir, jfFileName), 0o555); - chmodSync(join(jfrogExecDir, jfrogFileName), 0o555); - } return true; } return false; From f93091f9decfd9f2f1b34b513bc19efe448fcff2 Mon Sep 17 00:00:00 2001 From: Eyal Ben Moshe Date: Thu, 19 Sep 2024 09:13:16 +0300 Subject: [PATCH 54/56] Set default JFrog CLI version to 2.68.0 (#215) --- action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/action.yml b/action.yml index eab8b4f86..2de3e51ac 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: "JFrog" inputs: version: description: "JFrog CLI Version" - default: "2.67.0" + default: "2.68.0" required: false download-repository: description: "Remote repository in Artifactory pointing to 'https://releases.jfrog.io/artifactory/jfrog-cli'. Use this parameter in case you don't have an Internet access." From 47b70f0e2aa37f28bca20d2d3535866b60c089af Mon Sep 17 00:00:00 2001 From: Robi Nino Date: Thu, 19 Sep 2024 14:35:11 +0300 Subject: [PATCH 55/56] Add supported commands documentation (#216) --- README.md | 21 ++++++++++++++++++++- images/icons/docker.svg | 1 + images/icons/generic.svg | 35 +++++++++++++++++++++++++++++++++++ images/icons/go.svg | 1 + images/icons/maven.svg | 1 + images/icons/npm.svg | 1 + images/icons/pypi.svg | 1 + images/icons/terraform.svg | 1 + 8 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 images/icons/docker.svg create mode 100644 images/icons/generic.svg create mode 100644 images/icons/go.svg create mode 100644 images/icons/maven.svg create mode 100644 images/icons/npm.svg create mode 100644 images/icons/pypi.svg create mode 100644 images/icons/terraform.svg diff --git a/README.md b/README.md index b78b15571..252cad465 100644 --- a/README.md +++ b/README.md @@ -337,7 +337,26 @@ To disable the JFrog Job Summary altogether, set the `disable-job-summary` input disable-job-summary: true ``` -### JFrog Job Summary Example: +### Published Sections +| Section | Command | +|-------------------------------|----------------------------------------------------------------------------------------------| +| Curation Audit | `jf mvn install` | +| | `jf npm install` | +| | `jf pip/pipenv/poetry install` | +| | `jf go build` | +| Build Info | `jf rt build-publish` ([automatically](#default-behavior) or manually) | +| Build Info: Security | `jf build-scan` | +| Published Modules: Artifacts | `jf docker push`, `jf rt build-docker-create` | +| | `jf mvn install` | +| | `jf npm publish` | +| | `jf twine upload` | +| | `jf go publish` | +| | `jf terraform publish` | +| | `jf rt upload` | +| Published Modules: Security | `jf docker scan` | +| Code Scanning | `jf docker scan`, `jf scan` | + +### JFrog Job Summary Example ![JFrog-Job-Summary](images/job_summary.png) diff --git a/images/icons/docker.svg b/images/icons/docker.svg new file mode 100644 index 000000000..bbeaed2ef --- /dev/null +++ b/images/icons/docker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/icons/generic.svg b/images/icons/generic.svg new file mode 100644 index 000000000..5fc2084c4 --- /dev/null +++ b/images/icons/generic.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + Generic + + + + + + + + + + + + + + + + + + + diff --git a/images/icons/go.svg b/images/icons/go.svg new file mode 100644 index 000000000..0fbf6fd1d --- /dev/null +++ b/images/icons/go.svg @@ -0,0 +1 @@ + diff --git a/images/icons/maven.svg b/images/icons/maven.svg new file mode 100644 index 000000000..0b0e0a15d --- /dev/null +++ b/images/icons/maven.svg @@ -0,0 +1 @@ +file_type_maven \ No newline at end of file diff --git a/images/icons/npm.svg b/images/icons/npm.svg new file mode 100644 index 000000000..2ee0f35b5 --- /dev/null +++ b/images/icons/npm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/icons/pypi.svg b/images/icons/pypi.svg new file mode 100644 index 000000000..43d9833b3 --- /dev/null +++ b/images/icons/pypi.svg @@ -0,0 +1 @@ + diff --git a/images/icons/terraform.svg b/images/icons/terraform.svg new file mode 100644 index 000000000..6a17e8680 --- /dev/null +++ b/images/icons/terraform.svg @@ -0,0 +1 @@ + From 2b7ec797223f582bca7fbc5cf163195807ea276e Mon Sep 17 00:00:00 2001 From: Robi Nino Date: Sun, 22 Sep 2024 12:25:56 +0300 Subject: [PATCH 56/56] Improve build info default behavior documentation (#218) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 252cad465..1a1f4693b 100644 --- a/README.md +++ b/README.md @@ -319,7 +319,7 @@ This is to prevent GitHub from masking the URL. ### Default Behavior: -By default, the [build-info](https://jfrog.com/help/r/jfrog-pipelines-documentation/buildinfo) collected during the workflow will be automatically published to Artifactory when the workflow completes. +By default, [build-info](https://jfrog.com/help/r/jfrog-pipelines-documentation/buildinfo) will be collected during the workflow and automatically published to Artifactory when the workflow completes. This behavior is disabled if the `jf rt build-publish` command was manually run during the workflow, or if requested explicitly by setting the `disable-auto-build-publish` input to `true`: